cloud.google.com/go/aiplatform@v1.106.0/apiv1/aiplatformpb/model.pb.go (about) 1 // Copyright 2025 Google LLC 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // Code generated by protoc-gen-go. DO NOT EDIT. 16 // versions: 17 // protoc-gen-go v1.35.2 18 // protoc v4.25.7 19 // source: google/cloud/aiplatform/v1/model.proto 20 21 package aiplatformpb 22 23 import ( 24 _ "google.golang.org/genproto/googleapis/api/annotations" 25 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 26 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 27 durationpb "google.golang.org/protobuf/types/known/durationpb" 28 structpb "google.golang.org/protobuf/types/known/structpb" 29 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 30 reflect "reflect" 31 sync "sync" 32 ) 33 34 const ( 35 // Verify that this generated code is sufficiently up-to-date. 36 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 37 // Verify that runtime/protoimpl is sufficiently up-to-date. 38 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 39 ) 40 41 // Identifies a type of Model's prediction resources. 42 type Model_DeploymentResourcesType int32 43 44 const ( 45 // Should not be used. 46 Model_DEPLOYMENT_RESOURCES_TYPE_UNSPECIFIED Model_DeploymentResourcesType = 0 47 // Resources that are dedicated to the 48 // [DeployedModel][google.cloud.aiplatform.v1.DeployedModel], and that need 49 // a higher degree of manual configuration. 50 Model_DEDICATED_RESOURCES Model_DeploymentResourcesType = 1 51 // Resources that to large degree are decided by Vertex AI, and require 52 // only a modest additional configuration. 53 Model_AUTOMATIC_RESOURCES Model_DeploymentResourcesType = 2 54 // Resources that can be shared by multiple 55 // [DeployedModels][google.cloud.aiplatform.v1.DeployedModel]. A 56 // pre-configured 57 // [DeploymentResourcePool][google.cloud.aiplatform.v1.DeploymentResourcePool] 58 // is required. 59 Model_SHARED_RESOURCES Model_DeploymentResourcesType = 3 60 ) 61 62 // Enum value maps for Model_DeploymentResourcesType. 63 var ( 64 Model_DeploymentResourcesType_name = map[int32]string{ 65 0: "DEPLOYMENT_RESOURCES_TYPE_UNSPECIFIED", 66 1: "DEDICATED_RESOURCES", 67 2: "AUTOMATIC_RESOURCES", 68 3: "SHARED_RESOURCES", 69 } 70 Model_DeploymentResourcesType_value = map[string]int32{ 71 "DEPLOYMENT_RESOURCES_TYPE_UNSPECIFIED": 0, 72 "DEDICATED_RESOURCES": 1, 73 "AUTOMATIC_RESOURCES": 2, 74 "SHARED_RESOURCES": 3, 75 } 76 ) 77 78 func (x Model_DeploymentResourcesType) Enum() *Model_DeploymentResourcesType { 79 p := new(Model_DeploymentResourcesType) 80 *p = x 81 return p 82 } 83 84 func (x Model_DeploymentResourcesType) String() string { 85 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 86 } 87 88 func (Model_DeploymentResourcesType) Descriptor() protoreflect.EnumDescriptor { 89 return file_google_cloud_aiplatform_v1_model_proto_enumTypes[0].Descriptor() 90 } 91 92 func (Model_DeploymentResourcesType) Type() protoreflect.EnumType { 93 return &file_google_cloud_aiplatform_v1_model_proto_enumTypes[0] 94 } 95 96 func (x Model_DeploymentResourcesType) Number() protoreflect.EnumNumber { 97 return protoreflect.EnumNumber(x) 98 } 99 100 // Deprecated: Use Model_DeploymentResourcesType.Descriptor instead. 101 func (Model_DeploymentResourcesType) EnumDescriptor() ([]byte, []int) { 102 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{0, 0} 103 } 104 105 // The Model content that can be exported. 106 type Model_ExportFormat_ExportableContent int32 107 108 const ( 109 // Should not be used. 110 Model_ExportFormat_EXPORTABLE_CONTENT_UNSPECIFIED Model_ExportFormat_ExportableContent = 0 111 // Model artifact and any of its supported files. Will be exported to the 112 // location specified by the `artifactDestination` field of the 113 // [ExportModelRequest.output_config][google.cloud.aiplatform.v1.ExportModelRequest.output_config] 114 // object. 115 Model_ExportFormat_ARTIFACT Model_ExportFormat_ExportableContent = 1 116 // The container image that is to be used when deploying this Model. Will 117 // be exported to the location specified by the `imageDestination` field 118 // of the 119 // [ExportModelRequest.output_config][google.cloud.aiplatform.v1.ExportModelRequest.output_config] 120 // object. 121 Model_ExportFormat_IMAGE Model_ExportFormat_ExportableContent = 2 122 ) 123 124 // Enum value maps for Model_ExportFormat_ExportableContent. 125 var ( 126 Model_ExportFormat_ExportableContent_name = map[int32]string{ 127 0: "EXPORTABLE_CONTENT_UNSPECIFIED", 128 1: "ARTIFACT", 129 2: "IMAGE", 130 } 131 Model_ExportFormat_ExportableContent_value = map[string]int32{ 132 "EXPORTABLE_CONTENT_UNSPECIFIED": 0, 133 "ARTIFACT": 1, 134 "IMAGE": 2, 135 } 136 ) 137 138 func (x Model_ExportFormat_ExportableContent) Enum() *Model_ExportFormat_ExportableContent { 139 p := new(Model_ExportFormat_ExportableContent) 140 *p = x 141 return p 142 } 143 144 func (x Model_ExportFormat_ExportableContent) String() string { 145 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 146 } 147 148 func (Model_ExportFormat_ExportableContent) Descriptor() protoreflect.EnumDescriptor { 149 return file_google_cloud_aiplatform_v1_model_proto_enumTypes[1].Descriptor() 150 } 151 152 func (Model_ExportFormat_ExportableContent) Type() protoreflect.EnumType { 153 return &file_google_cloud_aiplatform_v1_model_proto_enumTypes[1] 154 } 155 156 func (x Model_ExportFormat_ExportableContent) Number() protoreflect.EnumNumber { 157 return protoreflect.EnumNumber(x) 158 } 159 160 // Deprecated: Use Model_ExportFormat_ExportableContent.Descriptor instead. 161 func (Model_ExportFormat_ExportableContent) EnumDescriptor() ([]byte, []int) { 162 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{0, 0, 0} 163 } 164 165 // Source of the model. 166 // Different from `objective` field, this `ModelSourceType` enum 167 // indicates the source from which the model was accessed or obtained, 168 // whereas the `objective` indicates the overall aim or function of this 169 // model. 170 type ModelSourceInfo_ModelSourceType int32 171 172 const ( 173 // Should not be used. 174 ModelSourceInfo_MODEL_SOURCE_TYPE_UNSPECIFIED ModelSourceInfo_ModelSourceType = 0 175 // The Model is uploaded by automl training pipeline. 176 ModelSourceInfo_AUTOML ModelSourceInfo_ModelSourceType = 1 177 // The Model is uploaded by user or custom training pipeline. 178 ModelSourceInfo_CUSTOM ModelSourceInfo_ModelSourceType = 2 179 // The Model is registered and sync'ed from BigQuery ML. 180 ModelSourceInfo_BQML ModelSourceInfo_ModelSourceType = 3 181 // The Model is saved or tuned from Model Garden. 182 ModelSourceInfo_MODEL_GARDEN ModelSourceInfo_ModelSourceType = 4 183 // The Model is saved or tuned from Genie. 184 ModelSourceInfo_GENIE ModelSourceInfo_ModelSourceType = 5 185 // The Model is uploaded by text embedding finetuning pipeline. 186 ModelSourceInfo_CUSTOM_TEXT_EMBEDDING ModelSourceInfo_ModelSourceType = 6 187 // The Model is saved or tuned from Marketplace. 188 ModelSourceInfo_MARKETPLACE ModelSourceInfo_ModelSourceType = 7 189 ) 190 191 // Enum value maps for ModelSourceInfo_ModelSourceType. 192 var ( 193 ModelSourceInfo_ModelSourceType_name = map[int32]string{ 194 0: "MODEL_SOURCE_TYPE_UNSPECIFIED", 195 1: "AUTOML", 196 2: "CUSTOM", 197 3: "BQML", 198 4: "MODEL_GARDEN", 199 5: "GENIE", 200 6: "CUSTOM_TEXT_EMBEDDING", 201 7: "MARKETPLACE", 202 } 203 ModelSourceInfo_ModelSourceType_value = map[string]int32{ 204 "MODEL_SOURCE_TYPE_UNSPECIFIED": 0, 205 "AUTOML": 1, 206 "CUSTOM": 2, 207 "BQML": 3, 208 "MODEL_GARDEN": 4, 209 "GENIE": 5, 210 "CUSTOM_TEXT_EMBEDDING": 6, 211 "MARKETPLACE": 7, 212 } 213 ) 214 215 func (x ModelSourceInfo_ModelSourceType) Enum() *ModelSourceInfo_ModelSourceType { 216 p := new(ModelSourceInfo_ModelSourceType) 217 *p = x 218 return p 219 } 220 221 func (x ModelSourceInfo_ModelSourceType) String() string { 222 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 223 } 224 225 func (ModelSourceInfo_ModelSourceType) Descriptor() protoreflect.EnumDescriptor { 226 return file_google_cloud_aiplatform_v1_model_proto_enumTypes[2].Descriptor() 227 } 228 229 func (ModelSourceInfo_ModelSourceType) Type() protoreflect.EnumType { 230 return &file_google_cloud_aiplatform_v1_model_proto_enumTypes[2] 231 } 232 233 func (x ModelSourceInfo_ModelSourceType) Number() protoreflect.EnumNumber { 234 return protoreflect.EnumNumber(x) 235 } 236 237 // Deprecated: Use ModelSourceInfo_ModelSourceType.Descriptor instead. 238 func (ModelSourceInfo_ModelSourceType) EnumDescriptor() ([]byte, []int) { 239 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{7, 0} 240 } 241 242 // A trained machine learning Model. 243 type Model struct { 244 state protoimpl.MessageState 245 sizeCache protoimpl.SizeCache 246 unknownFields protoimpl.UnknownFields 247 248 // The resource name of the Model. 249 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 250 // Output only. Immutable. The version ID of the model. 251 // A new version is committed when a new model version is uploaded or 252 // trained under an existing model id. It is an auto-incrementing decimal 253 // number in string representation. 254 VersionId string `protobuf:"bytes,28,opt,name=version_id,json=versionId,proto3" json:"version_id,omitempty"` 255 // User provided version aliases so that a model version can be referenced via 256 // alias (i.e. 257 // `projects/{project}/locations/{location}/models/{model_id}@{version_alias}` 258 // instead of auto-generated version id (i.e. 259 // `projects/{project}/locations/{location}/models/{model_id}@{version_id})`. 260 // The format is [a-z][a-zA-Z0-9-]{0,126}[a-z0-9] to distinguish from 261 // version_id. A default version alias will be created for the first version 262 // of the model, and there must be exactly one default version alias for a 263 // model. 264 VersionAliases []string `protobuf:"bytes,29,rep,name=version_aliases,json=versionAliases,proto3" json:"version_aliases,omitempty"` 265 // Output only. Timestamp when this version was created. 266 VersionCreateTime *timestamppb.Timestamp `protobuf:"bytes,31,opt,name=version_create_time,json=versionCreateTime,proto3" json:"version_create_time,omitempty"` 267 // Output only. Timestamp when this version was most recently updated. 268 VersionUpdateTime *timestamppb.Timestamp `protobuf:"bytes,32,opt,name=version_update_time,json=versionUpdateTime,proto3" json:"version_update_time,omitempty"` 269 // Required. The display name of the Model. 270 // The name can be up to 128 characters long and can consist of any UTF-8 271 // characters. 272 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 273 // The description of the Model. 274 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 275 // The description of this version. 276 VersionDescription string `protobuf:"bytes,30,opt,name=version_description,json=versionDescription,proto3" json:"version_description,omitempty"` 277 // The default checkpoint id of a model version. 278 DefaultCheckpointId string `protobuf:"bytes,53,opt,name=default_checkpoint_id,json=defaultCheckpointId,proto3" json:"default_checkpoint_id,omitempty"` 279 // The schemata that describe formats of the Model's predictions and 280 // explanations as given and returned via 281 // [PredictionService.Predict][google.cloud.aiplatform.v1.PredictionService.Predict] 282 // and 283 // [PredictionService.Explain][google.cloud.aiplatform.v1.PredictionService.Explain]. 284 PredictSchemata *PredictSchemata `protobuf:"bytes,4,opt,name=predict_schemata,json=predictSchemata,proto3" json:"predict_schemata,omitempty"` 285 // Immutable. Points to a YAML file stored on Google Cloud Storage describing 286 // additional information about the Model, that is specific to it. Unset if 287 // the Model does not have any additional information. The schema is defined 288 // as an OpenAPI 3.0.2 [Schema 289 // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). 290 // AutoML Models always have this field populated by Vertex AI, if no 291 // additional metadata is needed, this field is set to an empty string. 292 // Note: The URI given on output will be immutable and probably different, 293 // including the URI scheme, than the one given on input. The output URI will 294 // point to a location where the user only has a read access. 295 MetadataSchemaUri string `protobuf:"bytes,5,opt,name=metadata_schema_uri,json=metadataSchemaUri,proto3" json:"metadata_schema_uri,omitempty"` 296 // Immutable. An additional information about the Model; the schema of the 297 // metadata can be found in 298 // [metadata_schema][google.cloud.aiplatform.v1.Model.metadata_schema_uri]. 299 // Unset if the Model does not have any additional information. 300 Metadata *structpb.Value `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` 301 // Output only. The formats in which this Model may be exported. If empty, 302 // this Model is not available for export. 303 SupportedExportFormats []*Model_ExportFormat `protobuf:"bytes,20,rep,name=supported_export_formats,json=supportedExportFormats,proto3" json:"supported_export_formats,omitempty"` 304 // Output only. The resource name of the TrainingPipeline that uploaded this 305 // Model, if any. 306 TrainingPipeline string `protobuf:"bytes,7,opt,name=training_pipeline,json=trainingPipeline,proto3" json:"training_pipeline,omitempty"` 307 // Optional. This field is populated if the model is produced by a pipeline 308 // job. 309 PipelineJob string `protobuf:"bytes,47,opt,name=pipeline_job,json=pipelineJob,proto3" json:"pipeline_job,omitempty"` 310 // Input only. The specification of the container that is to be used when 311 // deploying this Model. The specification is ingested upon 312 // [ModelService.UploadModel][google.cloud.aiplatform.v1.ModelService.UploadModel], 313 // and all binaries it contains are copied and stored internally by Vertex AI. 314 // Not required for AutoML Models. 315 ContainerSpec *ModelContainerSpec `protobuf:"bytes,9,opt,name=container_spec,json=containerSpec,proto3" json:"container_spec,omitempty"` 316 // Immutable. The path to the directory containing the Model artifact and any 317 // of its supporting files. Not required for AutoML Models. 318 ArtifactUri string `protobuf:"bytes,26,opt,name=artifact_uri,json=artifactUri,proto3" json:"artifact_uri,omitempty"` 319 // Output only. When this Model is deployed, its prediction resources are 320 // described by the `prediction_resources` field of the 321 // [Endpoint.deployed_models][google.cloud.aiplatform.v1.Endpoint.deployed_models] 322 // object. Because not all Models support all resource configuration types, 323 // the configuration types this Model supports are listed here. If no 324 // configuration types are listed, the Model cannot be deployed to an 325 // [Endpoint][google.cloud.aiplatform.v1.Endpoint] and does not support 326 // online predictions 327 // ([PredictionService.Predict][google.cloud.aiplatform.v1.PredictionService.Predict] 328 // or 329 // [PredictionService.Explain][google.cloud.aiplatform.v1.PredictionService.Explain]). 330 // Such a Model can serve predictions by using a 331 // [BatchPredictionJob][google.cloud.aiplatform.v1.BatchPredictionJob], if it 332 // has at least one entry each in 333 // [supported_input_storage_formats][google.cloud.aiplatform.v1.Model.supported_input_storage_formats] 334 // and 335 // [supported_output_storage_formats][google.cloud.aiplatform.v1.Model.supported_output_storage_formats]. 336 SupportedDeploymentResourcesTypes []Model_DeploymentResourcesType `protobuf:"varint,10,rep,packed,name=supported_deployment_resources_types,json=supportedDeploymentResourcesTypes,proto3,enum=google.cloud.aiplatform.v1.Model_DeploymentResourcesType" json:"supported_deployment_resources_types,omitempty"` 337 // Output only. The formats this Model supports in 338 // [BatchPredictionJob.input_config][google.cloud.aiplatform.v1.BatchPredictionJob.input_config]. 339 // If 340 // [PredictSchemata.instance_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri] 341 // exists, the instances should be given as per that schema. 342 // 343 // The possible formats are: 344 // 345 // * `jsonl` 346 // The JSON Lines format, where each instance is a single line. Uses 347 // [GcsSource][google.cloud.aiplatform.v1.BatchPredictionJob.InputConfig.gcs_source]. 348 // 349 // * `csv` 350 // The CSV format, where each instance is a single comma-separated line. 351 // The first line in the file is the header, containing comma-separated field 352 // names. Uses 353 // [GcsSource][google.cloud.aiplatform.v1.BatchPredictionJob.InputConfig.gcs_source]. 354 // 355 // * `tf-record` 356 // The TFRecord format, where each instance is a single record in tfrecord 357 // syntax. Uses 358 // [GcsSource][google.cloud.aiplatform.v1.BatchPredictionJob.InputConfig.gcs_source]. 359 // 360 // * `tf-record-gzip` 361 // Similar to `tf-record`, but the file is gzipped. Uses 362 // [GcsSource][google.cloud.aiplatform.v1.BatchPredictionJob.InputConfig.gcs_source]. 363 // 364 // * `bigquery` 365 // Each instance is a single row in BigQuery. Uses 366 // [BigQuerySource][google.cloud.aiplatform.v1.BatchPredictionJob.InputConfig.bigquery_source]. 367 // 368 // * `file-list` 369 // Each line of the file is the location of an instance to process, uses 370 // `gcs_source` field of the 371 // [InputConfig][google.cloud.aiplatform.v1.BatchPredictionJob.InputConfig] 372 // object. 373 // 374 // If this Model doesn't support any of these formats it means it cannot be 375 // used with a 376 // [BatchPredictionJob][google.cloud.aiplatform.v1.BatchPredictionJob]. 377 // However, if it has 378 // [supported_deployment_resources_types][google.cloud.aiplatform.v1.Model.supported_deployment_resources_types], 379 // it could serve online predictions by using 380 // [PredictionService.Predict][google.cloud.aiplatform.v1.PredictionService.Predict] 381 // or 382 // [PredictionService.Explain][google.cloud.aiplatform.v1.PredictionService.Explain]. 383 SupportedInputStorageFormats []string `protobuf:"bytes,11,rep,name=supported_input_storage_formats,json=supportedInputStorageFormats,proto3" json:"supported_input_storage_formats,omitempty"` 384 // Output only. The formats this Model supports in 385 // [BatchPredictionJob.output_config][google.cloud.aiplatform.v1.BatchPredictionJob.output_config]. 386 // If both 387 // [PredictSchemata.instance_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri] 388 // and 389 // [PredictSchemata.prediction_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.prediction_schema_uri] 390 // exist, the predictions are returned together with their instances. In other 391 // words, the prediction has the original instance data first, followed by the 392 // actual prediction content (as per the schema). 393 // 394 // The possible formats are: 395 // 396 // * `jsonl` 397 // The JSON Lines format, where each prediction is a single line. Uses 398 // [GcsDestination][google.cloud.aiplatform.v1.BatchPredictionJob.OutputConfig.gcs_destination]. 399 // 400 // * `csv` 401 // The CSV format, where each prediction is a single comma-separated line. 402 // The first line in the file is the header, containing comma-separated field 403 // names. Uses 404 // [GcsDestination][google.cloud.aiplatform.v1.BatchPredictionJob.OutputConfig.gcs_destination]. 405 // 406 // * `bigquery` 407 // Each prediction is a single row in a BigQuery table, uses 408 // [BigQueryDestination][google.cloud.aiplatform.v1.BatchPredictionJob.OutputConfig.bigquery_destination] 409 // . 410 // 411 // If this Model doesn't support any of these formats it means it cannot be 412 // used with a 413 // [BatchPredictionJob][google.cloud.aiplatform.v1.BatchPredictionJob]. 414 // However, if it has 415 // [supported_deployment_resources_types][google.cloud.aiplatform.v1.Model.supported_deployment_resources_types], 416 // it could serve online predictions by using 417 // [PredictionService.Predict][google.cloud.aiplatform.v1.PredictionService.Predict] 418 // or 419 // [PredictionService.Explain][google.cloud.aiplatform.v1.PredictionService.Explain]. 420 SupportedOutputStorageFormats []string `protobuf:"bytes,12,rep,name=supported_output_storage_formats,json=supportedOutputStorageFormats,proto3" json:"supported_output_storage_formats,omitempty"` 421 // Output only. Timestamp when this Model was uploaded into Vertex AI. 422 CreateTime *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 423 // Output only. Timestamp when this Model was most recently updated. 424 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 425 // Output only. The pointers to DeployedModels created from this Model. Note 426 // that Model could have been deployed to Endpoints in different Locations. 427 DeployedModels []*DeployedModelRef `protobuf:"bytes,15,rep,name=deployed_models,json=deployedModels,proto3" json:"deployed_models,omitempty"` 428 // The default explanation specification for this Model. 429 // 430 // The Model can be used for 431 // [requesting 432 // explanation][google.cloud.aiplatform.v1.PredictionService.Explain] after 433 // being [deployed][google.cloud.aiplatform.v1.EndpointService.DeployModel] if 434 // it is populated. The Model can be used for [batch 435 // explanation][google.cloud.aiplatform.v1.BatchPredictionJob.generate_explanation] 436 // if it is populated. 437 // 438 // All fields of the explanation_spec can be overridden by 439 // [explanation_spec][google.cloud.aiplatform.v1.DeployedModel.explanation_spec] 440 // of 441 // [DeployModelRequest.deployed_model][google.cloud.aiplatform.v1.DeployModelRequest.deployed_model], 442 // or 443 // [explanation_spec][google.cloud.aiplatform.v1.BatchPredictionJob.explanation_spec] 444 // of [BatchPredictionJob][google.cloud.aiplatform.v1.BatchPredictionJob]. 445 // 446 // If the default explanation specification is not set for this Model, this 447 // Model can still be used for 448 // [requesting 449 // explanation][google.cloud.aiplatform.v1.PredictionService.Explain] by 450 // setting 451 // [explanation_spec][google.cloud.aiplatform.v1.DeployedModel.explanation_spec] 452 // of 453 // [DeployModelRequest.deployed_model][google.cloud.aiplatform.v1.DeployModelRequest.deployed_model] 454 // and for [batch 455 // explanation][google.cloud.aiplatform.v1.BatchPredictionJob.generate_explanation] 456 // by setting 457 // [explanation_spec][google.cloud.aiplatform.v1.BatchPredictionJob.explanation_spec] 458 // of [BatchPredictionJob][google.cloud.aiplatform.v1.BatchPredictionJob]. 459 ExplanationSpec *ExplanationSpec `protobuf:"bytes,23,opt,name=explanation_spec,json=explanationSpec,proto3" json:"explanation_spec,omitempty"` 460 // Used to perform consistent read-modify-write updates. If not set, a blind 461 // "overwrite" update happens. 462 Etag string `protobuf:"bytes,16,opt,name=etag,proto3" json:"etag,omitempty"` 463 // The labels with user-defined metadata to organize your Models. 464 // 465 // Label keys and values can be no longer than 64 characters 466 // (Unicode codepoints), can only contain lowercase letters, numeric 467 // characters, underscores and dashes. International characters are allowed. 468 // 469 // See https://goo.gl/xmQnxf for more information and examples of labels. 470 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"` 471 // Stats of data used for training or evaluating the Model. 472 // 473 // Only populated when the Model is trained by a TrainingPipeline with 474 // [data_input_config][google.cloud.aiplatform.v1.TrainingPipeline.input_data_config]. 475 DataStats *Model_DataStats `protobuf:"bytes,21,opt,name=data_stats,json=dataStats,proto3" json:"data_stats,omitempty"` 476 // Customer-managed encryption key spec for a Model. If set, this 477 // Model and all sub-resources of this Model will be secured by this key. 478 EncryptionSpec *EncryptionSpec `protobuf:"bytes,24,opt,name=encryption_spec,json=encryptionSpec,proto3" json:"encryption_spec,omitempty"` 479 // Output only. Source of a model. It can either be automl training pipeline, 480 // custom training pipeline, BigQuery ML, or saved and tuned from Genie or 481 // Model Garden. 482 ModelSourceInfo *ModelSourceInfo `protobuf:"bytes,38,opt,name=model_source_info,json=modelSourceInfo,proto3" json:"model_source_info,omitempty"` 483 // Output only. If this Model is a copy of another Model, this contains info 484 // about the original. 485 OriginalModelInfo *Model_OriginalModelInfo `protobuf:"bytes,34,opt,name=original_model_info,json=originalModelInfo,proto3" json:"original_model_info,omitempty"` 486 // Output only. The resource name of the Artifact that was created in 487 // MetadataStore when creating the Model. The Artifact resource name pattern 488 // is 489 // `projects/{project}/locations/{location}/metadataStores/{metadata_store}/artifacts/{artifact}`. 490 MetadataArtifact string `protobuf:"bytes,44,opt,name=metadata_artifact,json=metadataArtifact,proto3" json:"metadata_artifact,omitempty"` 491 // Optional. User input field to specify the base model source. Currently it 492 // only supports specifing the Model Garden models and Genie models. 493 BaseModelSource *Model_BaseModelSource `protobuf:"bytes,50,opt,name=base_model_source,json=baseModelSource,proto3" json:"base_model_source,omitempty"` 494 // Output only. Reserved for future use. 495 SatisfiesPzs bool `protobuf:"varint,51,opt,name=satisfies_pzs,json=satisfiesPzs,proto3" json:"satisfies_pzs,omitempty"` 496 // Output only. Reserved for future use. 497 SatisfiesPzi bool `protobuf:"varint,52,opt,name=satisfies_pzi,json=satisfiesPzi,proto3" json:"satisfies_pzi,omitempty"` 498 // Optional. Output only. The checkpoints of the model. 499 Checkpoints []*Checkpoint `protobuf:"bytes,57,rep,name=checkpoints,proto3" json:"checkpoints,omitempty"` 500 } 501 502 func (x *Model) Reset() { 503 *x = Model{} 504 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[0] 505 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 506 ms.StoreMessageInfo(mi) 507 } 508 509 func (x *Model) String() string { 510 return protoimpl.X.MessageStringOf(x) 511 } 512 513 func (*Model) ProtoMessage() {} 514 515 func (x *Model) ProtoReflect() protoreflect.Message { 516 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[0] 517 if x != nil { 518 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 519 if ms.LoadMessageInfo() == nil { 520 ms.StoreMessageInfo(mi) 521 } 522 return ms 523 } 524 return mi.MessageOf(x) 525 } 526 527 // Deprecated: Use Model.ProtoReflect.Descriptor instead. 528 func (*Model) Descriptor() ([]byte, []int) { 529 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{0} 530 } 531 532 func (x *Model) GetName() string { 533 if x != nil { 534 return x.Name 535 } 536 return "" 537 } 538 539 func (x *Model) GetVersionId() string { 540 if x != nil { 541 return x.VersionId 542 } 543 return "" 544 } 545 546 func (x *Model) GetVersionAliases() []string { 547 if x != nil { 548 return x.VersionAliases 549 } 550 return nil 551 } 552 553 func (x *Model) GetVersionCreateTime() *timestamppb.Timestamp { 554 if x != nil { 555 return x.VersionCreateTime 556 } 557 return nil 558 } 559 560 func (x *Model) GetVersionUpdateTime() *timestamppb.Timestamp { 561 if x != nil { 562 return x.VersionUpdateTime 563 } 564 return nil 565 } 566 567 func (x *Model) GetDisplayName() string { 568 if x != nil { 569 return x.DisplayName 570 } 571 return "" 572 } 573 574 func (x *Model) GetDescription() string { 575 if x != nil { 576 return x.Description 577 } 578 return "" 579 } 580 581 func (x *Model) GetVersionDescription() string { 582 if x != nil { 583 return x.VersionDescription 584 } 585 return "" 586 } 587 588 func (x *Model) GetDefaultCheckpointId() string { 589 if x != nil { 590 return x.DefaultCheckpointId 591 } 592 return "" 593 } 594 595 func (x *Model) GetPredictSchemata() *PredictSchemata { 596 if x != nil { 597 return x.PredictSchemata 598 } 599 return nil 600 } 601 602 func (x *Model) GetMetadataSchemaUri() string { 603 if x != nil { 604 return x.MetadataSchemaUri 605 } 606 return "" 607 } 608 609 func (x *Model) GetMetadata() *structpb.Value { 610 if x != nil { 611 return x.Metadata 612 } 613 return nil 614 } 615 616 func (x *Model) GetSupportedExportFormats() []*Model_ExportFormat { 617 if x != nil { 618 return x.SupportedExportFormats 619 } 620 return nil 621 } 622 623 func (x *Model) GetTrainingPipeline() string { 624 if x != nil { 625 return x.TrainingPipeline 626 } 627 return "" 628 } 629 630 func (x *Model) GetPipelineJob() string { 631 if x != nil { 632 return x.PipelineJob 633 } 634 return "" 635 } 636 637 func (x *Model) GetContainerSpec() *ModelContainerSpec { 638 if x != nil { 639 return x.ContainerSpec 640 } 641 return nil 642 } 643 644 func (x *Model) GetArtifactUri() string { 645 if x != nil { 646 return x.ArtifactUri 647 } 648 return "" 649 } 650 651 func (x *Model) GetSupportedDeploymentResourcesTypes() []Model_DeploymentResourcesType { 652 if x != nil { 653 return x.SupportedDeploymentResourcesTypes 654 } 655 return nil 656 } 657 658 func (x *Model) GetSupportedInputStorageFormats() []string { 659 if x != nil { 660 return x.SupportedInputStorageFormats 661 } 662 return nil 663 } 664 665 func (x *Model) GetSupportedOutputStorageFormats() []string { 666 if x != nil { 667 return x.SupportedOutputStorageFormats 668 } 669 return nil 670 } 671 672 func (x *Model) GetCreateTime() *timestamppb.Timestamp { 673 if x != nil { 674 return x.CreateTime 675 } 676 return nil 677 } 678 679 func (x *Model) GetUpdateTime() *timestamppb.Timestamp { 680 if x != nil { 681 return x.UpdateTime 682 } 683 return nil 684 } 685 686 func (x *Model) GetDeployedModels() []*DeployedModelRef { 687 if x != nil { 688 return x.DeployedModels 689 } 690 return nil 691 } 692 693 func (x *Model) GetExplanationSpec() *ExplanationSpec { 694 if x != nil { 695 return x.ExplanationSpec 696 } 697 return nil 698 } 699 700 func (x *Model) GetEtag() string { 701 if x != nil { 702 return x.Etag 703 } 704 return "" 705 } 706 707 func (x *Model) GetLabels() map[string]string { 708 if x != nil { 709 return x.Labels 710 } 711 return nil 712 } 713 714 func (x *Model) GetDataStats() *Model_DataStats { 715 if x != nil { 716 return x.DataStats 717 } 718 return nil 719 } 720 721 func (x *Model) GetEncryptionSpec() *EncryptionSpec { 722 if x != nil { 723 return x.EncryptionSpec 724 } 725 return nil 726 } 727 728 func (x *Model) GetModelSourceInfo() *ModelSourceInfo { 729 if x != nil { 730 return x.ModelSourceInfo 731 } 732 return nil 733 } 734 735 func (x *Model) GetOriginalModelInfo() *Model_OriginalModelInfo { 736 if x != nil { 737 return x.OriginalModelInfo 738 } 739 return nil 740 } 741 742 func (x *Model) GetMetadataArtifact() string { 743 if x != nil { 744 return x.MetadataArtifact 745 } 746 return "" 747 } 748 749 func (x *Model) GetBaseModelSource() *Model_BaseModelSource { 750 if x != nil { 751 return x.BaseModelSource 752 } 753 return nil 754 } 755 756 func (x *Model) GetSatisfiesPzs() bool { 757 if x != nil { 758 return x.SatisfiesPzs 759 } 760 return false 761 } 762 763 func (x *Model) GetSatisfiesPzi() bool { 764 if x != nil { 765 return x.SatisfiesPzi 766 } 767 return false 768 } 769 770 func (x *Model) GetCheckpoints() []*Checkpoint { 771 if x != nil { 772 return x.Checkpoints 773 } 774 return nil 775 } 776 777 // Contains information about the Large Model. 778 type LargeModelReference struct { 779 state protoimpl.MessageState 780 sizeCache protoimpl.SizeCache 781 unknownFields protoimpl.UnknownFields 782 783 // Required. The unique name of the large Foundation or pre-built model. Like 784 // "chat-bison", "text-bison". Or model name with version ID, like 785 // "chat-bison@001", "text-bison@005", etc. 786 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 787 } 788 789 func (x *LargeModelReference) Reset() { 790 *x = LargeModelReference{} 791 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[1] 792 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 793 ms.StoreMessageInfo(mi) 794 } 795 796 func (x *LargeModelReference) String() string { 797 return protoimpl.X.MessageStringOf(x) 798 } 799 800 func (*LargeModelReference) ProtoMessage() {} 801 802 func (x *LargeModelReference) ProtoReflect() protoreflect.Message { 803 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[1] 804 if x != nil { 805 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 806 if ms.LoadMessageInfo() == nil { 807 ms.StoreMessageInfo(mi) 808 } 809 return ms 810 } 811 return mi.MessageOf(x) 812 } 813 814 // Deprecated: Use LargeModelReference.ProtoReflect.Descriptor instead. 815 func (*LargeModelReference) Descriptor() ([]byte, []int) { 816 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{1} 817 } 818 819 func (x *LargeModelReference) GetName() string { 820 if x != nil { 821 return x.Name 822 } 823 return "" 824 } 825 826 // Contains information about the source of the models generated from Model 827 // Garden. 828 type ModelGardenSource struct { 829 state protoimpl.MessageState 830 sizeCache protoimpl.SizeCache 831 unknownFields protoimpl.UnknownFields 832 833 // Required. The model garden source model resource name. 834 PublicModelName string `protobuf:"bytes,1,opt,name=public_model_name,json=publicModelName,proto3" json:"public_model_name,omitempty"` 835 // Optional. The model garden source model version ID. 836 VersionId string `protobuf:"bytes,3,opt,name=version_id,json=versionId,proto3" json:"version_id,omitempty"` 837 // Optional. Whether to avoid pulling the model from the HF cache. 838 SkipHfModelCache bool `protobuf:"varint,4,opt,name=skip_hf_model_cache,json=skipHfModelCache,proto3" json:"skip_hf_model_cache,omitempty"` 839 } 840 841 func (x *ModelGardenSource) Reset() { 842 *x = ModelGardenSource{} 843 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[2] 844 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 845 ms.StoreMessageInfo(mi) 846 } 847 848 func (x *ModelGardenSource) String() string { 849 return protoimpl.X.MessageStringOf(x) 850 } 851 852 func (*ModelGardenSource) ProtoMessage() {} 853 854 func (x *ModelGardenSource) ProtoReflect() protoreflect.Message { 855 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[2] 856 if x != nil { 857 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 858 if ms.LoadMessageInfo() == nil { 859 ms.StoreMessageInfo(mi) 860 } 861 return ms 862 } 863 return mi.MessageOf(x) 864 } 865 866 // Deprecated: Use ModelGardenSource.ProtoReflect.Descriptor instead. 867 func (*ModelGardenSource) Descriptor() ([]byte, []int) { 868 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{2} 869 } 870 871 func (x *ModelGardenSource) GetPublicModelName() string { 872 if x != nil { 873 return x.PublicModelName 874 } 875 return "" 876 } 877 878 func (x *ModelGardenSource) GetVersionId() string { 879 if x != nil { 880 return x.VersionId 881 } 882 return "" 883 } 884 885 func (x *ModelGardenSource) GetSkipHfModelCache() bool { 886 if x != nil { 887 return x.SkipHfModelCache 888 } 889 return false 890 } 891 892 // Contains information about the source of the models generated from Generative 893 // AI Studio. 894 type GenieSource struct { 895 state protoimpl.MessageState 896 sizeCache protoimpl.SizeCache 897 unknownFields protoimpl.UnknownFields 898 899 // Required. The public base model URI. 900 BaseModelUri string `protobuf:"bytes,1,opt,name=base_model_uri,json=baseModelUri,proto3" json:"base_model_uri,omitempty"` 901 } 902 903 func (x *GenieSource) Reset() { 904 *x = GenieSource{} 905 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[3] 906 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 907 ms.StoreMessageInfo(mi) 908 } 909 910 func (x *GenieSource) String() string { 911 return protoimpl.X.MessageStringOf(x) 912 } 913 914 func (*GenieSource) ProtoMessage() {} 915 916 func (x *GenieSource) ProtoReflect() protoreflect.Message { 917 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[3] 918 if x != nil { 919 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 920 if ms.LoadMessageInfo() == nil { 921 ms.StoreMessageInfo(mi) 922 } 923 return ms 924 } 925 return mi.MessageOf(x) 926 } 927 928 // Deprecated: Use GenieSource.ProtoReflect.Descriptor instead. 929 func (*GenieSource) Descriptor() ([]byte, []int) { 930 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{3} 931 } 932 933 func (x *GenieSource) GetBaseModelUri() string { 934 if x != nil { 935 return x.BaseModelUri 936 } 937 return "" 938 } 939 940 // Contains the schemata used in Model's predictions and explanations via 941 // [PredictionService.Predict][google.cloud.aiplatform.v1.PredictionService.Predict], 942 // [PredictionService.Explain][google.cloud.aiplatform.v1.PredictionService.Explain] 943 // and [BatchPredictionJob][google.cloud.aiplatform.v1.BatchPredictionJob]. 944 type PredictSchemata struct { 945 state protoimpl.MessageState 946 sizeCache protoimpl.SizeCache 947 unknownFields protoimpl.UnknownFields 948 949 // Immutable. Points to a YAML file stored on Google Cloud Storage describing 950 // the format of a single instance, which are used in 951 // [PredictRequest.instances][google.cloud.aiplatform.v1.PredictRequest.instances], 952 // [ExplainRequest.instances][google.cloud.aiplatform.v1.ExplainRequest.instances] 953 // and 954 // [BatchPredictionJob.input_config][google.cloud.aiplatform.v1.BatchPredictionJob.input_config]. 955 // The schema is defined as an OpenAPI 3.0.2 [Schema 956 // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). 957 // AutoML Models always have this field populated by Vertex AI. 958 // Note: The URI given on output will be immutable and probably different, 959 // including the URI scheme, than the one given on input. The output URI will 960 // point to a location where the user only has a read access. 961 InstanceSchemaUri string `protobuf:"bytes,1,opt,name=instance_schema_uri,json=instanceSchemaUri,proto3" json:"instance_schema_uri,omitempty"` 962 // Immutable. Points to a YAML file stored on Google Cloud Storage describing 963 // the parameters of prediction and explanation via 964 // [PredictRequest.parameters][google.cloud.aiplatform.v1.PredictRequest.parameters], 965 // [ExplainRequest.parameters][google.cloud.aiplatform.v1.ExplainRequest.parameters] 966 // and 967 // [BatchPredictionJob.model_parameters][google.cloud.aiplatform.v1.BatchPredictionJob.model_parameters]. 968 // The schema is defined as an OpenAPI 3.0.2 [Schema 969 // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). 970 // AutoML Models always have this field populated by Vertex AI, if no 971 // parameters are supported, then it is set to an empty string. 972 // Note: The URI given on output will be immutable and probably different, 973 // including the URI scheme, than the one given on input. The output URI will 974 // point to a location where the user only has a read access. 975 ParametersSchemaUri string `protobuf:"bytes,2,opt,name=parameters_schema_uri,json=parametersSchemaUri,proto3" json:"parameters_schema_uri,omitempty"` 976 // Immutable. Points to a YAML file stored on Google Cloud Storage describing 977 // the format of a single prediction produced by this Model, which are 978 // returned via 979 // [PredictResponse.predictions][google.cloud.aiplatform.v1.PredictResponse.predictions], 980 // [ExplainResponse.explanations][google.cloud.aiplatform.v1.ExplainResponse.explanations], 981 // and 982 // [BatchPredictionJob.output_config][google.cloud.aiplatform.v1.BatchPredictionJob.output_config]. 983 // The schema is defined as an OpenAPI 3.0.2 [Schema 984 // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). 985 // AutoML Models always have this field populated by Vertex AI. 986 // Note: The URI given on output will be immutable and probably different, 987 // including the URI scheme, than the one given on input. The output URI will 988 // point to a location where the user only has a read access. 989 PredictionSchemaUri string `protobuf:"bytes,3,opt,name=prediction_schema_uri,json=predictionSchemaUri,proto3" json:"prediction_schema_uri,omitempty"` 990 } 991 992 func (x *PredictSchemata) Reset() { 993 *x = PredictSchemata{} 994 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[4] 995 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 996 ms.StoreMessageInfo(mi) 997 } 998 999 func (x *PredictSchemata) String() string { 1000 return protoimpl.X.MessageStringOf(x) 1001 } 1002 1003 func (*PredictSchemata) ProtoMessage() {} 1004 1005 func (x *PredictSchemata) ProtoReflect() protoreflect.Message { 1006 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[4] 1007 if x != nil { 1008 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1009 if ms.LoadMessageInfo() == nil { 1010 ms.StoreMessageInfo(mi) 1011 } 1012 return ms 1013 } 1014 return mi.MessageOf(x) 1015 } 1016 1017 // Deprecated: Use PredictSchemata.ProtoReflect.Descriptor instead. 1018 func (*PredictSchemata) Descriptor() ([]byte, []int) { 1019 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{4} 1020 } 1021 1022 func (x *PredictSchemata) GetInstanceSchemaUri() string { 1023 if x != nil { 1024 return x.InstanceSchemaUri 1025 } 1026 return "" 1027 } 1028 1029 func (x *PredictSchemata) GetParametersSchemaUri() string { 1030 if x != nil { 1031 return x.ParametersSchemaUri 1032 } 1033 return "" 1034 } 1035 1036 func (x *PredictSchemata) GetPredictionSchemaUri() string { 1037 if x != nil { 1038 return x.PredictionSchemaUri 1039 } 1040 return "" 1041 } 1042 1043 // Specification of a container for serving predictions. Some fields in this 1044 // message correspond to fields in the [Kubernetes Container v1 core 1045 // specification](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). 1046 type ModelContainerSpec struct { 1047 state protoimpl.MessageState 1048 sizeCache protoimpl.SizeCache 1049 unknownFields protoimpl.UnknownFields 1050 1051 // Required. Immutable. URI of the Docker image to be used as the custom 1052 // container for serving predictions. This URI must identify an image in 1053 // Artifact Registry or Container Registry. Learn more about the [container 1054 // publishing 1055 // requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#publishing), 1056 // including permissions requirements for the Vertex AI Service Agent. 1057 // 1058 // The container image is ingested upon 1059 // [ModelService.UploadModel][google.cloud.aiplatform.v1.ModelService.UploadModel], 1060 // stored internally, and this original path is afterwards not used. 1061 // 1062 // To learn about the requirements for the Docker image itself, see 1063 // [Custom container 1064 // requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#). 1065 // 1066 // You can use the URI to one of Vertex AI's [pre-built container images for 1067 // prediction](https://cloud.google.com/vertex-ai/docs/predictions/pre-built-containers) 1068 // in this field. 1069 ImageUri string `protobuf:"bytes,1,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"` 1070 // Immutable. Specifies the command that runs when the container starts. This 1071 // overrides the container's 1072 // [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint). 1073 // Specify this field as an array of executable and arguments, similar to a 1074 // Docker `ENTRYPOINT`'s "exec" form, not its "shell" form. 1075 // 1076 // If you do not specify this field, then the container's `ENTRYPOINT` runs, 1077 // in conjunction with the 1078 // [args][google.cloud.aiplatform.v1.ModelContainerSpec.args] field or the 1079 // container's [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd), 1080 // if either exists. If this field is not specified and the container does not 1081 // have an `ENTRYPOINT`, then refer to the Docker documentation about [how 1082 // `CMD` and `ENTRYPOINT` 1083 // interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact). 1084 // 1085 // If you specify this field, then you can also specify the `args` field to 1086 // provide additional arguments for this command. However, if you specify this 1087 // field, then the container's `CMD` is ignored. See the 1088 // [Kubernetes documentation about how the 1089 // `command` and `args` fields interact with a container's `ENTRYPOINT` and 1090 // `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes). 1091 // 1092 // In this field, you can reference [environment variables set by Vertex 1093 // AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables) 1094 // and environment variables set in the 1095 // [env][google.cloud.aiplatform.v1.ModelContainerSpec.env] field. You cannot 1096 // reference environment variables set in the Docker image. In order for 1097 // environment variables to be expanded, reference them by using the following 1098 // syntax: <code>$(<var>VARIABLE_NAME</var>)</code> Note that this differs 1099 // from Bash variable expansion, which does not use parentheses. If a variable 1100 // cannot be resolved, the reference in the input string is used unchanged. To 1101 // avoid variable expansion, you can escape this syntax with `$$`; for 1102 // example: <code>$$(<var>VARIABLE_NAME</var>)</code> This field corresponds 1103 // to the `command` field of the Kubernetes Containers [v1 core 1104 // API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). 1105 Command []string `protobuf:"bytes,2,rep,name=command,proto3" json:"command,omitempty"` 1106 // Immutable. Specifies arguments for the command that runs when the container 1107 // starts. This overrides the container's 1108 // [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd). Specify 1109 // this field as an array of executable and arguments, similar to a Docker 1110 // `CMD`'s "default parameters" form. 1111 // 1112 // If you don't specify this field but do specify the 1113 // [command][google.cloud.aiplatform.v1.ModelContainerSpec.command] field, 1114 // then the command from the `command` field runs without any additional 1115 // arguments. See the [Kubernetes documentation about how the `command` and 1116 // `args` fields interact with a container's `ENTRYPOINT` and 1117 // `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes). 1118 // 1119 // If you don't specify this field and don't specify the `command` field, 1120 // then the container's 1121 // [`ENTRYPOINT`](https://docs.docker.com/engine/reference/builder/#cmd) and 1122 // `CMD` determine what runs based on their default behavior. See the Docker 1123 // documentation about [how `CMD` and `ENTRYPOINT` 1124 // interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact). 1125 // 1126 // In this field, you can reference [environment variables 1127 // set by Vertex 1128 // AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables) 1129 // and environment variables set in the 1130 // [env][google.cloud.aiplatform.v1.ModelContainerSpec.env] field. You cannot 1131 // reference environment variables set in the Docker image. In order for 1132 // environment variables to be expanded, reference them by using the following 1133 // syntax: <code>$(<var>VARIABLE_NAME</var>)</code> Note that this differs 1134 // from Bash variable expansion, which does not use parentheses. If a variable 1135 // cannot be resolved, the reference in the input string is used unchanged. To 1136 // avoid variable expansion, you can escape this syntax with `$$`; for 1137 // example: <code>$$(<var>VARIABLE_NAME</var>)</code> This field corresponds 1138 // to the `args` field of the Kubernetes Containers [v1 core 1139 // API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). 1140 Args []string `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"` 1141 // Immutable. List of environment variables to set in the container. After the 1142 // container starts running, code running in the container can read these 1143 // environment variables. 1144 // 1145 // Additionally, the 1146 // [command][google.cloud.aiplatform.v1.ModelContainerSpec.command] and 1147 // [args][google.cloud.aiplatform.v1.ModelContainerSpec.args] fields can 1148 // reference these variables. Later entries in this list can also reference 1149 // earlier entries. For example, the following example sets the variable 1150 // `VAR_2` to have the value `foo bar`: 1151 // 1152 // ```json 1153 // [ 1154 // 1155 // { 1156 // "name": "VAR_1", 1157 // "value": "foo" 1158 // }, 1159 // { 1160 // "name": "VAR_2", 1161 // "value": "$(VAR_1) bar" 1162 // } 1163 // 1164 // ] 1165 // ``` 1166 // 1167 // If you switch the order of the variables in the example, then the expansion 1168 // does not occur. 1169 // 1170 // This field corresponds to the `env` field of the Kubernetes Containers 1171 // [v1 core 1172 // API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). 1173 Env []*EnvVar `protobuf:"bytes,4,rep,name=env,proto3" json:"env,omitempty"` 1174 // Immutable. List of ports to expose from the container. Vertex AI sends any 1175 // prediction requests that it receives to the first port on this list. Vertex 1176 // AI also sends 1177 // [liveness and health 1178 // checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#liveness) 1179 // to this port. 1180 // 1181 // If you do not specify this field, it defaults to following value: 1182 // 1183 // ```json 1184 // [ 1185 // 1186 // { 1187 // "containerPort": 8080 1188 // } 1189 // 1190 // ] 1191 // ``` 1192 // 1193 // Vertex AI does not use ports other than the first one listed. This field 1194 // corresponds to the `ports` field of the Kubernetes Containers 1195 // [v1 core 1196 // API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core). 1197 Ports []*Port `protobuf:"bytes,5,rep,name=ports,proto3" json:"ports,omitempty"` 1198 // Immutable. HTTP path on the container to send prediction requests to. 1199 // Vertex AI forwards requests sent using 1200 // [projects.locations.endpoints.predict][google.cloud.aiplatform.v1.PredictionService.Predict] 1201 // to this path on the container's IP address and port. Vertex AI then returns 1202 // the container's response in the API response. 1203 // 1204 // For example, if you set this field to `/foo`, then when Vertex AI 1205 // receives a prediction request, it forwards the request body in a POST 1206 // request to the `/foo` path on the port of your container specified by the 1207 // first value of this `ModelContainerSpec`'s 1208 // [ports][google.cloud.aiplatform.v1.ModelContainerSpec.ports] field. 1209 // 1210 // If you don't specify this field, it defaults to the following value when 1211 // you [deploy this Model to an 1212 // Endpoint][google.cloud.aiplatform.v1.EndpointService.DeployModel]: 1213 // <code>/v1/endpoints/<var>ENDPOINT</var>/deployedModels/<var>DEPLOYED_MODEL</var>:predict</code> 1214 // The placeholders in this value are replaced as follows: 1215 // 1216 // - <var>ENDPOINT</var>: The last segment (following `endpoints/`)of the 1217 // Endpoint.name][] field of the Endpoint where this Model has been 1218 // deployed. (Vertex AI makes this value available to your container code 1219 // as the [`AIP_ENDPOINT_ID` environment 1220 // variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) 1221 // 1222 // * <var>DEPLOYED_MODEL</var>: 1223 // [DeployedModel.id][google.cloud.aiplatform.v1.DeployedModel.id] of the 1224 // `DeployedModel`. 1225 // 1226 // (Vertex AI makes this value available to your container code 1227 // as the [`AIP_DEPLOYED_MODEL_ID` environment 1228 // variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) 1229 PredictRoute string `protobuf:"bytes,6,opt,name=predict_route,json=predictRoute,proto3" json:"predict_route,omitempty"` 1230 // Immutable. HTTP path on the container to send health checks to. Vertex AI 1231 // intermittently sends GET requests to this path on the container's IP 1232 // address and port to check that the container is healthy. Read more about 1233 // [health 1234 // checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#health). 1235 // 1236 // For example, if you set this field to `/bar`, then Vertex AI 1237 // intermittently sends a GET request to the `/bar` path on the port of your 1238 // container specified by the first value of this `ModelContainerSpec`'s 1239 // [ports][google.cloud.aiplatform.v1.ModelContainerSpec.ports] field. 1240 // 1241 // If you don't specify this field, it defaults to the following value when 1242 // you [deploy this Model to an 1243 // Endpoint][google.cloud.aiplatform.v1.EndpointService.DeployModel]: 1244 // <code>/v1/endpoints/<var>ENDPOINT</var>/deployedModels/<var>DEPLOYED_MODEL</var>:predict</code> 1245 // The placeholders in this value are replaced as follows: 1246 // 1247 // - <var>ENDPOINT</var>: The last segment (following `endpoints/`)of the 1248 // Endpoint.name][] field of the Endpoint where this Model has been 1249 // deployed. (Vertex AI makes this value available to your container code 1250 // as the [`AIP_ENDPOINT_ID` environment 1251 // variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) 1252 // 1253 // * <var>DEPLOYED_MODEL</var>: 1254 // [DeployedModel.id][google.cloud.aiplatform.v1.DeployedModel.id] of the 1255 // `DeployedModel`. 1256 // 1257 // (Vertex AI makes this value available to your container code as the 1258 // [`AIP_DEPLOYED_MODEL_ID` environment 1259 // variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) 1260 HealthRoute string `protobuf:"bytes,7,opt,name=health_route,json=healthRoute,proto3" json:"health_route,omitempty"` 1261 // Immutable. Invoke route prefix for the custom container. "/*" is the only 1262 // supported value right now. By setting this field, any non-root route on 1263 // this model will be accessible with invoke http call eg: "/invoke/foo/bar", 1264 // however the [PredictionService.Invoke] RPC is not supported yet. 1265 // 1266 // Only one of `predict_route` or `invoke_route_prefix` can be set, and we 1267 // default to using `predict_route` if this field is not set. If this field 1268 // is set, the Model can only be deployed to dedicated endpoint. 1269 InvokeRoutePrefix string `protobuf:"bytes,15,opt,name=invoke_route_prefix,json=invokeRoutePrefix,proto3" json:"invoke_route_prefix,omitempty"` 1270 // Immutable. List of ports to expose from the container. Vertex AI sends gRPC 1271 // prediction requests that it receives to the first port on this list. Vertex 1272 // AI also sends liveness and health checks to this port. 1273 // 1274 // If you do not specify this field, gRPC requests to the container will be 1275 // disabled. 1276 // 1277 // Vertex AI does not use ports other than the first one listed. This field 1278 // corresponds to the `ports` field of the Kubernetes Containers v1 core API. 1279 GrpcPorts []*Port `protobuf:"bytes,9,rep,name=grpc_ports,json=grpcPorts,proto3" json:"grpc_ports,omitempty"` 1280 // Immutable. Deployment timeout. 1281 // Limit for deployment timeout is 2 hours. 1282 DeploymentTimeout *durationpb.Duration `protobuf:"bytes,10,opt,name=deployment_timeout,json=deploymentTimeout,proto3" json:"deployment_timeout,omitempty"` 1283 // Immutable. The amount of the VM memory to reserve as the shared memory for 1284 // the model in megabytes. 1285 SharedMemorySizeMb int64 `protobuf:"varint,11,opt,name=shared_memory_size_mb,json=sharedMemorySizeMb,proto3" json:"shared_memory_size_mb,omitempty"` 1286 // Immutable. Specification for Kubernetes startup probe. 1287 StartupProbe *Probe `protobuf:"bytes,12,opt,name=startup_probe,json=startupProbe,proto3" json:"startup_probe,omitempty"` 1288 // Immutable. Specification for Kubernetes readiness probe. 1289 HealthProbe *Probe `protobuf:"bytes,13,opt,name=health_probe,json=healthProbe,proto3" json:"health_probe,omitempty"` 1290 // Immutable. Specification for Kubernetes liveness probe. 1291 LivenessProbe *Probe `protobuf:"bytes,14,opt,name=liveness_probe,json=livenessProbe,proto3" json:"liveness_probe,omitempty"` 1292 } 1293 1294 func (x *ModelContainerSpec) Reset() { 1295 *x = ModelContainerSpec{} 1296 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[5] 1297 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1298 ms.StoreMessageInfo(mi) 1299 } 1300 1301 func (x *ModelContainerSpec) String() string { 1302 return protoimpl.X.MessageStringOf(x) 1303 } 1304 1305 func (*ModelContainerSpec) ProtoMessage() {} 1306 1307 func (x *ModelContainerSpec) ProtoReflect() protoreflect.Message { 1308 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[5] 1309 if x != nil { 1310 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1311 if ms.LoadMessageInfo() == nil { 1312 ms.StoreMessageInfo(mi) 1313 } 1314 return ms 1315 } 1316 return mi.MessageOf(x) 1317 } 1318 1319 // Deprecated: Use ModelContainerSpec.ProtoReflect.Descriptor instead. 1320 func (*ModelContainerSpec) Descriptor() ([]byte, []int) { 1321 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{5} 1322 } 1323 1324 func (x *ModelContainerSpec) GetImageUri() string { 1325 if x != nil { 1326 return x.ImageUri 1327 } 1328 return "" 1329 } 1330 1331 func (x *ModelContainerSpec) GetCommand() []string { 1332 if x != nil { 1333 return x.Command 1334 } 1335 return nil 1336 } 1337 1338 func (x *ModelContainerSpec) GetArgs() []string { 1339 if x != nil { 1340 return x.Args 1341 } 1342 return nil 1343 } 1344 1345 func (x *ModelContainerSpec) GetEnv() []*EnvVar { 1346 if x != nil { 1347 return x.Env 1348 } 1349 return nil 1350 } 1351 1352 func (x *ModelContainerSpec) GetPorts() []*Port { 1353 if x != nil { 1354 return x.Ports 1355 } 1356 return nil 1357 } 1358 1359 func (x *ModelContainerSpec) GetPredictRoute() string { 1360 if x != nil { 1361 return x.PredictRoute 1362 } 1363 return "" 1364 } 1365 1366 func (x *ModelContainerSpec) GetHealthRoute() string { 1367 if x != nil { 1368 return x.HealthRoute 1369 } 1370 return "" 1371 } 1372 1373 func (x *ModelContainerSpec) GetInvokeRoutePrefix() string { 1374 if x != nil { 1375 return x.InvokeRoutePrefix 1376 } 1377 return "" 1378 } 1379 1380 func (x *ModelContainerSpec) GetGrpcPorts() []*Port { 1381 if x != nil { 1382 return x.GrpcPorts 1383 } 1384 return nil 1385 } 1386 1387 func (x *ModelContainerSpec) GetDeploymentTimeout() *durationpb.Duration { 1388 if x != nil { 1389 return x.DeploymentTimeout 1390 } 1391 return nil 1392 } 1393 1394 func (x *ModelContainerSpec) GetSharedMemorySizeMb() int64 { 1395 if x != nil { 1396 return x.SharedMemorySizeMb 1397 } 1398 return 0 1399 } 1400 1401 func (x *ModelContainerSpec) GetStartupProbe() *Probe { 1402 if x != nil { 1403 return x.StartupProbe 1404 } 1405 return nil 1406 } 1407 1408 func (x *ModelContainerSpec) GetHealthProbe() *Probe { 1409 if x != nil { 1410 return x.HealthProbe 1411 } 1412 return nil 1413 } 1414 1415 func (x *ModelContainerSpec) GetLivenessProbe() *Probe { 1416 if x != nil { 1417 return x.LivenessProbe 1418 } 1419 return nil 1420 } 1421 1422 // Represents a network port in a container. 1423 type Port struct { 1424 state protoimpl.MessageState 1425 sizeCache protoimpl.SizeCache 1426 unknownFields protoimpl.UnknownFields 1427 1428 // The number of the port to expose on the pod's IP address. 1429 // Must be a valid port number, between 1 and 65535 inclusive. 1430 ContainerPort int32 `protobuf:"varint,3,opt,name=container_port,json=containerPort,proto3" json:"container_port,omitempty"` 1431 } 1432 1433 func (x *Port) Reset() { 1434 *x = Port{} 1435 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[6] 1436 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1437 ms.StoreMessageInfo(mi) 1438 } 1439 1440 func (x *Port) String() string { 1441 return protoimpl.X.MessageStringOf(x) 1442 } 1443 1444 func (*Port) ProtoMessage() {} 1445 1446 func (x *Port) ProtoReflect() protoreflect.Message { 1447 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[6] 1448 if x != nil { 1449 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1450 if ms.LoadMessageInfo() == nil { 1451 ms.StoreMessageInfo(mi) 1452 } 1453 return ms 1454 } 1455 return mi.MessageOf(x) 1456 } 1457 1458 // Deprecated: Use Port.ProtoReflect.Descriptor instead. 1459 func (*Port) Descriptor() ([]byte, []int) { 1460 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{6} 1461 } 1462 1463 func (x *Port) GetContainerPort() int32 { 1464 if x != nil { 1465 return x.ContainerPort 1466 } 1467 return 0 1468 } 1469 1470 // Detail description of the source information of the model. 1471 type ModelSourceInfo struct { 1472 state protoimpl.MessageState 1473 sizeCache protoimpl.SizeCache 1474 unknownFields protoimpl.UnknownFields 1475 1476 // Type of the model source. 1477 SourceType ModelSourceInfo_ModelSourceType `protobuf:"varint,1,opt,name=source_type,json=sourceType,proto3,enum=google.cloud.aiplatform.v1.ModelSourceInfo_ModelSourceType" json:"source_type,omitempty"` 1478 // If this Model is copy of another Model. If true then 1479 // [source_type][google.cloud.aiplatform.v1.ModelSourceInfo.source_type] 1480 // pertains to the original. 1481 Copy bool `protobuf:"varint,2,opt,name=copy,proto3" json:"copy,omitempty"` 1482 } 1483 1484 func (x *ModelSourceInfo) Reset() { 1485 *x = ModelSourceInfo{} 1486 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[7] 1487 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1488 ms.StoreMessageInfo(mi) 1489 } 1490 1491 func (x *ModelSourceInfo) String() string { 1492 return protoimpl.X.MessageStringOf(x) 1493 } 1494 1495 func (*ModelSourceInfo) ProtoMessage() {} 1496 1497 func (x *ModelSourceInfo) ProtoReflect() protoreflect.Message { 1498 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[7] 1499 if x != nil { 1500 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1501 if ms.LoadMessageInfo() == nil { 1502 ms.StoreMessageInfo(mi) 1503 } 1504 return ms 1505 } 1506 return mi.MessageOf(x) 1507 } 1508 1509 // Deprecated: Use ModelSourceInfo.ProtoReflect.Descriptor instead. 1510 func (*ModelSourceInfo) Descriptor() ([]byte, []int) { 1511 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{7} 1512 } 1513 1514 func (x *ModelSourceInfo) GetSourceType() ModelSourceInfo_ModelSourceType { 1515 if x != nil { 1516 return x.SourceType 1517 } 1518 return ModelSourceInfo_MODEL_SOURCE_TYPE_UNSPECIFIED 1519 } 1520 1521 func (x *ModelSourceInfo) GetCopy() bool { 1522 if x != nil { 1523 return x.Copy 1524 } 1525 return false 1526 } 1527 1528 // Probe describes a health check to be performed against a container to 1529 // determine whether it is alive or ready to receive traffic. 1530 type Probe struct { 1531 state protoimpl.MessageState 1532 sizeCache protoimpl.SizeCache 1533 unknownFields protoimpl.UnknownFields 1534 1535 // Types that are assignable to ProbeType: 1536 // 1537 // *Probe_Exec 1538 // *Probe_HttpGet 1539 // *Probe_Grpc 1540 // *Probe_TcpSocket 1541 ProbeType isProbe_ProbeType `protobuf_oneof:"probe_type"` 1542 // How often (in seconds) to perform the probe. Default to 10 seconds. 1543 // Minimum value is 1. Must be less than timeout_seconds. 1544 // 1545 // Maps to Kubernetes probe argument 'periodSeconds'. 1546 PeriodSeconds int32 `protobuf:"varint,2,opt,name=period_seconds,json=periodSeconds,proto3" json:"period_seconds,omitempty"` 1547 // Number of seconds after which the probe times out. Defaults to 1 second. 1548 // Minimum value is 1. Must be greater or equal to period_seconds. 1549 // 1550 // Maps to Kubernetes probe argument 'timeoutSeconds'. 1551 TimeoutSeconds int32 `protobuf:"varint,3,opt,name=timeout_seconds,json=timeoutSeconds,proto3" json:"timeout_seconds,omitempty"` 1552 // Number of consecutive failures before the probe is considered failed. 1553 // Defaults to 3. Minimum value is 1. 1554 // 1555 // Maps to Kubernetes probe argument 'failureThreshold'. 1556 FailureThreshold int32 `protobuf:"varint,7,opt,name=failure_threshold,json=failureThreshold,proto3" json:"failure_threshold,omitempty"` 1557 // Number of consecutive successes before the probe is considered successful. 1558 // Defaults to 1. Minimum value is 1. 1559 // 1560 // Maps to Kubernetes probe argument 'successThreshold'. 1561 SuccessThreshold int32 `protobuf:"varint,8,opt,name=success_threshold,json=successThreshold,proto3" json:"success_threshold,omitempty"` 1562 // Number of seconds to wait before starting the probe. Defaults to 0. 1563 // Minimum value is 0. 1564 // 1565 // Maps to Kubernetes probe argument 'initialDelaySeconds'. 1566 InitialDelaySeconds int32 `protobuf:"varint,9,opt,name=initial_delay_seconds,json=initialDelaySeconds,proto3" json:"initial_delay_seconds,omitempty"` 1567 } 1568 1569 func (x *Probe) Reset() { 1570 *x = Probe{} 1571 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[8] 1572 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1573 ms.StoreMessageInfo(mi) 1574 } 1575 1576 func (x *Probe) String() string { 1577 return protoimpl.X.MessageStringOf(x) 1578 } 1579 1580 func (*Probe) ProtoMessage() {} 1581 1582 func (x *Probe) ProtoReflect() protoreflect.Message { 1583 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[8] 1584 if x != nil { 1585 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1586 if ms.LoadMessageInfo() == nil { 1587 ms.StoreMessageInfo(mi) 1588 } 1589 return ms 1590 } 1591 return mi.MessageOf(x) 1592 } 1593 1594 // Deprecated: Use Probe.ProtoReflect.Descriptor instead. 1595 func (*Probe) Descriptor() ([]byte, []int) { 1596 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{8} 1597 } 1598 1599 func (m *Probe) GetProbeType() isProbe_ProbeType { 1600 if m != nil { 1601 return m.ProbeType 1602 } 1603 return nil 1604 } 1605 1606 func (x *Probe) GetExec() *Probe_ExecAction { 1607 if x, ok := x.GetProbeType().(*Probe_Exec); ok { 1608 return x.Exec 1609 } 1610 return nil 1611 } 1612 1613 func (x *Probe) GetHttpGet() *Probe_HttpGetAction { 1614 if x, ok := x.GetProbeType().(*Probe_HttpGet); ok { 1615 return x.HttpGet 1616 } 1617 return nil 1618 } 1619 1620 func (x *Probe) GetGrpc() *Probe_GrpcAction { 1621 if x, ok := x.GetProbeType().(*Probe_Grpc); ok { 1622 return x.Grpc 1623 } 1624 return nil 1625 } 1626 1627 func (x *Probe) GetTcpSocket() *Probe_TcpSocketAction { 1628 if x, ok := x.GetProbeType().(*Probe_TcpSocket); ok { 1629 return x.TcpSocket 1630 } 1631 return nil 1632 } 1633 1634 func (x *Probe) GetPeriodSeconds() int32 { 1635 if x != nil { 1636 return x.PeriodSeconds 1637 } 1638 return 0 1639 } 1640 1641 func (x *Probe) GetTimeoutSeconds() int32 { 1642 if x != nil { 1643 return x.TimeoutSeconds 1644 } 1645 return 0 1646 } 1647 1648 func (x *Probe) GetFailureThreshold() int32 { 1649 if x != nil { 1650 return x.FailureThreshold 1651 } 1652 return 0 1653 } 1654 1655 func (x *Probe) GetSuccessThreshold() int32 { 1656 if x != nil { 1657 return x.SuccessThreshold 1658 } 1659 return 0 1660 } 1661 1662 func (x *Probe) GetInitialDelaySeconds() int32 { 1663 if x != nil { 1664 return x.InitialDelaySeconds 1665 } 1666 return 0 1667 } 1668 1669 type isProbe_ProbeType interface { 1670 isProbe_ProbeType() 1671 } 1672 1673 type Probe_Exec struct { 1674 // ExecAction probes the health of a container by executing a command. 1675 Exec *Probe_ExecAction `protobuf:"bytes,1,opt,name=exec,proto3,oneof"` 1676 } 1677 1678 type Probe_HttpGet struct { 1679 // HttpGetAction probes the health of a container by sending an HTTP GET 1680 // request. 1681 HttpGet *Probe_HttpGetAction `protobuf:"bytes,4,opt,name=http_get,json=httpGet,proto3,oneof"` 1682 } 1683 1684 type Probe_Grpc struct { 1685 // GrpcAction probes the health of a container by sending a gRPC request. 1686 Grpc *Probe_GrpcAction `protobuf:"bytes,5,opt,name=grpc,proto3,oneof"` 1687 } 1688 1689 type Probe_TcpSocket struct { 1690 // TcpSocketAction probes the health of a container by opening a TCP socket 1691 // connection. 1692 TcpSocket *Probe_TcpSocketAction `protobuf:"bytes,6,opt,name=tcp_socket,json=tcpSocket,proto3,oneof"` 1693 } 1694 1695 func (*Probe_Exec) isProbe_ProbeType() {} 1696 1697 func (*Probe_HttpGet) isProbe_ProbeType() {} 1698 1699 func (*Probe_Grpc) isProbe_ProbeType() {} 1700 1701 func (*Probe_TcpSocket) isProbe_ProbeType() {} 1702 1703 // Describes the machine learning model version checkpoint. 1704 type Checkpoint struct { 1705 state protoimpl.MessageState 1706 sizeCache protoimpl.SizeCache 1707 unknownFields protoimpl.UnknownFields 1708 1709 // The ID of the checkpoint. 1710 CheckpointId string `protobuf:"bytes,1,opt,name=checkpoint_id,json=checkpointId,proto3" json:"checkpoint_id,omitempty"` 1711 // The epoch of the checkpoint. 1712 Epoch int64 `protobuf:"varint,2,opt,name=epoch,proto3" json:"epoch,omitempty"` 1713 // The step of the checkpoint. 1714 Step int64 `protobuf:"varint,3,opt,name=step,proto3" json:"step,omitempty"` 1715 } 1716 1717 func (x *Checkpoint) Reset() { 1718 *x = Checkpoint{} 1719 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[9] 1720 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1721 ms.StoreMessageInfo(mi) 1722 } 1723 1724 func (x *Checkpoint) String() string { 1725 return protoimpl.X.MessageStringOf(x) 1726 } 1727 1728 func (*Checkpoint) ProtoMessage() {} 1729 1730 func (x *Checkpoint) ProtoReflect() protoreflect.Message { 1731 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[9] 1732 if x != nil { 1733 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1734 if ms.LoadMessageInfo() == nil { 1735 ms.StoreMessageInfo(mi) 1736 } 1737 return ms 1738 } 1739 return mi.MessageOf(x) 1740 } 1741 1742 // Deprecated: Use Checkpoint.ProtoReflect.Descriptor instead. 1743 func (*Checkpoint) Descriptor() ([]byte, []int) { 1744 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{9} 1745 } 1746 1747 func (x *Checkpoint) GetCheckpointId() string { 1748 if x != nil { 1749 return x.CheckpointId 1750 } 1751 return "" 1752 } 1753 1754 func (x *Checkpoint) GetEpoch() int64 { 1755 if x != nil { 1756 return x.Epoch 1757 } 1758 return 0 1759 } 1760 1761 func (x *Checkpoint) GetStep() int64 { 1762 if x != nil { 1763 return x.Step 1764 } 1765 return 0 1766 } 1767 1768 // Represents export format supported by the Model. 1769 // All formats export to Google Cloud Storage. 1770 type Model_ExportFormat struct { 1771 state protoimpl.MessageState 1772 sizeCache protoimpl.SizeCache 1773 unknownFields protoimpl.UnknownFields 1774 1775 // Output only. The ID of the export format. 1776 // The possible format IDs are: 1777 // 1778 // * `tflite` 1779 // Used for Android mobile devices. 1780 // 1781 // * `edgetpu-tflite` 1782 // Used for [Edge TPU](https://cloud.google.com/edge-tpu/) devices. 1783 // 1784 // * `tf-saved-model` 1785 // A tensorflow model in SavedModel format. 1786 // 1787 // * `tf-js` 1788 // A [TensorFlow.js](https://www.tensorflow.org/js) model that can be used 1789 // in the browser and in Node.js using JavaScript. 1790 // 1791 // * `core-ml` 1792 // Used for iOS mobile devices. 1793 // 1794 // * `custom-trained` 1795 // A Model that was uploaded or trained by custom code. 1796 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` 1797 // Output only. The content of this Model that may be exported. 1798 ExportableContents []Model_ExportFormat_ExportableContent `protobuf:"varint,2,rep,packed,name=exportable_contents,json=exportableContents,proto3,enum=google.cloud.aiplatform.v1.Model_ExportFormat_ExportableContent" json:"exportable_contents,omitempty"` 1799 } 1800 1801 func (x *Model_ExportFormat) Reset() { 1802 *x = Model_ExportFormat{} 1803 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[10] 1804 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1805 ms.StoreMessageInfo(mi) 1806 } 1807 1808 func (x *Model_ExportFormat) String() string { 1809 return protoimpl.X.MessageStringOf(x) 1810 } 1811 1812 func (*Model_ExportFormat) ProtoMessage() {} 1813 1814 func (x *Model_ExportFormat) ProtoReflect() protoreflect.Message { 1815 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[10] 1816 if x != nil { 1817 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1818 if ms.LoadMessageInfo() == nil { 1819 ms.StoreMessageInfo(mi) 1820 } 1821 return ms 1822 } 1823 return mi.MessageOf(x) 1824 } 1825 1826 // Deprecated: Use Model_ExportFormat.ProtoReflect.Descriptor instead. 1827 func (*Model_ExportFormat) Descriptor() ([]byte, []int) { 1828 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{0, 0} 1829 } 1830 1831 func (x *Model_ExportFormat) GetId() string { 1832 if x != nil { 1833 return x.Id 1834 } 1835 return "" 1836 } 1837 1838 func (x *Model_ExportFormat) GetExportableContents() []Model_ExportFormat_ExportableContent { 1839 if x != nil { 1840 return x.ExportableContents 1841 } 1842 return nil 1843 } 1844 1845 // Stats of data used for train or evaluate the Model. 1846 type Model_DataStats struct { 1847 state protoimpl.MessageState 1848 sizeCache protoimpl.SizeCache 1849 unknownFields protoimpl.UnknownFields 1850 1851 // Number of DataItems that were used for training this Model. 1852 TrainingDataItemsCount int64 `protobuf:"varint,1,opt,name=training_data_items_count,json=trainingDataItemsCount,proto3" json:"training_data_items_count,omitempty"` 1853 // Number of DataItems that were used for validating this Model during 1854 // training. 1855 ValidationDataItemsCount int64 `protobuf:"varint,2,opt,name=validation_data_items_count,json=validationDataItemsCount,proto3" json:"validation_data_items_count,omitempty"` 1856 // Number of DataItems that were used for evaluating this Model. If the 1857 // Model is evaluated multiple times, this will be the number of test 1858 // DataItems used by the first evaluation. If the Model is not evaluated, 1859 // the number is 0. 1860 TestDataItemsCount int64 `protobuf:"varint,3,opt,name=test_data_items_count,json=testDataItemsCount,proto3" json:"test_data_items_count,omitempty"` 1861 // Number of Annotations that are used for training this Model. 1862 TrainingAnnotationsCount int64 `protobuf:"varint,4,opt,name=training_annotations_count,json=trainingAnnotationsCount,proto3" json:"training_annotations_count,omitempty"` 1863 // Number of Annotations that are used for validating this Model during 1864 // training. 1865 ValidationAnnotationsCount int64 `protobuf:"varint,5,opt,name=validation_annotations_count,json=validationAnnotationsCount,proto3" json:"validation_annotations_count,omitempty"` 1866 // Number of Annotations that are used for evaluating this Model. If the 1867 // Model is evaluated multiple times, this will be the number of test 1868 // Annotations used by the first evaluation. If the Model is not evaluated, 1869 // the number is 0. 1870 TestAnnotationsCount int64 `protobuf:"varint,6,opt,name=test_annotations_count,json=testAnnotationsCount,proto3" json:"test_annotations_count,omitempty"` 1871 } 1872 1873 func (x *Model_DataStats) Reset() { 1874 *x = Model_DataStats{} 1875 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[11] 1876 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1877 ms.StoreMessageInfo(mi) 1878 } 1879 1880 func (x *Model_DataStats) String() string { 1881 return protoimpl.X.MessageStringOf(x) 1882 } 1883 1884 func (*Model_DataStats) ProtoMessage() {} 1885 1886 func (x *Model_DataStats) ProtoReflect() protoreflect.Message { 1887 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[11] 1888 if x != nil { 1889 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1890 if ms.LoadMessageInfo() == nil { 1891 ms.StoreMessageInfo(mi) 1892 } 1893 return ms 1894 } 1895 return mi.MessageOf(x) 1896 } 1897 1898 // Deprecated: Use Model_DataStats.ProtoReflect.Descriptor instead. 1899 func (*Model_DataStats) Descriptor() ([]byte, []int) { 1900 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{0, 1} 1901 } 1902 1903 func (x *Model_DataStats) GetTrainingDataItemsCount() int64 { 1904 if x != nil { 1905 return x.TrainingDataItemsCount 1906 } 1907 return 0 1908 } 1909 1910 func (x *Model_DataStats) GetValidationDataItemsCount() int64 { 1911 if x != nil { 1912 return x.ValidationDataItemsCount 1913 } 1914 return 0 1915 } 1916 1917 func (x *Model_DataStats) GetTestDataItemsCount() int64 { 1918 if x != nil { 1919 return x.TestDataItemsCount 1920 } 1921 return 0 1922 } 1923 1924 func (x *Model_DataStats) GetTrainingAnnotationsCount() int64 { 1925 if x != nil { 1926 return x.TrainingAnnotationsCount 1927 } 1928 return 0 1929 } 1930 1931 func (x *Model_DataStats) GetValidationAnnotationsCount() int64 { 1932 if x != nil { 1933 return x.ValidationAnnotationsCount 1934 } 1935 return 0 1936 } 1937 1938 func (x *Model_DataStats) GetTestAnnotationsCount() int64 { 1939 if x != nil { 1940 return x.TestAnnotationsCount 1941 } 1942 return 0 1943 } 1944 1945 // Contains information about the original Model if this Model is a copy. 1946 type Model_OriginalModelInfo struct { 1947 state protoimpl.MessageState 1948 sizeCache protoimpl.SizeCache 1949 unknownFields protoimpl.UnknownFields 1950 1951 // Output only. The resource name of the Model this Model is a copy of, 1952 // including the revision. Format: 1953 // `projects/{project}/locations/{location}/models/{model_id}@{version_id}` 1954 Model string `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"` 1955 } 1956 1957 func (x *Model_OriginalModelInfo) Reset() { 1958 *x = Model_OriginalModelInfo{} 1959 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[12] 1960 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1961 ms.StoreMessageInfo(mi) 1962 } 1963 1964 func (x *Model_OriginalModelInfo) String() string { 1965 return protoimpl.X.MessageStringOf(x) 1966 } 1967 1968 func (*Model_OriginalModelInfo) ProtoMessage() {} 1969 1970 func (x *Model_OriginalModelInfo) ProtoReflect() protoreflect.Message { 1971 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[12] 1972 if x != nil { 1973 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1974 if ms.LoadMessageInfo() == nil { 1975 ms.StoreMessageInfo(mi) 1976 } 1977 return ms 1978 } 1979 return mi.MessageOf(x) 1980 } 1981 1982 // Deprecated: Use Model_OriginalModelInfo.ProtoReflect.Descriptor instead. 1983 func (*Model_OriginalModelInfo) Descriptor() ([]byte, []int) { 1984 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{0, 2} 1985 } 1986 1987 func (x *Model_OriginalModelInfo) GetModel() string { 1988 if x != nil { 1989 return x.Model 1990 } 1991 return "" 1992 } 1993 1994 // User input field to specify the base model source. Currently it only 1995 // supports specifing the Model Garden models and Genie models. 1996 type Model_BaseModelSource struct { 1997 state protoimpl.MessageState 1998 sizeCache protoimpl.SizeCache 1999 unknownFields protoimpl.UnknownFields 2000 2001 // Types that are assignable to Source: 2002 // 2003 // *Model_BaseModelSource_ModelGardenSource 2004 // *Model_BaseModelSource_GenieSource 2005 Source isModel_BaseModelSource_Source `protobuf_oneof:"source"` 2006 } 2007 2008 func (x *Model_BaseModelSource) Reset() { 2009 *x = Model_BaseModelSource{} 2010 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[13] 2011 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2012 ms.StoreMessageInfo(mi) 2013 } 2014 2015 func (x *Model_BaseModelSource) String() string { 2016 return protoimpl.X.MessageStringOf(x) 2017 } 2018 2019 func (*Model_BaseModelSource) ProtoMessage() {} 2020 2021 func (x *Model_BaseModelSource) ProtoReflect() protoreflect.Message { 2022 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[13] 2023 if x != nil { 2024 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2025 if ms.LoadMessageInfo() == nil { 2026 ms.StoreMessageInfo(mi) 2027 } 2028 return ms 2029 } 2030 return mi.MessageOf(x) 2031 } 2032 2033 // Deprecated: Use Model_BaseModelSource.ProtoReflect.Descriptor instead. 2034 func (*Model_BaseModelSource) Descriptor() ([]byte, []int) { 2035 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{0, 3} 2036 } 2037 2038 func (m *Model_BaseModelSource) GetSource() isModel_BaseModelSource_Source { 2039 if m != nil { 2040 return m.Source 2041 } 2042 return nil 2043 } 2044 2045 func (x *Model_BaseModelSource) GetModelGardenSource() *ModelGardenSource { 2046 if x, ok := x.GetSource().(*Model_BaseModelSource_ModelGardenSource); ok { 2047 return x.ModelGardenSource 2048 } 2049 return nil 2050 } 2051 2052 func (x *Model_BaseModelSource) GetGenieSource() *GenieSource { 2053 if x, ok := x.GetSource().(*Model_BaseModelSource_GenieSource); ok { 2054 return x.GenieSource 2055 } 2056 return nil 2057 } 2058 2059 type isModel_BaseModelSource_Source interface { 2060 isModel_BaseModelSource_Source() 2061 } 2062 2063 type Model_BaseModelSource_ModelGardenSource struct { 2064 // Source information of Model Garden models. 2065 ModelGardenSource *ModelGardenSource `protobuf:"bytes,1,opt,name=model_garden_source,json=modelGardenSource,proto3,oneof"` 2066 } 2067 2068 type Model_BaseModelSource_GenieSource struct { 2069 // Information about the base model of Genie models. 2070 GenieSource *GenieSource `protobuf:"bytes,2,opt,name=genie_source,json=genieSource,proto3,oneof"` 2071 } 2072 2073 func (*Model_BaseModelSource_ModelGardenSource) isModel_BaseModelSource_Source() {} 2074 2075 func (*Model_BaseModelSource_GenieSource) isModel_BaseModelSource_Source() {} 2076 2077 // ExecAction specifies a command to execute. 2078 type Probe_ExecAction struct { 2079 state protoimpl.MessageState 2080 sizeCache protoimpl.SizeCache 2081 unknownFields protoimpl.UnknownFields 2082 2083 // Command is the command line to execute inside the container, the working 2084 // directory for the command is root ('/') in the container's filesystem. 2085 // The command is simply exec'd, it is not run inside a shell, so 2086 // traditional shell instructions ('|', etc) won't work. To use a shell, you 2087 // need to explicitly call out to that shell. Exit status of 0 is treated as 2088 // live/healthy and non-zero is unhealthy. 2089 Command []string `protobuf:"bytes,1,rep,name=command,proto3" json:"command,omitempty"` 2090 } 2091 2092 func (x *Probe_ExecAction) Reset() { 2093 *x = Probe_ExecAction{} 2094 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[15] 2095 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2096 ms.StoreMessageInfo(mi) 2097 } 2098 2099 func (x *Probe_ExecAction) String() string { 2100 return protoimpl.X.MessageStringOf(x) 2101 } 2102 2103 func (*Probe_ExecAction) ProtoMessage() {} 2104 2105 func (x *Probe_ExecAction) ProtoReflect() protoreflect.Message { 2106 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[15] 2107 if x != nil { 2108 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2109 if ms.LoadMessageInfo() == nil { 2110 ms.StoreMessageInfo(mi) 2111 } 2112 return ms 2113 } 2114 return mi.MessageOf(x) 2115 } 2116 2117 // Deprecated: Use Probe_ExecAction.ProtoReflect.Descriptor instead. 2118 func (*Probe_ExecAction) Descriptor() ([]byte, []int) { 2119 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{8, 0} 2120 } 2121 2122 func (x *Probe_ExecAction) GetCommand() []string { 2123 if x != nil { 2124 return x.Command 2125 } 2126 return nil 2127 } 2128 2129 // HttpGetAction describes an action based on HTTP Get requests. 2130 type Probe_HttpGetAction struct { 2131 state protoimpl.MessageState 2132 sizeCache protoimpl.SizeCache 2133 unknownFields protoimpl.UnknownFields 2134 2135 // Path to access on the HTTP server. 2136 Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` 2137 // Number of the port to access on the container. 2138 // Number must be in the range 1 to 65535. 2139 Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` 2140 // Host name to connect to, defaults to the model serving container's IP. 2141 // You probably want to set "Host" in httpHeaders instead. 2142 Host string `protobuf:"bytes,3,opt,name=host,proto3" json:"host,omitempty"` 2143 // Scheme to use for connecting to the host. 2144 // Defaults to HTTP. Acceptable values are "HTTP" or "HTTPS". 2145 Scheme string `protobuf:"bytes,4,opt,name=scheme,proto3" json:"scheme,omitempty"` 2146 // Custom headers to set in the request. HTTP allows repeated headers. 2147 HttpHeaders []*Probe_HttpHeader `protobuf:"bytes,5,rep,name=http_headers,json=httpHeaders,proto3" json:"http_headers,omitempty"` 2148 } 2149 2150 func (x *Probe_HttpGetAction) Reset() { 2151 *x = Probe_HttpGetAction{} 2152 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[16] 2153 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2154 ms.StoreMessageInfo(mi) 2155 } 2156 2157 func (x *Probe_HttpGetAction) String() string { 2158 return protoimpl.X.MessageStringOf(x) 2159 } 2160 2161 func (*Probe_HttpGetAction) ProtoMessage() {} 2162 2163 func (x *Probe_HttpGetAction) ProtoReflect() protoreflect.Message { 2164 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[16] 2165 if x != nil { 2166 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2167 if ms.LoadMessageInfo() == nil { 2168 ms.StoreMessageInfo(mi) 2169 } 2170 return ms 2171 } 2172 return mi.MessageOf(x) 2173 } 2174 2175 // Deprecated: Use Probe_HttpGetAction.ProtoReflect.Descriptor instead. 2176 func (*Probe_HttpGetAction) Descriptor() ([]byte, []int) { 2177 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{8, 1} 2178 } 2179 2180 func (x *Probe_HttpGetAction) GetPath() string { 2181 if x != nil { 2182 return x.Path 2183 } 2184 return "" 2185 } 2186 2187 func (x *Probe_HttpGetAction) GetPort() int32 { 2188 if x != nil { 2189 return x.Port 2190 } 2191 return 0 2192 } 2193 2194 func (x *Probe_HttpGetAction) GetHost() string { 2195 if x != nil { 2196 return x.Host 2197 } 2198 return "" 2199 } 2200 2201 func (x *Probe_HttpGetAction) GetScheme() string { 2202 if x != nil { 2203 return x.Scheme 2204 } 2205 return "" 2206 } 2207 2208 func (x *Probe_HttpGetAction) GetHttpHeaders() []*Probe_HttpHeader { 2209 if x != nil { 2210 return x.HttpHeaders 2211 } 2212 return nil 2213 } 2214 2215 // GrpcAction checks the health of a container using a gRPC service. 2216 type Probe_GrpcAction struct { 2217 state protoimpl.MessageState 2218 sizeCache protoimpl.SizeCache 2219 unknownFields protoimpl.UnknownFields 2220 2221 // Port number of the gRPC service. Number must be in the range 1 to 65535. 2222 Port int32 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"` 2223 // Service is the name of the service to place in the gRPC 2224 // HealthCheckRequest (see 2225 // https://github.com/grpc/grpc/blob/master/doc/health-checking.md). 2226 // 2227 // If this is not specified, the default behavior is defined by gRPC. 2228 Service string `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"` 2229 } 2230 2231 func (x *Probe_GrpcAction) Reset() { 2232 *x = Probe_GrpcAction{} 2233 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[17] 2234 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2235 ms.StoreMessageInfo(mi) 2236 } 2237 2238 func (x *Probe_GrpcAction) String() string { 2239 return protoimpl.X.MessageStringOf(x) 2240 } 2241 2242 func (*Probe_GrpcAction) ProtoMessage() {} 2243 2244 func (x *Probe_GrpcAction) ProtoReflect() protoreflect.Message { 2245 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[17] 2246 if x != nil { 2247 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2248 if ms.LoadMessageInfo() == nil { 2249 ms.StoreMessageInfo(mi) 2250 } 2251 return ms 2252 } 2253 return mi.MessageOf(x) 2254 } 2255 2256 // Deprecated: Use Probe_GrpcAction.ProtoReflect.Descriptor instead. 2257 func (*Probe_GrpcAction) Descriptor() ([]byte, []int) { 2258 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{8, 2} 2259 } 2260 2261 func (x *Probe_GrpcAction) GetPort() int32 { 2262 if x != nil { 2263 return x.Port 2264 } 2265 return 0 2266 } 2267 2268 func (x *Probe_GrpcAction) GetService() string { 2269 if x != nil { 2270 return x.Service 2271 } 2272 return "" 2273 } 2274 2275 // TcpSocketAction probes the health of a container by opening a TCP socket 2276 // connection. 2277 type Probe_TcpSocketAction struct { 2278 state protoimpl.MessageState 2279 sizeCache protoimpl.SizeCache 2280 unknownFields protoimpl.UnknownFields 2281 2282 // Number of the port to access on the container. 2283 // Number must be in the range 1 to 65535. 2284 Port int32 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"` 2285 // Optional: Host name to connect to, defaults to the model serving 2286 // container's IP. 2287 Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"` 2288 } 2289 2290 func (x *Probe_TcpSocketAction) Reset() { 2291 *x = Probe_TcpSocketAction{} 2292 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[18] 2293 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2294 ms.StoreMessageInfo(mi) 2295 } 2296 2297 func (x *Probe_TcpSocketAction) String() string { 2298 return protoimpl.X.MessageStringOf(x) 2299 } 2300 2301 func (*Probe_TcpSocketAction) ProtoMessage() {} 2302 2303 func (x *Probe_TcpSocketAction) ProtoReflect() protoreflect.Message { 2304 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[18] 2305 if x != nil { 2306 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2307 if ms.LoadMessageInfo() == nil { 2308 ms.StoreMessageInfo(mi) 2309 } 2310 return ms 2311 } 2312 return mi.MessageOf(x) 2313 } 2314 2315 // Deprecated: Use Probe_TcpSocketAction.ProtoReflect.Descriptor instead. 2316 func (*Probe_TcpSocketAction) Descriptor() ([]byte, []int) { 2317 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{8, 3} 2318 } 2319 2320 func (x *Probe_TcpSocketAction) GetPort() int32 { 2321 if x != nil { 2322 return x.Port 2323 } 2324 return 0 2325 } 2326 2327 func (x *Probe_TcpSocketAction) GetHost() string { 2328 if x != nil { 2329 return x.Host 2330 } 2331 return "" 2332 } 2333 2334 // HttpHeader describes a custom header to be used in HTTP probes 2335 type Probe_HttpHeader struct { 2336 state protoimpl.MessageState 2337 sizeCache protoimpl.SizeCache 2338 unknownFields protoimpl.UnknownFields 2339 2340 // The header field name. 2341 // This will be canonicalized upon output, so case-variant names will be 2342 // understood as the same header. 2343 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2344 // The header field value 2345 Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` 2346 } 2347 2348 func (x *Probe_HttpHeader) Reset() { 2349 *x = Probe_HttpHeader{} 2350 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[19] 2351 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2352 ms.StoreMessageInfo(mi) 2353 } 2354 2355 func (x *Probe_HttpHeader) String() string { 2356 return protoimpl.X.MessageStringOf(x) 2357 } 2358 2359 func (*Probe_HttpHeader) ProtoMessage() {} 2360 2361 func (x *Probe_HttpHeader) ProtoReflect() protoreflect.Message { 2362 mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[19] 2363 if x != nil { 2364 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2365 if ms.LoadMessageInfo() == nil { 2366 ms.StoreMessageInfo(mi) 2367 } 2368 return ms 2369 } 2370 return mi.MessageOf(x) 2371 } 2372 2373 // Deprecated: Use Probe_HttpHeader.ProtoReflect.Descriptor instead. 2374 func (*Probe_HttpHeader) Descriptor() ([]byte, []int) { 2375 return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{8, 4} 2376 } 2377 2378 func (x *Probe_HttpHeader) GetName() string { 2379 if x != nil { 2380 return x.Name 2381 } 2382 return "" 2383 } 2384 2385 func (x *Probe_HttpHeader) GetValue() string { 2386 if x != nil { 2387 return x.Value 2388 } 2389 return "" 2390 } 2391 2392 var File_google_cloud_aiplatform_v1_model_proto protoreflect.FileDescriptor 2393 2394 var file_google_cloud_aiplatform_v1_model_proto_rawDesc = []byte{ 2395 0x0a, 0x26, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 2396 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x64, 2397 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2398 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 2399 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 2400 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 2401 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 2402 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2403 0x1a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 2404 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x70, 2405 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x2e, 2406 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 2407 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 2408 0x31, 0x2f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 2409 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 2410 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 2411 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x6e, 0x76, 0x5f, 0x76, 0x61, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2412 0x6f, 0x1a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 2413 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 2414 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 2415 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2416 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 2417 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2418 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 2419 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 2420 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb6, 2421 0x1c, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 2422 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0a, 2423 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 2424 0x42, 0x06, 0xe0, 0x41, 0x05, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 2425 0x6e, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 2426 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x65, 2427 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x13, 2428 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 2429 0x69, 0x6d, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2430 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 2431 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x76, 0x65, 0x72, 0x73, 2432 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 2433 0x13, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 2434 0x74, 0x69, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 2435 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 2436 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x76, 0x65, 0x72, 2437 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 2438 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 2439 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 2440 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 2441 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 2442 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x76, 0x65, 0x72, 0x73, 2443 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 2444 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 2445 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x65, 0x66, 2446 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 2447 0x69, 0x64, 0x18, 0x35, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 2448 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x56, 0x0a, 2449 0x10, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x74, 2450 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2451 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 2452 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 2453 0x6d, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x53, 0x63, 0x68, 2454 0x65, 0x6d, 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x13, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 2455 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x05, 0x20, 0x01, 2456 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x11, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 2457 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x72, 0x69, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 2458 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 2459 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 2460 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 2461 0x61, 0x74, 0x61, 0x12, 0x6d, 0x0a, 0x18, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 2462 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x18, 2463 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2464 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 2465 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 2466 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x16, 0x73, 0x75, 0x70, 0x70, 2467 0x6f, 0x72, 0x74, 0x65, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 2468 0x74, 0x73, 0x12, 0x5f, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 2469 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x32, 0xe0, 2470 0x41, 0x03, 0xfa, 0x41, 0x2c, 0x0a, 0x2a, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 2471 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 2472 0x2f, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 2473 0x65, 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 2474 0x69, 0x6e, 0x65, 0x12, 0x50, 0x0a, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 2475 0x6a, 0x6f, 0x62, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x01, 0xfa, 0x41, 2476 0x27, 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 2477 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x69, 0x70, 2478 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x0b, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 2479 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x5a, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 2480 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 2481 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 2482 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 2483 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 2484 0x41, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, 2485 0x63, 0x12, 0x26, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x72, 2486 0x69, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x61, 0x72, 2487 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x55, 0x72, 0x69, 0x12, 0x8f, 0x01, 0x0a, 0x24, 0x73, 0x75, 2488 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 2489 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x5f, 0x74, 0x79, 0x70, 2490 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2491 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 2492 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x70, 0x6c, 2493 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x54, 2494 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x21, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 2495 0x74, 0x65, 0x64, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 2496 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x1f, 0x73, 2497 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x73, 2498 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x18, 0x0b, 2499 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1c, 0x73, 0x75, 0x70, 0x70, 0x6f, 2500 0x72, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 2501 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x12, 0x4c, 0x0a, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 2502 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 2503 0x61, 0x67, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 2504 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 2505 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x46, 0x6f, 2506 0x72, 0x6d, 0x61, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 2507 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 2508 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 2509 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 2510 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 2511 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 2512 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 2513 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 2514 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 0x64, 0x65, 0x70, 2515 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x03, 2516 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2517 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 2518 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x66, 2519 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 2520 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x12, 0x56, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 2521 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 2522 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 2523 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 2524 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0f, 0x65, 0x78, 2525 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 2526 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 2527 0x67, 0x12, 0x45, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 2528 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2529 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 2530 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 2531 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x4a, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 2532 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 2533 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 2534 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 2535 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x53, 2536 0x74, 0x61, 0x74, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 2537 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 2538 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 2539 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 2540 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 2541 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5c, 0x0a, 0x11, 0x6d, 0x6f, 0x64, 2542 0x65, 0x6c, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x26, 2543 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2544 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 2545 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 2546 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 2547 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x68, 0x0a, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 2548 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x22, 2549 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2550 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 2551 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 2552 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 2553 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x6e, 0x66, 2554 0x6f, 0x12, 0x30, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x72, 2555 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 2556 0x03, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x41, 0x72, 0x74, 0x69, 0x66, 2557 0x61, 0x63, 0x74, 0x12, 0x62, 0x0a, 0x11, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 2558 0x6c, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 2559 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 2560 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 2561 0x6c, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 2562 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 2563 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x61, 0x74, 0x69, 0x73, 2564 0x66, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x7a, 0x73, 0x18, 0x33, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 2565 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x50, 0x7a, 2566 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x5f, 0x70, 2567 0x7a, 0x69, 0x18, 0x34, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 2568 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x50, 0x7a, 0x69, 0x12, 0x50, 0x0a, 0x0b, 0x63, 2569 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x39, 0x20, 0x03, 0x28, 0x0b, 2570 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2571 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 2572 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x01, 2573 0x52, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0xed, 0x01, 2574 0x0a, 0x0c, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x13, 2575 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 2576 0x02, 0x69, 0x64, 0x12, 0x76, 0x0a, 0x13, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x62, 0x6c, 2577 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 2578 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2579 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 2580 0x64, 0x65, 0x6c, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 2581 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 2582 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x61, 2583 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x50, 0x0a, 0x11, 0x45, 2584 0x78, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 2585 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 2586 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 2587 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 2588 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x02, 0x1a, 0xee, 0x02, 2589 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x74, 2590 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x74, 0x65, 2591 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 2592 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 2593 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x1b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 2594 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 2595 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x76, 0x61, 0x6c, 2596 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x73, 2597 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x15, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x61, 2598 0x74, 0x61, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 2599 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x74, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x49, 0x74, 2600 0x65, 0x6d, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x1a, 0x74, 0x72, 0x61, 0x69, 2601 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 2602 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x74, 0x72, 2603 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2604 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x1c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 2605 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 2606 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x76, 0x61, 2607 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 2608 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x65, 0x73, 0x74, 2609 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 2610 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x74, 0x65, 0x73, 0x74, 0x41, 0x6e, 2611 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x52, 2612 0x0a, 0x11, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 2613 0x6e, 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 2614 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x61, 0x69, 0x70, 0x6c, 2615 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 2616 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f, 0x64, 2617 0x65, 0x6c, 0x1a, 0xca, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 2618 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x5f, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 2619 0x67, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 2620 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2621 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 2622 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x47, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x53, 0x6f, 0x75, 0x72, 2623 0x63, 0x65, 0x48, 0x00, 0x52, 0x11, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x47, 0x61, 0x72, 0x64, 0x65, 2624 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x69, 0x65, 2625 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 2626 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 2627 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x69, 0x65, 2628 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x69, 0x65, 0x53, 2629 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 2630 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 2631 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 2632 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 2633 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8c, 0x01, 0x0a, 0x17, 0x44, 2634 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 2635 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x25, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 2636 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x53, 0x5f, 0x54, 2637 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 2638 0x00, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x45, 0x44, 0x49, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x52, 2639 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x53, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x55, 2640 0x54, 0x4f, 0x4d, 0x41, 0x54, 0x49, 0x43, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 2641 0x53, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x52, 0x45, 2642 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x53, 0x10, 0x03, 0x3a, 0x5c, 0xea, 0x41, 0x59, 0x0a, 0x1f, 2643 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2644 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 2645 0x36, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 2646 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 2647 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 2648 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x7d, 0x22, 0x2e, 0x0a, 0x13, 0x4c, 0x61, 0x72, 0x67, 0x65, 2649 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x17, 2650 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 2651 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x11, 0x4d, 0x6f, 0x64, 0x65, 2652 0x6c, 0x47, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2f, 0x0a, 2653 0x11, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 2654 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x70, 2655 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 2656 0x0a, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 2657 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 2658 0x49, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x68, 0x66, 0x5f, 0x6d, 0x6f, 2659 0x64, 0x65, 0x6c, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 2660 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x73, 0x6b, 0x69, 0x70, 0x48, 0x66, 0x4d, 0x6f, 0x64, 0x65, 2661 0x6c, 0x43, 0x61, 0x63, 0x68, 0x65, 0x22, 0x38, 0x0a, 0x0b, 0x47, 0x65, 0x6e, 0x69, 0x65, 0x53, 2662 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x6f, 2663 0x64, 0x65, 0x6c, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 2664 0x41, 0x02, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55, 0x72, 0x69, 2665 0x22, 0xb8, 0x01, 0x0a, 0x0f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 2666 0x6d, 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x13, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 2667 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 2668 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x11, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 2669 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x72, 0x69, 0x12, 0x37, 0x0a, 0x15, 0x70, 0x61, 0x72, 2670 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x75, 2671 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x13, 0x70, 2672 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 2673 0x72, 0x69, 0x12, 0x37, 0x0a, 0x15, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 2674 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 2675 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x13, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 2676 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x72, 0x69, 0x22, 0xa4, 0x06, 0x0a, 0x12, 2677 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 2678 0x65, 0x63, 0x12, 0x23, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 2679 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x08, 0x69, 2680 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x12, 0x1d, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 2681 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x07, 0x63, 2682 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x03, 2683 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 2684 0x39, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 2685 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 2686 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 2687 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x3b, 0x0a, 0x05, 0x70, 0x6f, 2688 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2689 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 2690 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x05, 2691 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x64, 0x69, 2692 0x63, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 2693 0xe0, 0x41, 0x05, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x6f, 0x75, 0x74, 2694 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x72, 0x6f, 0x75, 0x74, 2695 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x68, 0x65, 2696 0x61, 0x6c, 0x74, 0x68, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x69, 0x6e, 0x76, 2697 0x6f, 0x6b, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 2698 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x11, 0x69, 0x6e, 0x76, 2699 0x6f, 0x6b, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x44, 2700 0x0a, 0x0a, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 2701 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2702 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 2703 0x50, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x09, 0x67, 0x72, 0x70, 0x63, 0x50, 2704 0x6f, 0x72, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x12, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 2705 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 2706 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 2707 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x05, 2708 0x52, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 2709 0x6f, 0x75, 0x74, 0x12, 0x36, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x65, 2710 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x6d, 0x62, 0x18, 0x0b, 0x20, 0x01, 2711 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x12, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 2712 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x12, 0x4b, 0x0a, 0x0d, 0x73, 2713 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0x0c, 0x20, 0x01, 2714 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2715 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 2716 0x50, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 2717 0x74, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 2718 0x74, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 2719 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 2720 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x62, 2721 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x72, 2722 0x6f, 0x62, 0x65, 0x12, 0x4d, 0x0a, 0x0e, 0x6c, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x5f, 2723 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 2724 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 2725 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x03, 2726 0xe0, 0x41, 0x05, 0x52, 0x0d, 0x6c, 0x69, 0x76, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x50, 0x72, 0x6f, 2727 0x62, 0x65, 0x22, 0x2d, 0x0a, 0x04, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 2728 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 2729 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 2730 0x74, 0x22, 0xa5, 0x02, 0x0a, 0x0f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 2731 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 2732 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 2733 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 2734 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 2735 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 2736 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 2737 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x70, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 2738 0x08, 0x52, 0x04, 0x63, 0x6f, 0x70, 0x79, 0x22, 0x9f, 0x01, 0x0a, 0x0f, 0x4d, 0x6f, 0x64, 0x65, 2739 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 2740 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 2741 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 2742 0x0a, 0x06, 0x41, 0x55, 0x54, 0x4f, 0x4d, 0x4c, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x55, 2743 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x51, 0x4d, 0x4c, 0x10, 0x03, 2744 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x47, 0x41, 0x52, 0x44, 0x45, 0x4e, 2745 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x45, 0x4e, 0x49, 0x45, 0x10, 0x05, 0x12, 0x19, 0x0a, 2746 0x15, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x45, 0x4d, 0x42, 2747 0x45, 0x44, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x41, 0x52, 0x4b, 2748 0x45, 0x54, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x07, 0x22, 0xab, 0x07, 0x0a, 0x05, 0x50, 0x72, 2749 0x6f, 0x62, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x65, 0x78, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 2750 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2751 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 2752 0x72, 0x6f, 0x62, 0x65, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 2753 0x00, 0x52, 0x04, 0x65, 0x78, 0x65, 0x63, 0x12, 0x4c, 0x0a, 0x08, 0x68, 0x74, 0x74, 0x70, 0x5f, 2754 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2755 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 2756 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x2e, 0x48, 0x74, 0x74, 2757 0x70, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x68, 0x74, 2758 0x74, 0x70, 0x47, 0x65, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x67, 0x72, 0x70, 0x63, 0x18, 0x05, 0x20, 2759 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 2760 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 2761 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 2762 0x6e, 0x48, 0x00, 0x52, 0x04, 0x67, 0x72, 0x70, 0x63, 0x12, 0x52, 0x0a, 0x0a, 0x74, 0x63, 0x70, 2763 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 2764 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 2765 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 2766 0x2e, 0x54, 0x63, 0x70, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 2767 0x48, 0x00, 0x52, 0x09, 0x74, 0x63, 0x70, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x25, 0x0a, 2768 0x0e, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 2769 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x65, 0x63, 2770 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 2771 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 2772 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x2b, 0x0a, 2773 0x11, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 2774 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 2775 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x75, 2776 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 2777 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x68, 2778 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x69, 0x74, 0x69, 2779 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 2780 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x44, 2781 0x65, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x1a, 0x26, 0x0a, 0x0a, 0x45, 2782 0x78, 0x65, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 2783 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 2784 0x61, 0x6e, 0x64, 0x1a, 0xb4, 0x01, 0x0a, 0x0d, 0x48, 0x74, 0x74, 0x70, 0x47, 0x65, 0x74, 0x41, 2785 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 2786 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 2787 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 2788 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 2789 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 2790 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x68, 0x74, 0x74, 2791 0x70, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 2792 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 2793 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 2794 0x62, 0x65, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0b, 0x68, 2795 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x1a, 0x3a, 0x0a, 0x0a, 0x47, 0x72, 2796 0x70, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 2797 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 2798 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 2799 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x1a, 0x39, 0x0a, 0x0f, 0x54, 0x63, 0x70, 0x53, 0x6f, 0x63, 2800 0x6b, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 2801 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 2802 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 2803 0x74, 0x1a, 0x36, 0x0a, 0x0a, 0x48, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 2804 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 2805 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 2806 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 2807 0x62, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5b, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 2808 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 2809 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x68, 2810 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 2811 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 2812 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 2813 0x73, 0x74, 0x65, 0x70, 0x42, 0xc8, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 2814 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 2815 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x72, 2816 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 2817 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 2818 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 2819 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 2820 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 2821 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 2822 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 2823 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 2824 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 2825 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 2826 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 2827 } 2828 2829 var ( 2830 file_google_cloud_aiplatform_v1_model_proto_rawDescOnce sync.Once 2831 file_google_cloud_aiplatform_v1_model_proto_rawDescData = file_google_cloud_aiplatform_v1_model_proto_rawDesc 2832 ) 2833 2834 func file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP() []byte { 2835 file_google_cloud_aiplatform_v1_model_proto_rawDescOnce.Do(func() { 2836 file_google_cloud_aiplatform_v1_model_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_model_proto_rawDescData) 2837 }) 2838 return file_google_cloud_aiplatform_v1_model_proto_rawDescData 2839 } 2840 2841 var file_google_cloud_aiplatform_v1_model_proto_enumTypes = make([]protoimpl.EnumInfo, 3) 2842 var file_google_cloud_aiplatform_v1_model_proto_msgTypes = make([]protoimpl.MessageInfo, 20) 2843 var file_google_cloud_aiplatform_v1_model_proto_goTypes = []any{ 2844 (Model_DeploymentResourcesType)(0), // 0: google.cloud.aiplatform.v1.Model.DeploymentResourcesType 2845 (Model_ExportFormat_ExportableContent)(0), // 1: google.cloud.aiplatform.v1.Model.ExportFormat.ExportableContent 2846 (ModelSourceInfo_ModelSourceType)(0), // 2: google.cloud.aiplatform.v1.ModelSourceInfo.ModelSourceType 2847 (*Model)(nil), // 3: google.cloud.aiplatform.v1.Model 2848 (*LargeModelReference)(nil), // 4: google.cloud.aiplatform.v1.LargeModelReference 2849 (*ModelGardenSource)(nil), // 5: google.cloud.aiplatform.v1.ModelGardenSource 2850 (*GenieSource)(nil), // 6: google.cloud.aiplatform.v1.GenieSource 2851 (*PredictSchemata)(nil), // 7: google.cloud.aiplatform.v1.PredictSchemata 2852 (*ModelContainerSpec)(nil), // 8: google.cloud.aiplatform.v1.ModelContainerSpec 2853 (*Port)(nil), // 9: google.cloud.aiplatform.v1.Port 2854 (*ModelSourceInfo)(nil), // 10: google.cloud.aiplatform.v1.ModelSourceInfo 2855 (*Probe)(nil), // 11: google.cloud.aiplatform.v1.Probe 2856 (*Checkpoint)(nil), // 12: google.cloud.aiplatform.v1.Checkpoint 2857 (*Model_ExportFormat)(nil), // 13: google.cloud.aiplatform.v1.Model.ExportFormat 2858 (*Model_DataStats)(nil), // 14: google.cloud.aiplatform.v1.Model.DataStats 2859 (*Model_OriginalModelInfo)(nil), // 15: google.cloud.aiplatform.v1.Model.OriginalModelInfo 2860 (*Model_BaseModelSource)(nil), // 16: google.cloud.aiplatform.v1.Model.BaseModelSource 2861 nil, // 17: google.cloud.aiplatform.v1.Model.LabelsEntry 2862 (*Probe_ExecAction)(nil), // 18: google.cloud.aiplatform.v1.Probe.ExecAction 2863 (*Probe_HttpGetAction)(nil), // 19: google.cloud.aiplatform.v1.Probe.HttpGetAction 2864 (*Probe_GrpcAction)(nil), // 20: google.cloud.aiplatform.v1.Probe.GrpcAction 2865 (*Probe_TcpSocketAction)(nil), // 21: google.cloud.aiplatform.v1.Probe.TcpSocketAction 2866 (*Probe_HttpHeader)(nil), // 22: google.cloud.aiplatform.v1.Probe.HttpHeader 2867 (*timestamppb.Timestamp)(nil), // 23: google.protobuf.Timestamp 2868 (*structpb.Value)(nil), // 24: google.protobuf.Value 2869 (*DeployedModelRef)(nil), // 25: google.cloud.aiplatform.v1.DeployedModelRef 2870 (*ExplanationSpec)(nil), // 26: google.cloud.aiplatform.v1.ExplanationSpec 2871 (*EncryptionSpec)(nil), // 27: google.cloud.aiplatform.v1.EncryptionSpec 2872 (*EnvVar)(nil), // 28: google.cloud.aiplatform.v1.EnvVar 2873 (*durationpb.Duration)(nil), // 29: google.protobuf.Duration 2874 } 2875 var file_google_cloud_aiplatform_v1_model_proto_depIdxs = []int32{ 2876 23, // 0: google.cloud.aiplatform.v1.Model.version_create_time:type_name -> google.protobuf.Timestamp 2877 23, // 1: google.cloud.aiplatform.v1.Model.version_update_time:type_name -> google.protobuf.Timestamp 2878 7, // 2: google.cloud.aiplatform.v1.Model.predict_schemata:type_name -> google.cloud.aiplatform.v1.PredictSchemata 2879 24, // 3: google.cloud.aiplatform.v1.Model.metadata:type_name -> google.protobuf.Value 2880 13, // 4: google.cloud.aiplatform.v1.Model.supported_export_formats:type_name -> google.cloud.aiplatform.v1.Model.ExportFormat 2881 8, // 5: google.cloud.aiplatform.v1.Model.container_spec:type_name -> google.cloud.aiplatform.v1.ModelContainerSpec 2882 0, // 6: google.cloud.aiplatform.v1.Model.supported_deployment_resources_types:type_name -> google.cloud.aiplatform.v1.Model.DeploymentResourcesType 2883 23, // 7: google.cloud.aiplatform.v1.Model.create_time:type_name -> google.protobuf.Timestamp 2884 23, // 8: google.cloud.aiplatform.v1.Model.update_time:type_name -> google.protobuf.Timestamp 2885 25, // 9: google.cloud.aiplatform.v1.Model.deployed_models:type_name -> google.cloud.aiplatform.v1.DeployedModelRef 2886 26, // 10: google.cloud.aiplatform.v1.Model.explanation_spec:type_name -> google.cloud.aiplatform.v1.ExplanationSpec 2887 17, // 11: google.cloud.aiplatform.v1.Model.labels:type_name -> google.cloud.aiplatform.v1.Model.LabelsEntry 2888 14, // 12: google.cloud.aiplatform.v1.Model.data_stats:type_name -> google.cloud.aiplatform.v1.Model.DataStats 2889 27, // 13: google.cloud.aiplatform.v1.Model.encryption_spec:type_name -> google.cloud.aiplatform.v1.EncryptionSpec 2890 10, // 14: google.cloud.aiplatform.v1.Model.model_source_info:type_name -> google.cloud.aiplatform.v1.ModelSourceInfo 2891 15, // 15: google.cloud.aiplatform.v1.Model.original_model_info:type_name -> google.cloud.aiplatform.v1.Model.OriginalModelInfo 2892 16, // 16: google.cloud.aiplatform.v1.Model.base_model_source:type_name -> google.cloud.aiplatform.v1.Model.BaseModelSource 2893 12, // 17: google.cloud.aiplatform.v1.Model.checkpoints:type_name -> google.cloud.aiplatform.v1.Checkpoint 2894 28, // 18: google.cloud.aiplatform.v1.ModelContainerSpec.env:type_name -> google.cloud.aiplatform.v1.EnvVar 2895 9, // 19: google.cloud.aiplatform.v1.ModelContainerSpec.ports:type_name -> google.cloud.aiplatform.v1.Port 2896 9, // 20: google.cloud.aiplatform.v1.ModelContainerSpec.grpc_ports:type_name -> google.cloud.aiplatform.v1.Port 2897 29, // 21: google.cloud.aiplatform.v1.ModelContainerSpec.deployment_timeout:type_name -> google.protobuf.Duration 2898 11, // 22: google.cloud.aiplatform.v1.ModelContainerSpec.startup_probe:type_name -> google.cloud.aiplatform.v1.Probe 2899 11, // 23: google.cloud.aiplatform.v1.ModelContainerSpec.health_probe:type_name -> google.cloud.aiplatform.v1.Probe 2900 11, // 24: google.cloud.aiplatform.v1.ModelContainerSpec.liveness_probe:type_name -> google.cloud.aiplatform.v1.Probe 2901 2, // 25: google.cloud.aiplatform.v1.ModelSourceInfo.source_type:type_name -> google.cloud.aiplatform.v1.ModelSourceInfo.ModelSourceType 2902 18, // 26: google.cloud.aiplatform.v1.Probe.exec:type_name -> google.cloud.aiplatform.v1.Probe.ExecAction 2903 19, // 27: google.cloud.aiplatform.v1.Probe.http_get:type_name -> google.cloud.aiplatform.v1.Probe.HttpGetAction 2904 20, // 28: google.cloud.aiplatform.v1.Probe.grpc:type_name -> google.cloud.aiplatform.v1.Probe.GrpcAction 2905 21, // 29: google.cloud.aiplatform.v1.Probe.tcp_socket:type_name -> google.cloud.aiplatform.v1.Probe.TcpSocketAction 2906 1, // 30: google.cloud.aiplatform.v1.Model.ExportFormat.exportable_contents:type_name -> google.cloud.aiplatform.v1.Model.ExportFormat.ExportableContent 2907 5, // 31: google.cloud.aiplatform.v1.Model.BaseModelSource.model_garden_source:type_name -> google.cloud.aiplatform.v1.ModelGardenSource 2908 6, // 32: google.cloud.aiplatform.v1.Model.BaseModelSource.genie_source:type_name -> google.cloud.aiplatform.v1.GenieSource 2909 22, // 33: google.cloud.aiplatform.v1.Probe.HttpGetAction.http_headers:type_name -> google.cloud.aiplatform.v1.Probe.HttpHeader 2910 34, // [34:34] is the sub-list for method output_type 2911 34, // [34:34] is the sub-list for method input_type 2912 34, // [34:34] is the sub-list for extension type_name 2913 34, // [34:34] is the sub-list for extension extendee 2914 0, // [0:34] is the sub-list for field type_name 2915 } 2916 2917 func init() { file_google_cloud_aiplatform_v1_model_proto_init() } 2918 func file_google_cloud_aiplatform_v1_model_proto_init() { 2919 if File_google_cloud_aiplatform_v1_model_proto != nil { 2920 return 2921 } 2922 file_google_cloud_aiplatform_v1_deployed_model_ref_proto_init() 2923 file_google_cloud_aiplatform_v1_encryption_spec_proto_init() 2924 file_google_cloud_aiplatform_v1_env_var_proto_init() 2925 file_google_cloud_aiplatform_v1_explanation_proto_init() 2926 file_google_cloud_aiplatform_v1_model_proto_msgTypes[8].OneofWrappers = []any{ 2927 (*Probe_Exec)(nil), 2928 (*Probe_HttpGet)(nil), 2929 (*Probe_Grpc)(nil), 2930 (*Probe_TcpSocket)(nil), 2931 } 2932 file_google_cloud_aiplatform_v1_model_proto_msgTypes[13].OneofWrappers = []any{ 2933 (*Model_BaseModelSource_ModelGardenSource)(nil), 2934 (*Model_BaseModelSource_GenieSource)(nil), 2935 } 2936 type x struct{} 2937 out := protoimpl.TypeBuilder{ 2938 File: protoimpl.DescBuilder{ 2939 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 2940 RawDescriptor: file_google_cloud_aiplatform_v1_model_proto_rawDesc, 2941 NumEnums: 3, 2942 NumMessages: 20, 2943 NumExtensions: 0, 2944 NumServices: 0, 2945 }, 2946 GoTypes: file_google_cloud_aiplatform_v1_model_proto_goTypes, 2947 DependencyIndexes: file_google_cloud_aiplatform_v1_model_proto_depIdxs, 2948 EnumInfos: file_google_cloud_aiplatform_v1_model_proto_enumTypes, 2949 MessageInfos: file_google_cloud_aiplatform_v1_model_proto_msgTypes, 2950 }.Build() 2951 File_google_cloud_aiplatform_v1_model_proto = out.File 2952 file_google_cloud_aiplatform_v1_model_proto_rawDesc = nil 2953 file_google_cloud_aiplatform_v1_model_proto_goTypes = nil 2954 file_google_cloud_aiplatform_v1_model_proto_depIdxs = nil 2955 }