cloud.google.com/go/aiplatform@v1.106.0/apiv1beta1/aiplatformpb/model_monitor.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/v1beta1/model_monitor.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 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 28 reflect "reflect" 29 sync "sync" 30 ) 31 32 const ( 33 // Verify that this generated code is sufficiently up-to-date. 34 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 35 // Verify that runtime/protoimpl is sufficiently up-to-date. 36 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 37 ) 38 39 // Vertex AI Model Monitoring Service serves as a central hub for the analysis 40 // and visualization of data quality and performance related to models. 41 // ModelMonitor stands as a top level resource for overseeing your model 42 // monitoring tasks. 43 type ModelMonitor struct { 44 state protoimpl.MessageState 45 sizeCache protoimpl.SizeCache 46 unknownFields protoimpl.UnknownFields 47 48 // Optional default monitoring objective, it can be overridden in the 49 // ModelMonitoringJob objective spec. 50 // 51 // Types that are assignable to DefaultObjective: 52 // 53 // *ModelMonitor_TabularObjective 54 DefaultObjective isModelMonitor_DefaultObjective `protobuf_oneof:"default_objective"` 55 // Immutable. Resource name of the ModelMonitor. Format: 56 // `projects/{project}/locations/{location}/modelMonitors/{model_monitor}`. 57 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 58 // The display name of the ModelMonitor. 59 // The name can be up to 128 characters long and can consist of any UTF-8. 60 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 61 // The entity that is subject to analysis. 62 // Currently only models in Vertex AI Model Registry are supported. If you 63 // want to analyze the model which is outside the Vertex AI, you could 64 // register a model in Vertex AI Model Registry using just a display name. 65 ModelMonitoringTarget *ModelMonitor_ModelMonitoringTarget `protobuf:"bytes,3,opt,name=model_monitoring_target,json=modelMonitoringTarget,proto3" json:"model_monitoring_target,omitempty"` 66 // Optional training dataset used to train the model. 67 // It can serve as a reference dataset to identify changes in production. 68 TrainingDataset *ModelMonitoringInput `protobuf:"bytes,10,opt,name=training_dataset,json=trainingDataset,proto3" json:"training_dataset,omitempty"` 69 // Optional default notification spec, it can be overridden in the 70 // ModelMonitoringJob notification spec. 71 NotificationSpec *ModelMonitoringNotificationSpec `protobuf:"bytes,12,opt,name=notification_spec,json=notificationSpec,proto3" json:"notification_spec,omitempty"` 72 // Optional default monitoring metrics/logs export spec, it can be overridden 73 // in the ModelMonitoringJob output spec. 74 // If not specified, a default Google Cloud Storage bucket will be created 75 // under your project. 76 OutputSpec *ModelMonitoringOutputSpec `protobuf:"bytes,13,opt,name=output_spec,json=outputSpec,proto3" json:"output_spec,omitempty"` 77 // Optional model explanation spec. It is used for feature attribution 78 // monitoring. 79 ExplanationSpec *ExplanationSpec `protobuf:"bytes,16,opt,name=explanation_spec,json=explanationSpec,proto3" json:"explanation_spec,omitempty"` 80 // Monitoring Schema is to specify the model's features, prediction outputs 81 // and ground truth properties. It is used to extract pertinent data from the 82 // dataset and to process features based on their properties. 83 // Make sure that the schema aligns with your dataset, if it does not, we will 84 // be unable to extract data from the dataset. 85 // It is required for most models, but optional for Vertex AI AutoML Tables 86 // unless the schem information is not available. 87 ModelMonitoringSchema *ModelMonitoringSchema `protobuf:"bytes,9,opt,name=model_monitoring_schema,json=modelMonitoringSchema,proto3" json:"model_monitoring_schema,omitempty"` 88 // Customer-managed encryption key spec for a ModelMonitor. If 89 // set, this ModelMonitor and all sub-resources of this 90 // ModelMonitor will be secured by this key. 91 EncryptionSpec *EncryptionSpec `protobuf:"bytes,5,opt,name=encryption_spec,json=encryptionSpec,proto3" json:"encryption_spec,omitempty"` 92 // Output only. Timestamp when this ModelMonitor was created. 93 CreateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 94 // Output only. Timestamp when this ModelMonitor was updated most recently. 95 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 96 // Output only. Reserved for future use. 97 SatisfiesPzs bool `protobuf:"varint,17,opt,name=satisfies_pzs,json=satisfiesPzs,proto3" json:"satisfies_pzs,omitempty"` 98 // Output only. Reserved for future use. 99 SatisfiesPzi bool `protobuf:"varint,18,opt,name=satisfies_pzi,json=satisfiesPzi,proto3" json:"satisfies_pzi,omitempty"` 100 } 101 102 func (x *ModelMonitor) Reset() { 103 *x = ModelMonitor{} 104 mi := &file_google_cloud_aiplatform_v1beta1_model_monitor_proto_msgTypes[0] 105 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 106 ms.StoreMessageInfo(mi) 107 } 108 109 func (x *ModelMonitor) String() string { 110 return protoimpl.X.MessageStringOf(x) 111 } 112 113 func (*ModelMonitor) ProtoMessage() {} 114 115 func (x *ModelMonitor) ProtoReflect() protoreflect.Message { 116 mi := &file_google_cloud_aiplatform_v1beta1_model_monitor_proto_msgTypes[0] 117 if x != nil { 118 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 119 if ms.LoadMessageInfo() == nil { 120 ms.StoreMessageInfo(mi) 121 } 122 return ms 123 } 124 return mi.MessageOf(x) 125 } 126 127 // Deprecated: Use ModelMonitor.ProtoReflect.Descriptor instead. 128 func (*ModelMonitor) Descriptor() ([]byte, []int) { 129 return file_google_cloud_aiplatform_v1beta1_model_monitor_proto_rawDescGZIP(), []int{0} 130 } 131 132 func (m *ModelMonitor) GetDefaultObjective() isModelMonitor_DefaultObjective { 133 if m != nil { 134 return m.DefaultObjective 135 } 136 return nil 137 } 138 139 func (x *ModelMonitor) GetTabularObjective() *ModelMonitoringObjectiveSpec_TabularObjective { 140 if x, ok := x.GetDefaultObjective().(*ModelMonitor_TabularObjective); ok { 141 return x.TabularObjective 142 } 143 return nil 144 } 145 146 func (x *ModelMonitor) GetName() string { 147 if x != nil { 148 return x.Name 149 } 150 return "" 151 } 152 153 func (x *ModelMonitor) GetDisplayName() string { 154 if x != nil { 155 return x.DisplayName 156 } 157 return "" 158 } 159 160 func (x *ModelMonitor) GetModelMonitoringTarget() *ModelMonitor_ModelMonitoringTarget { 161 if x != nil { 162 return x.ModelMonitoringTarget 163 } 164 return nil 165 } 166 167 func (x *ModelMonitor) GetTrainingDataset() *ModelMonitoringInput { 168 if x != nil { 169 return x.TrainingDataset 170 } 171 return nil 172 } 173 174 func (x *ModelMonitor) GetNotificationSpec() *ModelMonitoringNotificationSpec { 175 if x != nil { 176 return x.NotificationSpec 177 } 178 return nil 179 } 180 181 func (x *ModelMonitor) GetOutputSpec() *ModelMonitoringOutputSpec { 182 if x != nil { 183 return x.OutputSpec 184 } 185 return nil 186 } 187 188 func (x *ModelMonitor) GetExplanationSpec() *ExplanationSpec { 189 if x != nil { 190 return x.ExplanationSpec 191 } 192 return nil 193 } 194 195 func (x *ModelMonitor) GetModelMonitoringSchema() *ModelMonitoringSchema { 196 if x != nil { 197 return x.ModelMonitoringSchema 198 } 199 return nil 200 } 201 202 func (x *ModelMonitor) GetEncryptionSpec() *EncryptionSpec { 203 if x != nil { 204 return x.EncryptionSpec 205 } 206 return nil 207 } 208 209 func (x *ModelMonitor) GetCreateTime() *timestamppb.Timestamp { 210 if x != nil { 211 return x.CreateTime 212 } 213 return nil 214 } 215 216 func (x *ModelMonitor) GetUpdateTime() *timestamppb.Timestamp { 217 if x != nil { 218 return x.UpdateTime 219 } 220 return nil 221 } 222 223 func (x *ModelMonitor) GetSatisfiesPzs() bool { 224 if x != nil { 225 return x.SatisfiesPzs 226 } 227 return false 228 } 229 230 func (x *ModelMonitor) GetSatisfiesPzi() bool { 231 if x != nil { 232 return x.SatisfiesPzi 233 } 234 return false 235 } 236 237 type isModelMonitor_DefaultObjective interface { 238 isModelMonitor_DefaultObjective() 239 } 240 241 type ModelMonitor_TabularObjective struct { 242 // Optional default tabular model monitoring objective. 243 TabularObjective *ModelMonitoringObjectiveSpec_TabularObjective `protobuf:"bytes,11,opt,name=tabular_objective,json=tabularObjective,proto3,oneof"` 244 } 245 246 func (*ModelMonitor_TabularObjective) isModelMonitor_DefaultObjective() {} 247 248 // The Model Monitoring Schema definition. 249 type ModelMonitoringSchema struct { 250 state protoimpl.MessageState 251 sizeCache protoimpl.SizeCache 252 unknownFields protoimpl.UnknownFields 253 254 // Feature names of the model. Vertex AI will try to match the features from 255 // your dataset as follows: 256 // - For 'csv' files, the header names are required, and we will extract the 257 // corresponding feature values when the header names align with the 258 // feature names. 259 // - For 'jsonl' files, we will extract the corresponding feature values if 260 // the key names match the feature names. 261 // Note: Nested features are not supported, so please ensure your features 262 // are flattened. Ensure the feature values are scalar or an array of 263 // scalars. 264 // - For 'bigquery' dataset, we will extract the corresponding feature values 265 // if the column names match the feature names. 266 // Note: The column type can be a scalar or an array of scalars. STRUCT or 267 // JSON types are not supported. You may use SQL queries to select or 268 // aggregate the relevant features from your original table. However, 269 // ensure that the 'schema' of the query results meets our requirements. 270 // - For the Vertex AI Endpoint Request Response Logging table or Vertex AI 271 // Batch Prediction Job results. If the 272 // [instance_type][google.cloud.aiplatform.v1beta1.ModelMonitoringSchema.instance_type] 273 // is an array, ensure that the sequence in 274 // [feature_fields][google.cloud.aiplatform.v1beta1.ModelMonitoringSchema.feature_fields] 275 // matches the order of features in the prediction instance. We will match 276 // the feature with the array in the order specified in [feature_fields]. 277 FeatureFields []*ModelMonitoringSchema_FieldSchema `protobuf:"bytes,1,rep,name=feature_fields,json=featureFields,proto3" json:"feature_fields,omitempty"` 278 // Prediction output names of the model. The requirements are the same as the 279 // [feature_fields][google.cloud.aiplatform.v1beta1.ModelMonitoringSchema.feature_fields]. 280 // For AutoML Tables, the prediction output name presented in schema will be: 281 // `predicted_{target_column}`, the `target_column` is the one you specified 282 // when you train the model. 283 // For Prediction output drift analysis: 284 // - AutoML Classification, the distribution of the argmax label will be 285 // analyzed. 286 // - AutoML Regression, the distribution of the value will be analyzed. 287 PredictionFields []*ModelMonitoringSchema_FieldSchema `protobuf:"bytes,2,rep,name=prediction_fields,json=predictionFields,proto3" json:"prediction_fields,omitempty"` 288 // Target /ground truth names of the model. 289 GroundTruthFields []*ModelMonitoringSchema_FieldSchema `protobuf:"bytes,3,rep,name=ground_truth_fields,json=groundTruthFields,proto3" json:"ground_truth_fields,omitempty"` 290 } 291 292 func (x *ModelMonitoringSchema) Reset() { 293 *x = ModelMonitoringSchema{} 294 mi := &file_google_cloud_aiplatform_v1beta1_model_monitor_proto_msgTypes[1] 295 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 296 ms.StoreMessageInfo(mi) 297 } 298 299 func (x *ModelMonitoringSchema) String() string { 300 return protoimpl.X.MessageStringOf(x) 301 } 302 303 func (*ModelMonitoringSchema) ProtoMessage() {} 304 305 func (x *ModelMonitoringSchema) ProtoReflect() protoreflect.Message { 306 mi := &file_google_cloud_aiplatform_v1beta1_model_monitor_proto_msgTypes[1] 307 if x != nil { 308 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 309 if ms.LoadMessageInfo() == nil { 310 ms.StoreMessageInfo(mi) 311 } 312 return ms 313 } 314 return mi.MessageOf(x) 315 } 316 317 // Deprecated: Use ModelMonitoringSchema.ProtoReflect.Descriptor instead. 318 func (*ModelMonitoringSchema) Descriptor() ([]byte, []int) { 319 return file_google_cloud_aiplatform_v1beta1_model_monitor_proto_rawDescGZIP(), []int{1} 320 } 321 322 func (x *ModelMonitoringSchema) GetFeatureFields() []*ModelMonitoringSchema_FieldSchema { 323 if x != nil { 324 return x.FeatureFields 325 } 326 return nil 327 } 328 329 func (x *ModelMonitoringSchema) GetPredictionFields() []*ModelMonitoringSchema_FieldSchema { 330 if x != nil { 331 return x.PredictionFields 332 } 333 return nil 334 } 335 336 func (x *ModelMonitoringSchema) GetGroundTruthFields() []*ModelMonitoringSchema_FieldSchema { 337 if x != nil { 338 return x.GroundTruthFields 339 } 340 return nil 341 } 342 343 // The monitoring target refers to the entity that is subject to analysis. 344 // e.g. Vertex AI Model version. 345 type ModelMonitor_ModelMonitoringTarget struct { 346 state protoimpl.MessageState 347 sizeCache protoimpl.SizeCache 348 unknownFields protoimpl.UnknownFields 349 350 // Types that are assignable to Source: 351 // 352 // *ModelMonitor_ModelMonitoringTarget_VertexModel 353 Source isModelMonitor_ModelMonitoringTarget_Source `protobuf_oneof:"source"` 354 } 355 356 func (x *ModelMonitor_ModelMonitoringTarget) Reset() { 357 *x = ModelMonitor_ModelMonitoringTarget{} 358 mi := &file_google_cloud_aiplatform_v1beta1_model_monitor_proto_msgTypes[2] 359 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 360 ms.StoreMessageInfo(mi) 361 } 362 363 func (x *ModelMonitor_ModelMonitoringTarget) String() string { 364 return protoimpl.X.MessageStringOf(x) 365 } 366 367 func (*ModelMonitor_ModelMonitoringTarget) ProtoMessage() {} 368 369 func (x *ModelMonitor_ModelMonitoringTarget) ProtoReflect() protoreflect.Message { 370 mi := &file_google_cloud_aiplatform_v1beta1_model_monitor_proto_msgTypes[2] 371 if x != nil { 372 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 373 if ms.LoadMessageInfo() == nil { 374 ms.StoreMessageInfo(mi) 375 } 376 return ms 377 } 378 return mi.MessageOf(x) 379 } 380 381 // Deprecated: Use ModelMonitor_ModelMonitoringTarget.ProtoReflect.Descriptor instead. 382 func (*ModelMonitor_ModelMonitoringTarget) Descriptor() ([]byte, []int) { 383 return file_google_cloud_aiplatform_v1beta1_model_monitor_proto_rawDescGZIP(), []int{0, 0} 384 } 385 386 func (m *ModelMonitor_ModelMonitoringTarget) GetSource() isModelMonitor_ModelMonitoringTarget_Source { 387 if m != nil { 388 return m.Source 389 } 390 return nil 391 } 392 393 func (x *ModelMonitor_ModelMonitoringTarget) GetVertexModel() *ModelMonitor_ModelMonitoringTarget_VertexModelSource { 394 if x, ok := x.GetSource().(*ModelMonitor_ModelMonitoringTarget_VertexModel); ok { 395 return x.VertexModel 396 } 397 return nil 398 } 399 400 type isModelMonitor_ModelMonitoringTarget_Source interface { 401 isModelMonitor_ModelMonitoringTarget_Source() 402 } 403 404 type ModelMonitor_ModelMonitoringTarget_VertexModel struct { 405 // Model in Vertex AI Model Registry. 406 VertexModel *ModelMonitor_ModelMonitoringTarget_VertexModelSource `protobuf:"bytes,1,opt,name=vertex_model,json=vertexModel,proto3,oneof"` 407 } 408 409 func (*ModelMonitor_ModelMonitoringTarget_VertexModel) isModelMonitor_ModelMonitoringTarget_Source() { 410 } 411 412 // Model in Vertex AI Model Registry. 413 type ModelMonitor_ModelMonitoringTarget_VertexModelSource struct { 414 state protoimpl.MessageState 415 sizeCache protoimpl.SizeCache 416 unknownFields protoimpl.UnknownFields 417 418 // Model resource name. Format: 419 // projects/{project}/locations/{location}/models/{model}. 420 Model string `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"` 421 // Model version id. 422 ModelVersionId string `protobuf:"bytes,2,opt,name=model_version_id,json=modelVersionId,proto3" json:"model_version_id,omitempty"` 423 } 424 425 func (x *ModelMonitor_ModelMonitoringTarget_VertexModelSource) Reset() { 426 *x = ModelMonitor_ModelMonitoringTarget_VertexModelSource{} 427 mi := &file_google_cloud_aiplatform_v1beta1_model_monitor_proto_msgTypes[3] 428 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 429 ms.StoreMessageInfo(mi) 430 } 431 432 func (x *ModelMonitor_ModelMonitoringTarget_VertexModelSource) String() string { 433 return protoimpl.X.MessageStringOf(x) 434 } 435 436 func (*ModelMonitor_ModelMonitoringTarget_VertexModelSource) ProtoMessage() {} 437 438 func (x *ModelMonitor_ModelMonitoringTarget_VertexModelSource) ProtoReflect() protoreflect.Message { 439 mi := &file_google_cloud_aiplatform_v1beta1_model_monitor_proto_msgTypes[3] 440 if x != nil { 441 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 442 if ms.LoadMessageInfo() == nil { 443 ms.StoreMessageInfo(mi) 444 } 445 return ms 446 } 447 return mi.MessageOf(x) 448 } 449 450 // Deprecated: Use ModelMonitor_ModelMonitoringTarget_VertexModelSource.ProtoReflect.Descriptor instead. 451 func (*ModelMonitor_ModelMonitoringTarget_VertexModelSource) Descriptor() ([]byte, []int) { 452 return file_google_cloud_aiplatform_v1beta1_model_monitor_proto_rawDescGZIP(), []int{0, 0, 0} 453 } 454 455 func (x *ModelMonitor_ModelMonitoringTarget_VertexModelSource) GetModel() string { 456 if x != nil { 457 return x.Model 458 } 459 return "" 460 } 461 462 func (x *ModelMonitor_ModelMonitoringTarget_VertexModelSource) GetModelVersionId() string { 463 if x != nil { 464 return x.ModelVersionId 465 } 466 return "" 467 } 468 469 // Schema field definition. 470 type ModelMonitoringSchema_FieldSchema struct { 471 state protoimpl.MessageState 472 sizeCache protoimpl.SizeCache 473 unknownFields protoimpl.UnknownFields 474 475 // Field name. 476 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 477 // Supported data types are: 478 // `float` 479 // `integer` 480 // `boolean` 481 // `string` 482 // `categorical` 483 DataType string `protobuf:"bytes,2,opt,name=data_type,json=dataType,proto3" json:"data_type,omitempty"` 484 // Describes if the schema field is an array of given data type. 485 Repeated bool `protobuf:"varint,3,opt,name=repeated,proto3" json:"repeated,omitempty"` 486 } 487 488 func (x *ModelMonitoringSchema_FieldSchema) Reset() { 489 *x = ModelMonitoringSchema_FieldSchema{} 490 mi := &file_google_cloud_aiplatform_v1beta1_model_monitor_proto_msgTypes[4] 491 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 492 ms.StoreMessageInfo(mi) 493 } 494 495 func (x *ModelMonitoringSchema_FieldSchema) String() string { 496 return protoimpl.X.MessageStringOf(x) 497 } 498 499 func (*ModelMonitoringSchema_FieldSchema) ProtoMessage() {} 500 501 func (x *ModelMonitoringSchema_FieldSchema) ProtoReflect() protoreflect.Message { 502 mi := &file_google_cloud_aiplatform_v1beta1_model_monitor_proto_msgTypes[4] 503 if x != nil { 504 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 505 if ms.LoadMessageInfo() == nil { 506 ms.StoreMessageInfo(mi) 507 } 508 return ms 509 } 510 return mi.MessageOf(x) 511 } 512 513 // Deprecated: Use ModelMonitoringSchema_FieldSchema.ProtoReflect.Descriptor instead. 514 func (*ModelMonitoringSchema_FieldSchema) Descriptor() ([]byte, []int) { 515 return file_google_cloud_aiplatform_v1beta1_model_monitor_proto_rawDescGZIP(), []int{1, 0} 516 } 517 518 func (x *ModelMonitoringSchema_FieldSchema) GetName() string { 519 if x != nil { 520 return x.Name 521 } 522 return "" 523 } 524 525 func (x *ModelMonitoringSchema_FieldSchema) GetDataType() string { 526 if x != nil { 527 return x.DataType 528 } 529 return "" 530 } 531 532 func (x *ModelMonitoringSchema_FieldSchema) GetRepeated() bool { 533 if x != nil { 534 return x.Repeated 535 } 536 return false 537 } 538 539 var File_google_cloud_aiplatform_v1beta1_model_monitor_proto protoreflect.FileDescriptor 540 541 var file_google_cloud_aiplatform_v1beta1_model_monitor_proto_rawDesc = []byte{ 542 0x0a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 543 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 544 0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x2e, 545 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 546 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 547 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 548 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 549 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 550 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 551 0x74, 0x6f, 0x1a, 0x35, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 552 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 553 0x74, 0x61, 0x31, 0x2f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 554 0x70, 0x65, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 555 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 556 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6c, 0x61, 557 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3b, 0x67, 0x6f, 558 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 559 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6d, 0x6f, 560 0x64, 0x65, 0x6c, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 561 0x70, 0x65, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 562 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 563 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x97, 0x0c, 0x0a, 0x0c, 0x4d, 564 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x7d, 0x0a, 0x11, 0x74, 565 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 566 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 567 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 568 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 569 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 570 0x65, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x4f, 0x62, 0x6a, 571 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x48, 0x00, 0x52, 0x10, 0x74, 0x61, 0x62, 0x75, 0x6c, 0x61, 572 0x72, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 573 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 574 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 575 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 576 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x7b, 0x0a, 0x17, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 577 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 578 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 579 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 580 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 581 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 582 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x15, 0x6d, 0x6f, 583 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x72, 584 0x67, 0x65, 0x74, 0x12, 0x60, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 585 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 586 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 587 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 588 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x49, 589 0x6e, 0x70, 0x75, 0x74, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x44, 0x61, 590 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x6d, 0x0a, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 591 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 592 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 593 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 594 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 595 0x6e, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 596 0x65, 0x63, 0x52, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 597 0x53, 0x70, 0x65, 0x63, 0x12, 0x5b, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x73, 598 0x70, 0x65, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 599 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 600 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 601 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x75, 0x74, 0x70, 0x75, 602 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x70, 0x65, 603 0x63, 0x12, 0x5b, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 604 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 605 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 606 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x78, 607 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0f, 0x65, 608 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6e, 609 0x0a, 0x17, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 610 0x6e, 0x67, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 611 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 612 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 613 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 614 0x67, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x15, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 615 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x58, 616 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 617 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 618 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 619 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 620 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 621 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 622 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 623 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 624 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 625 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 626 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 627 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 628 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 629 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 630 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x7a, 0x73, 0x18, 0x11, 0x20, 631 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 632 0x69, 0x65, 0x73, 0x50, 0x7a, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 633 0x69, 0x65, 0x73, 0x5f, 0x70, 0x7a, 0x69, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 634 0x41, 0x03, 0x52, 0x0c, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x50, 0x7a, 0x69, 635 0x1a, 0x98, 0x02, 0x0a, 0x15, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 636 0x72, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x7a, 0x0a, 0x0c, 0x76, 0x65, 637 0x72, 0x74, 0x65, 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 638 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 639 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 640 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x2e, 641 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x54, 642 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x4d, 0x6f, 0x64, 0x65, 643 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x76, 0x65, 0x72, 0x74, 0x65, 644 0x78, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x1a, 0x79, 0x0a, 0x11, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 645 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x6d, 646 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xfa, 0x41, 0x21, 0x0a, 647 0x1f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 648 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 649 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 650 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 651 0x09, 0x52, 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 652 0x64, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, 0x72, 0xea, 0x41, 0x6f, 653 0x0a, 0x26, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 654 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 655 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x45, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 656 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 657 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 658 0x7d, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x73, 0x2f, 659 0x7b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x7d, 0x42, 660 0x13, 0x0a, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 661 0x74, 0x69, 0x76, 0x65, 0x22, 0xc3, 0x03, 0x0a, 0x15, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 662 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x69, 663 0x0a, 0x0e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 664 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 665 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 666 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 667 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 668 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0d, 0x66, 0x65, 0x61, 0x74, 669 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x6f, 0x0a, 0x11, 0x70, 0x72, 0x65, 670 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x02, 671 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 672 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 673 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 674 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x46, 0x69, 0x65, 675 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x10, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 676 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x72, 0x0a, 0x13, 0x67, 0x72, 677 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, 0x72, 0x75, 0x74, 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 678 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 679 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 680 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 681 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 682 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x11, 0x67, 0x72, 0x6f, 683 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x74, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x5a, 684 0x0a, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x12, 0x0a, 685 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 686 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 687 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 688 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 689 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0xe8, 0x01, 0x0a, 0x23, 0x63, 690 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 691 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 692 0x61, 0x31, 0x42, 0x11, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 693 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 694 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 695 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 696 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 697 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 698 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 699 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 700 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 701 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 702 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 703 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 704 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 705 } 706 707 var ( 708 file_google_cloud_aiplatform_v1beta1_model_monitor_proto_rawDescOnce sync.Once 709 file_google_cloud_aiplatform_v1beta1_model_monitor_proto_rawDescData = file_google_cloud_aiplatform_v1beta1_model_monitor_proto_rawDesc 710 ) 711 712 func file_google_cloud_aiplatform_v1beta1_model_monitor_proto_rawDescGZIP() []byte { 713 file_google_cloud_aiplatform_v1beta1_model_monitor_proto_rawDescOnce.Do(func() { 714 file_google_cloud_aiplatform_v1beta1_model_monitor_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1beta1_model_monitor_proto_rawDescData) 715 }) 716 return file_google_cloud_aiplatform_v1beta1_model_monitor_proto_rawDescData 717 } 718 719 var file_google_cloud_aiplatform_v1beta1_model_monitor_proto_msgTypes = make([]protoimpl.MessageInfo, 5) 720 var file_google_cloud_aiplatform_v1beta1_model_monitor_proto_goTypes = []any{ 721 (*ModelMonitor)(nil), // 0: google.cloud.aiplatform.v1beta1.ModelMonitor 722 (*ModelMonitoringSchema)(nil), // 1: google.cloud.aiplatform.v1beta1.ModelMonitoringSchema 723 (*ModelMonitor_ModelMonitoringTarget)(nil), // 2: google.cloud.aiplatform.v1beta1.ModelMonitor.ModelMonitoringTarget 724 (*ModelMonitor_ModelMonitoringTarget_VertexModelSource)(nil), // 3: google.cloud.aiplatform.v1beta1.ModelMonitor.ModelMonitoringTarget.VertexModelSource 725 (*ModelMonitoringSchema_FieldSchema)(nil), // 4: google.cloud.aiplatform.v1beta1.ModelMonitoringSchema.FieldSchema 726 (*ModelMonitoringObjectiveSpec_TabularObjective)(nil), // 5: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.TabularObjective 727 (*ModelMonitoringInput)(nil), // 6: google.cloud.aiplatform.v1beta1.ModelMonitoringInput 728 (*ModelMonitoringNotificationSpec)(nil), // 7: google.cloud.aiplatform.v1beta1.ModelMonitoringNotificationSpec 729 (*ModelMonitoringOutputSpec)(nil), // 8: google.cloud.aiplatform.v1beta1.ModelMonitoringOutputSpec 730 (*ExplanationSpec)(nil), // 9: google.cloud.aiplatform.v1beta1.ExplanationSpec 731 (*EncryptionSpec)(nil), // 10: google.cloud.aiplatform.v1beta1.EncryptionSpec 732 (*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp 733 } 734 var file_google_cloud_aiplatform_v1beta1_model_monitor_proto_depIdxs = []int32{ 735 5, // 0: google.cloud.aiplatform.v1beta1.ModelMonitor.tabular_objective:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.TabularObjective 736 2, // 1: google.cloud.aiplatform.v1beta1.ModelMonitor.model_monitoring_target:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitor.ModelMonitoringTarget 737 6, // 2: google.cloud.aiplatform.v1beta1.ModelMonitor.training_dataset:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringInput 738 7, // 3: google.cloud.aiplatform.v1beta1.ModelMonitor.notification_spec:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringNotificationSpec 739 8, // 4: google.cloud.aiplatform.v1beta1.ModelMonitor.output_spec:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringOutputSpec 740 9, // 5: google.cloud.aiplatform.v1beta1.ModelMonitor.explanation_spec:type_name -> google.cloud.aiplatform.v1beta1.ExplanationSpec 741 1, // 6: google.cloud.aiplatform.v1beta1.ModelMonitor.model_monitoring_schema:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringSchema 742 10, // 7: google.cloud.aiplatform.v1beta1.ModelMonitor.encryption_spec:type_name -> google.cloud.aiplatform.v1beta1.EncryptionSpec 743 11, // 8: google.cloud.aiplatform.v1beta1.ModelMonitor.create_time:type_name -> google.protobuf.Timestamp 744 11, // 9: google.cloud.aiplatform.v1beta1.ModelMonitor.update_time:type_name -> google.protobuf.Timestamp 745 4, // 10: google.cloud.aiplatform.v1beta1.ModelMonitoringSchema.feature_fields:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringSchema.FieldSchema 746 4, // 11: google.cloud.aiplatform.v1beta1.ModelMonitoringSchema.prediction_fields:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringSchema.FieldSchema 747 4, // 12: google.cloud.aiplatform.v1beta1.ModelMonitoringSchema.ground_truth_fields:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringSchema.FieldSchema 748 3, // 13: google.cloud.aiplatform.v1beta1.ModelMonitor.ModelMonitoringTarget.vertex_model:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitor.ModelMonitoringTarget.VertexModelSource 749 14, // [14:14] is the sub-list for method output_type 750 14, // [14:14] is the sub-list for method input_type 751 14, // [14:14] is the sub-list for extension type_name 752 14, // [14:14] is the sub-list for extension extendee 753 0, // [0:14] is the sub-list for field type_name 754 } 755 756 func init() { file_google_cloud_aiplatform_v1beta1_model_monitor_proto_init() } 757 func file_google_cloud_aiplatform_v1beta1_model_monitor_proto_init() { 758 if File_google_cloud_aiplatform_v1beta1_model_monitor_proto != nil { 759 return 760 } 761 file_google_cloud_aiplatform_v1beta1_encryption_spec_proto_init() 762 file_google_cloud_aiplatform_v1beta1_explanation_proto_init() 763 file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_init() 764 file_google_cloud_aiplatform_v1beta1_model_monitor_proto_msgTypes[0].OneofWrappers = []any{ 765 (*ModelMonitor_TabularObjective)(nil), 766 } 767 file_google_cloud_aiplatform_v1beta1_model_monitor_proto_msgTypes[2].OneofWrappers = []any{ 768 (*ModelMonitor_ModelMonitoringTarget_VertexModel)(nil), 769 } 770 type x struct{} 771 out := protoimpl.TypeBuilder{ 772 File: protoimpl.DescBuilder{ 773 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 774 RawDescriptor: file_google_cloud_aiplatform_v1beta1_model_monitor_proto_rawDesc, 775 NumEnums: 0, 776 NumMessages: 5, 777 NumExtensions: 0, 778 NumServices: 0, 779 }, 780 GoTypes: file_google_cloud_aiplatform_v1beta1_model_monitor_proto_goTypes, 781 DependencyIndexes: file_google_cloud_aiplatform_v1beta1_model_monitor_proto_depIdxs, 782 MessageInfos: file_google_cloud_aiplatform_v1beta1_model_monitor_proto_msgTypes, 783 }.Build() 784 File_google_cloud_aiplatform_v1beta1_model_monitor_proto = out.File 785 file_google_cloud_aiplatform_v1beta1_model_monitor_proto_rawDesc = nil 786 file_google_cloud_aiplatform_v1beta1_model_monitor_proto_goTypes = nil 787 file_google_cloud_aiplatform_v1beta1_model_monitor_proto_depIdxs = nil 788 }