cloud.google.com/go/aiplatform@v1.106.0/apiv1beta1/aiplatformpb/model_monitoring_spec.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_monitoring_spec.proto 20 21 package aiplatformpb 22 23 import ( 24 _ "google.golang.org/genproto/googleapis/api/annotations" 25 interval "google.golang.org/genproto/googleapis/type/interval" 26 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 27 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 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 // Supported data format. 40 type ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat int32 41 42 const ( 43 // Data format unspecified, used when this field is unset. 44 ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DATA_FORMAT_UNSPECIFIED ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat = 0 45 // CSV files. 46 ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_CSV ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat = 1 47 // TfRecord files 48 ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_TF_RECORD ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat = 2 49 // JsonL files. 50 ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_JSONL ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat = 3 51 ) 52 53 // Enum value maps for ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat. 54 var ( 55 ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat_name = map[int32]string{ 56 0: "DATA_FORMAT_UNSPECIFIED", 57 1: "CSV", 58 2: "TF_RECORD", 59 3: "JSONL", 60 } 61 ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat_value = map[string]int32{ 62 "DATA_FORMAT_UNSPECIFIED": 0, 63 "CSV": 1, 64 "TF_RECORD": 2, 65 "JSONL": 3, 66 } 67 ) 68 69 func (x ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat) Enum() *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat { 70 p := new(ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat) 71 *p = x 72 return p 73 } 74 75 func (x ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat) String() string { 76 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 77 } 78 79 func (ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat) Descriptor() protoreflect.EnumDescriptor { 80 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_enumTypes[0].Descriptor() 81 } 82 83 func (ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat) Type() protoreflect.EnumType { 84 return &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_enumTypes[0] 85 } 86 87 func (x ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat) Number() protoreflect.EnumNumber { 88 return protoreflect.EnumNumber(x) 89 } 90 91 // Deprecated: Use ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat.Descriptor instead. 92 func (ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat) EnumDescriptor() ([]byte, []int) { 93 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{3, 0, 0, 0} 94 } 95 96 // Monitoring monitoring job spec. It outlines the specifications for monitoring 97 // objectives, notifications, and result exports. 98 type ModelMonitoringSpec struct { 99 state protoimpl.MessageState 100 sizeCache protoimpl.SizeCache 101 unknownFields protoimpl.UnknownFields 102 103 // The monitoring objective spec. 104 ObjectiveSpec *ModelMonitoringObjectiveSpec `protobuf:"bytes,1,opt,name=objective_spec,json=objectiveSpec,proto3" json:"objective_spec,omitempty"` 105 // The model monitoring notification spec. 106 NotificationSpec *ModelMonitoringNotificationSpec `protobuf:"bytes,2,opt,name=notification_spec,json=notificationSpec,proto3" json:"notification_spec,omitempty"` 107 // The Output destination spec for metrics, error logs, etc. 108 OutputSpec *ModelMonitoringOutputSpec `protobuf:"bytes,3,opt,name=output_spec,json=outputSpec,proto3" json:"output_spec,omitempty"` 109 } 110 111 func (x *ModelMonitoringSpec) Reset() { 112 *x = ModelMonitoringSpec{} 113 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[0] 114 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 115 ms.StoreMessageInfo(mi) 116 } 117 118 func (x *ModelMonitoringSpec) String() string { 119 return protoimpl.X.MessageStringOf(x) 120 } 121 122 func (*ModelMonitoringSpec) ProtoMessage() {} 123 124 func (x *ModelMonitoringSpec) ProtoReflect() protoreflect.Message { 125 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[0] 126 if x != nil { 127 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 128 if ms.LoadMessageInfo() == nil { 129 ms.StoreMessageInfo(mi) 130 } 131 return ms 132 } 133 return mi.MessageOf(x) 134 } 135 136 // Deprecated: Use ModelMonitoringSpec.ProtoReflect.Descriptor instead. 137 func (*ModelMonitoringSpec) Descriptor() ([]byte, []int) { 138 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{0} 139 } 140 141 func (x *ModelMonitoringSpec) GetObjectiveSpec() *ModelMonitoringObjectiveSpec { 142 if x != nil { 143 return x.ObjectiveSpec 144 } 145 return nil 146 } 147 148 func (x *ModelMonitoringSpec) GetNotificationSpec() *ModelMonitoringNotificationSpec { 149 if x != nil { 150 return x.NotificationSpec 151 } 152 return nil 153 } 154 155 func (x *ModelMonitoringSpec) GetOutputSpec() *ModelMonitoringOutputSpec { 156 if x != nil { 157 return x.OutputSpec 158 } 159 return nil 160 } 161 162 // Monitoring objectives spec. 163 type ModelMonitoringObjectiveSpec struct { 164 state protoimpl.MessageState 165 sizeCache protoimpl.SizeCache 166 unknownFields protoimpl.UnknownFields 167 168 // The monitoring objective. 169 // 170 // Types that are assignable to Objective: 171 // 172 // *ModelMonitoringObjectiveSpec_TabularObjective_ 173 Objective isModelMonitoringObjectiveSpec_Objective `protobuf_oneof:"objective"` 174 // The explanation spec. 175 // This spec is required when the objectives spec includes feature attribution 176 // objectives. 177 ExplanationSpec *ExplanationSpec `protobuf:"bytes,3,opt,name=explanation_spec,json=explanationSpec,proto3" json:"explanation_spec,omitempty"` 178 // Baseline dataset. 179 // It could be the training dataset or production serving dataset from a 180 // previous period. 181 BaselineDataset *ModelMonitoringInput `protobuf:"bytes,4,opt,name=baseline_dataset,json=baselineDataset,proto3" json:"baseline_dataset,omitempty"` 182 // Target dataset. 183 TargetDataset *ModelMonitoringInput `protobuf:"bytes,5,opt,name=target_dataset,json=targetDataset,proto3" json:"target_dataset,omitempty"` 184 } 185 186 func (x *ModelMonitoringObjectiveSpec) Reset() { 187 *x = ModelMonitoringObjectiveSpec{} 188 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[1] 189 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 190 ms.StoreMessageInfo(mi) 191 } 192 193 func (x *ModelMonitoringObjectiveSpec) String() string { 194 return protoimpl.X.MessageStringOf(x) 195 } 196 197 func (*ModelMonitoringObjectiveSpec) ProtoMessage() {} 198 199 func (x *ModelMonitoringObjectiveSpec) ProtoReflect() protoreflect.Message { 200 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[1] 201 if x != nil { 202 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 203 if ms.LoadMessageInfo() == nil { 204 ms.StoreMessageInfo(mi) 205 } 206 return ms 207 } 208 return mi.MessageOf(x) 209 } 210 211 // Deprecated: Use ModelMonitoringObjectiveSpec.ProtoReflect.Descriptor instead. 212 func (*ModelMonitoringObjectiveSpec) Descriptor() ([]byte, []int) { 213 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{1} 214 } 215 216 func (m *ModelMonitoringObjectiveSpec) GetObjective() isModelMonitoringObjectiveSpec_Objective { 217 if m != nil { 218 return m.Objective 219 } 220 return nil 221 } 222 223 func (x *ModelMonitoringObjectiveSpec) GetTabularObjective() *ModelMonitoringObjectiveSpec_TabularObjective { 224 if x, ok := x.GetObjective().(*ModelMonitoringObjectiveSpec_TabularObjective_); ok { 225 return x.TabularObjective 226 } 227 return nil 228 } 229 230 func (x *ModelMonitoringObjectiveSpec) GetExplanationSpec() *ExplanationSpec { 231 if x != nil { 232 return x.ExplanationSpec 233 } 234 return nil 235 } 236 237 func (x *ModelMonitoringObjectiveSpec) GetBaselineDataset() *ModelMonitoringInput { 238 if x != nil { 239 return x.BaselineDataset 240 } 241 return nil 242 } 243 244 func (x *ModelMonitoringObjectiveSpec) GetTargetDataset() *ModelMonitoringInput { 245 if x != nil { 246 return x.TargetDataset 247 } 248 return nil 249 } 250 251 type isModelMonitoringObjectiveSpec_Objective interface { 252 isModelMonitoringObjectiveSpec_Objective() 253 } 254 255 type ModelMonitoringObjectiveSpec_TabularObjective_ struct { 256 // Tabular monitoring objective. 257 TabularObjective *ModelMonitoringObjectiveSpec_TabularObjective `protobuf:"bytes,1,opt,name=tabular_objective,json=tabularObjective,proto3,oneof"` 258 } 259 260 func (*ModelMonitoringObjectiveSpec_TabularObjective_) isModelMonitoringObjectiveSpec_Objective() {} 261 262 // Specification for the export destination of monitoring results, including 263 // metrics, logs, etc. 264 type ModelMonitoringOutputSpec struct { 265 state protoimpl.MessageState 266 sizeCache protoimpl.SizeCache 267 unknownFields protoimpl.UnknownFields 268 269 // Google Cloud Storage base folder path for metrics, error logs, etc. 270 GcsBaseDirectory *GcsDestination `protobuf:"bytes,1,opt,name=gcs_base_directory,json=gcsBaseDirectory,proto3" json:"gcs_base_directory,omitempty"` 271 } 272 273 func (x *ModelMonitoringOutputSpec) Reset() { 274 *x = ModelMonitoringOutputSpec{} 275 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[2] 276 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 277 ms.StoreMessageInfo(mi) 278 } 279 280 func (x *ModelMonitoringOutputSpec) String() string { 281 return protoimpl.X.MessageStringOf(x) 282 } 283 284 func (*ModelMonitoringOutputSpec) ProtoMessage() {} 285 286 func (x *ModelMonitoringOutputSpec) ProtoReflect() protoreflect.Message { 287 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[2] 288 if x != nil { 289 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 290 if ms.LoadMessageInfo() == nil { 291 ms.StoreMessageInfo(mi) 292 } 293 return ms 294 } 295 return mi.MessageOf(x) 296 } 297 298 // Deprecated: Use ModelMonitoringOutputSpec.ProtoReflect.Descriptor instead. 299 func (*ModelMonitoringOutputSpec) Descriptor() ([]byte, []int) { 300 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{2} 301 } 302 303 func (x *ModelMonitoringOutputSpec) GetGcsBaseDirectory() *GcsDestination { 304 if x != nil { 305 return x.GcsBaseDirectory 306 } 307 return nil 308 } 309 310 // Model monitoring data input spec. 311 type ModelMonitoringInput struct { 312 state protoimpl.MessageState 313 sizeCache protoimpl.SizeCache 314 unknownFields protoimpl.UnknownFields 315 316 // Dataset source. 317 // 318 // Types that are assignable to Dataset: 319 // 320 // *ModelMonitoringInput_ColumnizedDataset 321 // *ModelMonitoringInput_BatchPredictionOutput_ 322 // *ModelMonitoringInput_VertexEndpointLogs_ 323 Dataset isModelMonitoringInput_Dataset `protobuf_oneof:"dataset"` 324 // Time specification for the dataset. 325 // 326 // Types that are assignable to TimeSpec: 327 // 328 // *ModelMonitoringInput_TimeInterval 329 // *ModelMonitoringInput_TimeOffset_ 330 TimeSpec isModelMonitoringInput_TimeSpec `protobuf_oneof:"time_spec"` 331 } 332 333 func (x *ModelMonitoringInput) Reset() { 334 *x = ModelMonitoringInput{} 335 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[3] 336 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 337 ms.StoreMessageInfo(mi) 338 } 339 340 func (x *ModelMonitoringInput) String() string { 341 return protoimpl.X.MessageStringOf(x) 342 } 343 344 func (*ModelMonitoringInput) ProtoMessage() {} 345 346 func (x *ModelMonitoringInput) ProtoReflect() protoreflect.Message { 347 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[3] 348 if x != nil { 349 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 350 if ms.LoadMessageInfo() == nil { 351 ms.StoreMessageInfo(mi) 352 } 353 return ms 354 } 355 return mi.MessageOf(x) 356 } 357 358 // Deprecated: Use ModelMonitoringInput.ProtoReflect.Descriptor instead. 359 func (*ModelMonitoringInput) Descriptor() ([]byte, []int) { 360 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{3} 361 } 362 363 func (m *ModelMonitoringInput) GetDataset() isModelMonitoringInput_Dataset { 364 if m != nil { 365 return m.Dataset 366 } 367 return nil 368 } 369 370 func (x *ModelMonitoringInput) GetColumnizedDataset() *ModelMonitoringInput_ModelMonitoringDataset { 371 if x, ok := x.GetDataset().(*ModelMonitoringInput_ColumnizedDataset); ok { 372 return x.ColumnizedDataset 373 } 374 return nil 375 } 376 377 func (x *ModelMonitoringInput) GetBatchPredictionOutput() *ModelMonitoringInput_BatchPredictionOutput { 378 if x, ok := x.GetDataset().(*ModelMonitoringInput_BatchPredictionOutput_); ok { 379 return x.BatchPredictionOutput 380 } 381 return nil 382 } 383 384 func (x *ModelMonitoringInput) GetVertexEndpointLogs() *ModelMonitoringInput_VertexEndpointLogs { 385 if x, ok := x.GetDataset().(*ModelMonitoringInput_VertexEndpointLogs_); ok { 386 return x.VertexEndpointLogs 387 } 388 return nil 389 } 390 391 func (m *ModelMonitoringInput) GetTimeSpec() isModelMonitoringInput_TimeSpec { 392 if m != nil { 393 return m.TimeSpec 394 } 395 return nil 396 } 397 398 func (x *ModelMonitoringInput) GetTimeInterval() *interval.Interval { 399 if x, ok := x.GetTimeSpec().(*ModelMonitoringInput_TimeInterval); ok { 400 return x.TimeInterval 401 } 402 return nil 403 } 404 405 func (x *ModelMonitoringInput) GetTimeOffset() *ModelMonitoringInput_TimeOffset { 406 if x, ok := x.GetTimeSpec().(*ModelMonitoringInput_TimeOffset_); ok { 407 return x.TimeOffset 408 } 409 return nil 410 } 411 412 type isModelMonitoringInput_Dataset interface { 413 isModelMonitoringInput_Dataset() 414 } 415 416 type ModelMonitoringInput_ColumnizedDataset struct { 417 // Columnized dataset. 418 ColumnizedDataset *ModelMonitoringInput_ModelMonitoringDataset `protobuf:"bytes,1,opt,name=columnized_dataset,json=columnizedDataset,proto3,oneof"` 419 } 420 421 type ModelMonitoringInput_BatchPredictionOutput_ struct { 422 // Vertex AI Batch prediction Job. 423 BatchPredictionOutput *ModelMonitoringInput_BatchPredictionOutput `protobuf:"bytes,2,opt,name=batch_prediction_output,json=batchPredictionOutput,proto3,oneof"` 424 } 425 426 type ModelMonitoringInput_VertexEndpointLogs_ struct { 427 // Vertex AI Endpoint request & response logging. 428 VertexEndpointLogs *ModelMonitoringInput_VertexEndpointLogs `protobuf:"bytes,3,opt,name=vertex_endpoint_logs,json=vertexEndpointLogs,proto3,oneof"` 429 } 430 431 func (*ModelMonitoringInput_ColumnizedDataset) isModelMonitoringInput_Dataset() {} 432 433 func (*ModelMonitoringInput_BatchPredictionOutput_) isModelMonitoringInput_Dataset() {} 434 435 func (*ModelMonitoringInput_VertexEndpointLogs_) isModelMonitoringInput_Dataset() {} 436 437 type isModelMonitoringInput_TimeSpec interface { 438 isModelMonitoringInput_TimeSpec() 439 } 440 441 type ModelMonitoringInput_TimeInterval struct { 442 // The time interval (pair of start_time and end_time) for which results 443 // should be returned. 444 TimeInterval *interval.Interval `protobuf:"bytes,6,opt,name=time_interval,json=timeInterval,proto3,oneof"` 445 } 446 447 type ModelMonitoringInput_TimeOffset_ struct { 448 // The time offset setting for which results should be returned. 449 TimeOffset *ModelMonitoringInput_TimeOffset `protobuf:"bytes,7,opt,name=time_offset,json=timeOffset,proto3,oneof"` 450 } 451 452 func (*ModelMonitoringInput_TimeInterval) isModelMonitoringInput_TimeSpec() {} 453 454 func (*ModelMonitoringInput_TimeOffset_) isModelMonitoringInput_TimeSpec() {} 455 456 // Notification spec(email, notification channel) for model monitoring 457 // statistics/alerts. 458 type ModelMonitoringNotificationSpec struct { 459 state protoimpl.MessageState 460 sizeCache protoimpl.SizeCache 461 unknownFields protoimpl.UnknownFields 462 463 // Email alert config. 464 EmailConfig *ModelMonitoringNotificationSpec_EmailConfig `protobuf:"bytes,1,opt,name=email_config,json=emailConfig,proto3" json:"email_config,omitempty"` 465 // Dump the anomalies to Cloud Logging. The anomalies will be put to json 466 // payload encoded from proto 467 // [google.cloud.aiplatform.logging.ModelMonitoringAnomaliesLogEntry][]. 468 // This can be further sinked to Pub/Sub or any other services supported 469 // by Cloud Logging. 470 EnableCloudLogging bool `protobuf:"varint,2,opt,name=enable_cloud_logging,json=enableCloudLogging,proto3" json:"enable_cloud_logging,omitempty"` 471 // Notification channel config. 472 NotificationChannelConfigs []*ModelMonitoringNotificationSpec_NotificationChannelConfig `protobuf:"bytes,3,rep,name=notification_channel_configs,json=notificationChannelConfigs,proto3" json:"notification_channel_configs,omitempty"` 473 } 474 475 func (x *ModelMonitoringNotificationSpec) Reset() { 476 *x = ModelMonitoringNotificationSpec{} 477 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[4] 478 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 479 ms.StoreMessageInfo(mi) 480 } 481 482 func (x *ModelMonitoringNotificationSpec) String() string { 483 return protoimpl.X.MessageStringOf(x) 484 } 485 486 func (*ModelMonitoringNotificationSpec) ProtoMessage() {} 487 488 func (x *ModelMonitoringNotificationSpec) ProtoReflect() protoreflect.Message { 489 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[4] 490 if x != nil { 491 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 492 if ms.LoadMessageInfo() == nil { 493 ms.StoreMessageInfo(mi) 494 } 495 return ms 496 } 497 return mi.MessageOf(x) 498 } 499 500 // Deprecated: Use ModelMonitoringNotificationSpec.ProtoReflect.Descriptor instead. 501 func (*ModelMonitoringNotificationSpec) Descriptor() ([]byte, []int) { 502 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{4} 503 } 504 505 func (x *ModelMonitoringNotificationSpec) GetEmailConfig() *ModelMonitoringNotificationSpec_EmailConfig { 506 if x != nil { 507 return x.EmailConfig 508 } 509 return nil 510 } 511 512 func (x *ModelMonitoringNotificationSpec) GetEnableCloudLogging() bool { 513 if x != nil { 514 return x.EnableCloudLogging 515 } 516 return false 517 } 518 519 func (x *ModelMonitoringNotificationSpec) GetNotificationChannelConfigs() []*ModelMonitoringNotificationSpec_NotificationChannelConfig { 520 if x != nil { 521 return x.NotificationChannelConfigs 522 } 523 return nil 524 } 525 526 // Data drift monitoring spec. 527 // Data drift measures the distribution distance between the current dataset 528 // and a baseline dataset. A typical use case is to detect data drift between 529 // the recent production serving dataset and the training dataset, or to 530 // compare the recent production dataset with a dataset from a previous 531 // period. 532 type ModelMonitoringObjectiveSpec_DataDriftSpec struct { 533 state protoimpl.MessageState 534 sizeCache protoimpl.SizeCache 535 unknownFields protoimpl.UnknownFields 536 537 // Feature names / Prediction output names interested in monitoring. 538 // These should be a subset of the input feature names or prediction output 539 // names specified in the monitoring schema. 540 // If the field is not specified all features / prediction outputs outlied 541 // in the monitoring schema will be used. 542 Features []string `protobuf:"bytes,1,rep,name=features,proto3" json:"features,omitempty"` 543 // Supported metrics type: 544 // - l_infinity 545 // - jensen_shannon_divergence 546 CategoricalMetricType string `protobuf:"bytes,2,opt,name=categorical_metric_type,json=categoricalMetricType,proto3" json:"categorical_metric_type,omitempty"` 547 // Supported metrics type: 548 // - jensen_shannon_divergence 549 NumericMetricType string `protobuf:"bytes,3,opt,name=numeric_metric_type,json=numericMetricType,proto3" json:"numeric_metric_type,omitempty"` 550 // Default alert condition for all the categorical features. 551 DefaultCategoricalAlertCondition *ModelMonitoringAlertCondition `protobuf:"bytes,4,opt,name=default_categorical_alert_condition,json=defaultCategoricalAlertCondition,proto3" json:"default_categorical_alert_condition,omitempty"` 552 // Default alert condition for all the numeric features. 553 DefaultNumericAlertCondition *ModelMonitoringAlertCondition `protobuf:"bytes,5,opt,name=default_numeric_alert_condition,json=defaultNumericAlertCondition,proto3" json:"default_numeric_alert_condition,omitempty"` 554 // Per feature alert condition will override default alert condition. 555 FeatureAlertConditions map[string]*ModelMonitoringAlertCondition `protobuf:"bytes,6,rep,name=feature_alert_conditions,json=featureAlertConditions,proto3" json:"feature_alert_conditions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 556 } 557 558 func (x *ModelMonitoringObjectiveSpec_DataDriftSpec) Reset() { 559 *x = ModelMonitoringObjectiveSpec_DataDriftSpec{} 560 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[5] 561 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 562 ms.StoreMessageInfo(mi) 563 } 564 565 func (x *ModelMonitoringObjectiveSpec_DataDriftSpec) String() string { 566 return protoimpl.X.MessageStringOf(x) 567 } 568 569 func (*ModelMonitoringObjectiveSpec_DataDriftSpec) ProtoMessage() {} 570 571 func (x *ModelMonitoringObjectiveSpec_DataDriftSpec) ProtoReflect() protoreflect.Message { 572 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[5] 573 if x != nil { 574 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 575 if ms.LoadMessageInfo() == nil { 576 ms.StoreMessageInfo(mi) 577 } 578 return ms 579 } 580 return mi.MessageOf(x) 581 } 582 583 // Deprecated: Use ModelMonitoringObjectiveSpec_DataDriftSpec.ProtoReflect.Descriptor instead. 584 func (*ModelMonitoringObjectiveSpec_DataDriftSpec) Descriptor() ([]byte, []int) { 585 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{1, 0} 586 } 587 588 func (x *ModelMonitoringObjectiveSpec_DataDriftSpec) GetFeatures() []string { 589 if x != nil { 590 return x.Features 591 } 592 return nil 593 } 594 595 func (x *ModelMonitoringObjectiveSpec_DataDriftSpec) GetCategoricalMetricType() string { 596 if x != nil { 597 return x.CategoricalMetricType 598 } 599 return "" 600 } 601 602 func (x *ModelMonitoringObjectiveSpec_DataDriftSpec) GetNumericMetricType() string { 603 if x != nil { 604 return x.NumericMetricType 605 } 606 return "" 607 } 608 609 func (x *ModelMonitoringObjectiveSpec_DataDriftSpec) GetDefaultCategoricalAlertCondition() *ModelMonitoringAlertCondition { 610 if x != nil { 611 return x.DefaultCategoricalAlertCondition 612 } 613 return nil 614 } 615 616 func (x *ModelMonitoringObjectiveSpec_DataDriftSpec) GetDefaultNumericAlertCondition() *ModelMonitoringAlertCondition { 617 if x != nil { 618 return x.DefaultNumericAlertCondition 619 } 620 return nil 621 } 622 623 func (x *ModelMonitoringObjectiveSpec_DataDriftSpec) GetFeatureAlertConditions() map[string]*ModelMonitoringAlertCondition { 624 if x != nil { 625 return x.FeatureAlertConditions 626 } 627 return nil 628 } 629 630 // Feature attribution monitoring spec. 631 type ModelMonitoringObjectiveSpec_FeatureAttributionSpec struct { 632 state protoimpl.MessageState 633 sizeCache protoimpl.SizeCache 634 unknownFields protoimpl.UnknownFields 635 636 // Feature names interested in monitoring. 637 // These should be a subset of the input feature names specified in the 638 // monitoring schema. If the field is not specified all features outlied in 639 // the monitoring schema will be used. 640 Features []string `protobuf:"bytes,1,rep,name=features,proto3" json:"features,omitempty"` 641 // Default alert condition for all the features. 642 DefaultAlertCondition *ModelMonitoringAlertCondition `protobuf:"bytes,2,opt,name=default_alert_condition,json=defaultAlertCondition,proto3" json:"default_alert_condition,omitempty"` 643 // Per feature alert condition will override default alert condition. 644 FeatureAlertConditions map[string]*ModelMonitoringAlertCondition `protobuf:"bytes,3,rep,name=feature_alert_conditions,json=featureAlertConditions,proto3" json:"feature_alert_conditions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 645 // The config of resources used by the Model Monitoring during the batch 646 // explanation for non-AutoML models. If not set, `n1-standard-2` machine 647 // type will be used by default. 648 BatchExplanationDedicatedResources *BatchDedicatedResources `protobuf:"bytes,4,opt,name=batch_explanation_dedicated_resources,json=batchExplanationDedicatedResources,proto3" json:"batch_explanation_dedicated_resources,omitempty"` 649 } 650 651 func (x *ModelMonitoringObjectiveSpec_FeatureAttributionSpec) Reset() { 652 *x = ModelMonitoringObjectiveSpec_FeatureAttributionSpec{} 653 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[6] 654 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 655 ms.StoreMessageInfo(mi) 656 } 657 658 func (x *ModelMonitoringObjectiveSpec_FeatureAttributionSpec) String() string { 659 return protoimpl.X.MessageStringOf(x) 660 } 661 662 func (*ModelMonitoringObjectiveSpec_FeatureAttributionSpec) ProtoMessage() {} 663 664 func (x *ModelMonitoringObjectiveSpec_FeatureAttributionSpec) ProtoReflect() protoreflect.Message { 665 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[6] 666 if x != nil { 667 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 668 if ms.LoadMessageInfo() == nil { 669 ms.StoreMessageInfo(mi) 670 } 671 return ms 672 } 673 return mi.MessageOf(x) 674 } 675 676 // Deprecated: Use ModelMonitoringObjectiveSpec_FeatureAttributionSpec.ProtoReflect.Descriptor instead. 677 func (*ModelMonitoringObjectiveSpec_FeatureAttributionSpec) Descriptor() ([]byte, []int) { 678 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{1, 1} 679 } 680 681 func (x *ModelMonitoringObjectiveSpec_FeatureAttributionSpec) GetFeatures() []string { 682 if x != nil { 683 return x.Features 684 } 685 return nil 686 } 687 688 func (x *ModelMonitoringObjectiveSpec_FeatureAttributionSpec) GetDefaultAlertCondition() *ModelMonitoringAlertCondition { 689 if x != nil { 690 return x.DefaultAlertCondition 691 } 692 return nil 693 } 694 695 func (x *ModelMonitoringObjectiveSpec_FeatureAttributionSpec) GetFeatureAlertConditions() map[string]*ModelMonitoringAlertCondition { 696 if x != nil { 697 return x.FeatureAlertConditions 698 } 699 return nil 700 } 701 702 func (x *ModelMonitoringObjectiveSpec_FeatureAttributionSpec) GetBatchExplanationDedicatedResources() *BatchDedicatedResources { 703 if x != nil { 704 return x.BatchExplanationDedicatedResources 705 } 706 return nil 707 } 708 709 // Tabular monitoring objective. 710 type ModelMonitoringObjectiveSpec_TabularObjective struct { 711 state protoimpl.MessageState 712 sizeCache protoimpl.SizeCache 713 unknownFields protoimpl.UnknownFields 714 715 // Input feature distribution drift monitoring spec. 716 FeatureDriftSpec *ModelMonitoringObjectiveSpec_DataDriftSpec `protobuf:"bytes,10,opt,name=feature_drift_spec,json=featureDriftSpec,proto3" json:"feature_drift_spec,omitempty"` 717 // Prediction output distribution drift monitoring spec. 718 PredictionOutputDriftSpec *ModelMonitoringObjectiveSpec_DataDriftSpec `protobuf:"bytes,11,opt,name=prediction_output_drift_spec,json=predictionOutputDriftSpec,proto3" json:"prediction_output_drift_spec,omitempty"` 719 // Feature attribution monitoring spec. 720 FeatureAttributionSpec *ModelMonitoringObjectiveSpec_FeatureAttributionSpec `protobuf:"bytes,12,opt,name=feature_attribution_spec,json=featureAttributionSpec,proto3" json:"feature_attribution_spec,omitempty"` 721 } 722 723 func (x *ModelMonitoringObjectiveSpec_TabularObjective) Reset() { 724 *x = ModelMonitoringObjectiveSpec_TabularObjective{} 725 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[7] 726 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 727 ms.StoreMessageInfo(mi) 728 } 729 730 func (x *ModelMonitoringObjectiveSpec_TabularObjective) String() string { 731 return protoimpl.X.MessageStringOf(x) 732 } 733 734 func (*ModelMonitoringObjectiveSpec_TabularObjective) ProtoMessage() {} 735 736 func (x *ModelMonitoringObjectiveSpec_TabularObjective) ProtoReflect() protoreflect.Message { 737 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[7] 738 if x != nil { 739 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 740 if ms.LoadMessageInfo() == nil { 741 ms.StoreMessageInfo(mi) 742 } 743 return ms 744 } 745 return mi.MessageOf(x) 746 } 747 748 // Deprecated: Use ModelMonitoringObjectiveSpec_TabularObjective.ProtoReflect.Descriptor instead. 749 func (*ModelMonitoringObjectiveSpec_TabularObjective) Descriptor() ([]byte, []int) { 750 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{1, 2} 751 } 752 753 func (x *ModelMonitoringObjectiveSpec_TabularObjective) GetFeatureDriftSpec() *ModelMonitoringObjectiveSpec_DataDriftSpec { 754 if x != nil { 755 return x.FeatureDriftSpec 756 } 757 return nil 758 } 759 760 func (x *ModelMonitoringObjectiveSpec_TabularObjective) GetPredictionOutputDriftSpec() *ModelMonitoringObjectiveSpec_DataDriftSpec { 761 if x != nil { 762 return x.PredictionOutputDriftSpec 763 } 764 return nil 765 } 766 767 func (x *ModelMonitoringObjectiveSpec_TabularObjective) GetFeatureAttributionSpec() *ModelMonitoringObjectiveSpec_FeatureAttributionSpec { 768 if x != nil { 769 return x.FeatureAttributionSpec 770 } 771 return nil 772 } 773 774 // Input dataset spec. 775 type ModelMonitoringInput_ModelMonitoringDataset struct { 776 state protoimpl.MessageState 777 sizeCache protoimpl.SizeCache 778 unknownFields protoimpl.UnknownFields 779 780 // Choose one of supported data location for columnized dataset. 781 // 782 // Types that are assignable to DataLocation: 783 // 784 // *ModelMonitoringInput_ModelMonitoringDataset_VertexDataset 785 // *ModelMonitoringInput_ModelMonitoringDataset_GcsSource 786 // *ModelMonitoringInput_ModelMonitoringDataset_BigquerySource 787 DataLocation isModelMonitoringInput_ModelMonitoringDataset_DataLocation `protobuf_oneof:"data_location"` 788 // The timestamp field. Usually for serving data. 789 TimestampField string `protobuf:"bytes,7,opt,name=timestamp_field,json=timestampField,proto3" json:"timestamp_field,omitempty"` 790 } 791 792 func (x *ModelMonitoringInput_ModelMonitoringDataset) Reset() { 793 *x = ModelMonitoringInput_ModelMonitoringDataset{} 794 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[10] 795 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 796 ms.StoreMessageInfo(mi) 797 } 798 799 func (x *ModelMonitoringInput_ModelMonitoringDataset) String() string { 800 return protoimpl.X.MessageStringOf(x) 801 } 802 803 func (*ModelMonitoringInput_ModelMonitoringDataset) ProtoMessage() {} 804 805 func (x *ModelMonitoringInput_ModelMonitoringDataset) ProtoReflect() protoreflect.Message { 806 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[10] 807 if x != nil { 808 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 809 if ms.LoadMessageInfo() == nil { 810 ms.StoreMessageInfo(mi) 811 } 812 return ms 813 } 814 return mi.MessageOf(x) 815 } 816 817 // Deprecated: Use ModelMonitoringInput_ModelMonitoringDataset.ProtoReflect.Descriptor instead. 818 func (*ModelMonitoringInput_ModelMonitoringDataset) Descriptor() ([]byte, []int) { 819 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{3, 0} 820 } 821 822 func (m *ModelMonitoringInput_ModelMonitoringDataset) GetDataLocation() isModelMonitoringInput_ModelMonitoringDataset_DataLocation { 823 if m != nil { 824 return m.DataLocation 825 } 826 return nil 827 } 828 829 func (x *ModelMonitoringInput_ModelMonitoringDataset) GetVertexDataset() string { 830 if x, ok := x.GetDataLocation().(*ModelMonitoringInput_ModelMonitoringDataset_VertexDataset); ok { 831 return x.VertexDataset 832 } 833 return "" 834 } 835 836 func (x *ModelMonitoringInput_ModelMonitoringDataset) GetGcsSource() *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource { 837 if x, ok := x.GetDataLocation().(*ModelMonitoringInput_ModelMonitoringDataset_GcsSource); ok { 838 return x.GcsSource 839 } 840 return nil 841 } 842 843 func (x *ModelMonitoringInput_ModelMonitoringDataset) GetBigquerySource() *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource { 844 if x, ok := x.GetDataLocation().(*ModelMonitoringInput_ModelMonitoringDataset_BigquerySource); ok { 845 return x.BigquerySource 846 } 847 return nil 848 } 849 850 func (x *ModelMonitoringInput_ModelMonitoringDataset) GetTimestampField() string { 851 if x != nil { 852 return x.TimestampField 853 } 854 return "" 855 } 856 857 type isModelMonitoringInput_ModelMonitoringDataset_DataLocation interface { 858 isModelMonitoringInput_ModelMonitoringDataset_DataLocation() 859 } 860 861 type ModelMonitoringInput_ModelMonitoringDataset_VertexDataset struct { 862 // Resource name of the Vertex AI managed dataset. 863 VertexDataset string `protobuf:"bytes,1,opt,name=vertex_dataset,json=vertexDataset,proto3,oneof"` 864 } 865 866 type ModelMonitoringInput_ModelMonitoringDataset_GcsSource struct { 867 // Google Cloud Storage data source. 868 GcsSource *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource `protobuf:"bytes,2,opt,name=gcs_source,json=gcsSource,proto3,oneof"` 869 } 870 871 type ModelMonitoringInput_ModelMonitoringDataset_BigquerySource struct { 872 // BigQuery data source. 873 BigquerySource *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource `protobuf:"bytes,6,opt,name=bigquery_source,json=bigquerySource,proto3,oneof"` 874 } 875 876 func (*ModelMonitoringInput_ModelMonitoringDataset_VertexDataset) isModelMonitoringInput_ModelMonitoringDataset_DataLocation() { 877 } 878 879 func (*ModelMonitoringInput_ModelMonitoringDataset_GcsSource) isModelMonitoringInput_ModelMonitoringDataset_DataLocation() { 880 } 881 882 func (*ModelMonitoringInput_ModelMonitoringDataset_BigquerySource) isModelMonitoringInput_ModelMonitoringDataset_DataLocation() { 883 } 884 885 // Data from Vertex AI Batch prediction job output. 886 type ModelMonitoringInput_BatchPredictionOutput struct { 887 state protoimpl.MessageState 888 sizeCache protoimpl.SizeCache 889 unknownFields protoimpl.UnknownFields 890 891 // Vertex AI Batch prediction job resource name. The job must match the 892 // model version specified in [ModelMonitor].[model_monitoring_target]. 893 BatchPredictionJob string `protobuf:"bytes,1,opt,name=batch_prediction_job,json=batchPredictionJob,proto3" json:"batch_prediction_job,omitempty"` 894 } 895 896 func (x *ModelMonitoringInput_BatchPredictionOutput) Reset() { 897 *x = ModelMonitoringInput_BatchPredictionOutput{} 898 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[11] 899 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 900 ms.StoreMessageInfo(mi) 901 } 902 903 func (x *ModelMonitoringInput_BatchPredictionOutput) String() string { 904 return protoimpl.X.MessageStringOf(x) 905 } 906 907 func (*ModelMonitoringInput_BatchPredictionOutput) ProtoMessage() {} 908 909 func (x *ModelMonitoringInput_BatchPredictionOutput) ProtoReflect() protoreflect.Message { 910 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[11] 911 if x != nil { 912 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 913 if ms.LoadMessageInfo() == nil { 914 ms.StoreMessageInfo(mi) 915 } 916 return ms 917 } 918 return mi.MessageOf(x) 919 } 920 921 // Deprecated: Use ModelMonitoringInput_BatchPredictionOutput.ProtoReflect.Descriptor instead. 922 func (*ModelMonitoringInput_BatchPredictionOutput) Descriptor() ([]byte, []int) { 923 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{3, 1} 924 } 925 926 func (x *ModelMonitoringInput_BatchPredictionOutput) GetBatchPredictionJob() string { 927 if x != nil { 928 return x.BatchPredictionJob 929 } 930 return "" 931 } 932 933 // Data from Vertex AI Endpoint request response logging. 934 type ModelMonitoringInput_VertexEndpointLogs struct { 935 state protoimpl.MessageState 936 sizeCache protoimpl.SizeCache 937 unknownFields protoimpl.UnknownFields 938 939 // List of endpoint resource names. The endpoints must enable the logging 940 // with the [Endpoint].[request_response_logging_config], and must contain 941 // the deployed model corresponding to the model version specified in 942 // [ModelMonitor].[model_monitoring_target]. 943 Endpoints []string `protobuf:"bytes,1,rep,name=endpoints,proto3" json:"endpoints,omitempty"` 944 } 945 946 func (x *ModelMonitoringInput_VertexEndpointLogs) Reset() { 947 *x = ModelMonitoringInput_VertexEndpointLogs{} 948 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[12] 949 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 950 ms.StoreMessageInfo(mi) 951 } 952 953 func (x *ModelMonitoringInput_VertexEndpointLogs) String() string { 954 return protoimpl.X.MessageStringOf(x) 955 } 956 957 func (*ModelMonitoringInput_VertexEndpointLogs) ProtoMessage() {} 958 959 func (x *ModelMonitoringInput_VertexEndpointLogs) ProtoReflect() protoreflect.Message { 960 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[12] 961 if x != nil { 962 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 963 if ms.LoadMessageInfo() == nil { 964 ms.StoreMessageInfo(mi) 965 } 966 return ms 967 } 968 return mi.MessageOf(x) 969 } 970 971 // Deprecated: Use ModelMonitoringInput_VertexEndpointLogs.ProtoReflect.Descriptor instead. 972 func (*ModelMonitoringInput_VertexEndpointLogs) Descriptor() ([]byte, []int) { 973 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{3, 2} 974 } 975 976 func (x *ModelMonitoringInput_VertexEndpointLogs) GetEndpoints() []string { 977 if x != nil { 978 return x.Endpoints 979 } 980 return nil 981 } 982 983 // Time offset setting. 984 type ModelMonitoringInput_TimeOffset struct { 985 state protoimpl.MessageState 986 sizeCache protoimpl.SizeCache 987 unknownFields protoimpl.UnknownFields 988 989 // [offset] is the time difference from the cut-off time. 990 // For scheduled jobs, the cut-off time is the scheduled time. 991 // For non-scheduled jobs, it's the time when the job was created. 992 // Currently we support the following format: 993 // 'w|W': Week, 'd|D': Day, 'h|H': Hour 994 // E.g. '1h' stands for 1 hour, '2d' stands for 2 days. 995 Offset string `protobuf:"bytes,1,opt,name=offset,proto3" json:"offset,omitempty"` 996 // [window] refers to the scope of data selected for analysis. 997 // It allows you to specify the quantity of data you wish to examine. 998 // Currently we support the following format: 999 // 'w|W': Week, 'd|D': Day, 'h|H': Hour 1000 // E.g. '1h' stands for 1 hour, '2d' stands for 2 days. 1001 Window string `protobuf:"bytes,2,opt,name=window,proto3" json:"window,omitempty"` 1002 } 1003 1004 func (x *ModelMonitoringInput_TimeOffset) Reset() { 1005 *x = ModelMonitoringInput_TimeOffset{} 1006 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[13] 1007 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1008 ms.StoreMessageInfo(mi) 1009 } 1010 1011 func (x *ModelMonitoringInput_TimeOffset) String() string { 1012 return protoimpl.X.MessageStringOf(x) 1013 } 1014 1015 func (*ModelMonitoringInput_TimeOffset) ProtoMessage() {} 1016 1017 func (x *ModelMonitoringInput_TimeOffset) ProtoReflect() protoreflect.Message { 1018 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[13] 1019 if x != nil { 1020 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1021 if ms.LoadMessageInfo() == nil { 1022 ms.StoreMessageInfo(mi) 1023 } 1024 return ms 1025 } 1026 return mi.MessageOf(x) 1027 } 1028 1029 // Deprecated: Use ModelMonitoringInput_TimeOffset.ProtoReflect.Descriptor instead. 1030 func (*ModelMonitoringInput_TimeOffset) Descriptor() ([]byte, []int) { 1031 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{3, 3} 1032 } 1033 1034 func (x *ModelMonitoringInput_TimeOffset) GetOffset() string { 1035 if x != nil { 1036 return x.Offset 1037 } 1038 return "" 1039 } 1040 1041 func (x *ModelMonitoringInput_TimeOffset) GetWindow() string { 1042 if x != nil { 1043 return x.Window 1044 } 1045 return "" 1046 } 1047 1048 // Dataset spec for data stored in Google Cloud Storage. 1049 type ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource struct { 1050 state protoimpl.MessageState 1051 sizeCache protoimpl.SizeCache 1052 unknownFields protoimpl.UnknownFields 1053 1054 // Google Cloud Storage URI to the input file(s). May contain 1055 // wildcards. For more information on wildcards, see 1056 // https://cloud.google.com/storage/docs/wildcards. 1057 GcsUri string `protobuf:"bytes,1,opt,name=gcs_uri,json=gcsUri,proto3" json:"gcs_uri,omitempty"` 1058 // Data format of the dataset. 1059 Format ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat `protobuf:"varint,2,opt,name=format,proto3,enum=google.cloud.aiplatform.v1beta1.ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat" json:"format,omitempty"` 1060 } 1061 1062 func (x *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource) Reset() { 1063 *x = ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource{} 1064 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[14] 1065 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1066 ms.StoreMessageInfo(mi) 1067 } 1068 1069 func (x *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource) String() string { 1070 return protoimpl.X.MessageStringOf(x) 1071 } 1072 1073 func (*ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource) ProtoMessage() {} 1074 1075 func (x *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource) ProtoReflect() protoreflect.Message { 1076 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[14] 1077 if x != nil { 1078 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1079 if ms.LoadMessageInfo() == nil { 1080 ms.StoreMessageInfo(mi) 1081 } 1082 return ms 1083 } 1084 return mi.MessageOf(x) 1085 } 1086 1087 // Deprecated: Use ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource.ProtoReflect.Descriptor instead. 1088 func (*ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource) Descriptor() ([]byte, []int) { 1089 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{3, 0, 0} 1090 } 1091 1092 func (x *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource) GetGcsUri() string { 1093 if x != nil { 1094 return x.GcsUri 1095 } 1096 return "" 1097 } 1098 1099 func (x *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource) GetFormat() ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat { 1100 if x != nil { 1101 return x.Format 1102 } 1103 return ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DATA_FORMAT_UNSPECIFIED 1104 } 1105 1106 // Dataset spec for data sotred in BigQuery. 1107 type ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource struct { 1108 state protoimpl.MessageState 1109 sizeCache protoimpl.SizeCache 1110 unknownFields protoimpl.UnknownFields 1111 1112 // Types that are assignable to Connection: 1113 // 1114 // *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource_TableUri 1115 // *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource_Query 1116 Connection isModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource_Connection `protobuf_oneof:"connection"` 1117 } 1118 1119 func (x *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource) Reset() { 1120 *x = ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource{} 1121 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[15] 1122 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1123 ms.StoreMessageInfo(mi) 1124 } 1125 1126 func (x *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource) String() string { 1127 return protoimpl.X.MessageStringOf(x) 1128 } 1129 1130 func (*ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource) ProtoMessage() {} 1131 1132 func (x *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource) ProtoReflect() protoreflect.Message { 1133 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[15] 1134 if x != nil { 1135 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1136 if ms.LoadMessageInfo() == nil { 1137 ms.StoreMessageInfo(mi) 1138 } 1139 return ms 1140 } 1141 return mi.MessageOf(x) 1142 } 1143 1144 // Deprecated: Use ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource.ProtoReflect.Descriptor instead. 1145 func (*ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource) Descriptor() ([]byte, []int) { 1146 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{3, 0, 1} 1147 } 1148 1149 func (m *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource) GetConnection() isModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource_Connection { 1150 if m != nil { 1151 return m.Connection 1152 } 1153 return nil 1154 } 1155 1156 func (x *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource) GetTableUri() string { 1157 if x, ok := x.GetConnection().(*ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource_TableUri); ok { 1158 return x.TableUri 1159 } 1160 return "" 1161 } 1162 1163 func (x *ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource) GetQuery() string { 1164 if x, ok := x.GetConnection().(*ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource_Query); ok { 1165 return x.Query 1166 } 1167 return "" 1168 } 1169 1170 type isModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource_Connection interface { 1171 isModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource_Connection() 1172 } 1173 1174 type ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource_TableUri struct { 1175 // BigQuery URI to a table, up to 2000 characters long. All the columns 1176 // in the table will be selected. Accepted forms: 1177 // 1178 // * BigQuery path. For example: 1179 // `bq://projectId.bqDatasetId.bqTableId`. 1180 TableUri string `protobuf:"bytes,1,opt,name=table_uri,json=tableUri,proto3,oneof"` 1181 } 1182 1183 type ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource_Query struct { 1184 // Standard SQL to be used instead of the `table_uri`. 1185 Query string `protobuf:"bytes,2,opt,name=query,proto3,oneof"` 1186 } 1187 1188 func (*ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource_TableUri) isModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource_Connection() { 1189 } 1190 1191 func (*ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource_Query) isModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource_Connection() { 1192 } 1193 1194 // The config for email alerts. 1195 type ModelMonitoringNotificationSpec_EmailConfig struct { 1196 state protoimpl.MessageState 1197 sizeCache protoimpl.SizeCache 1198 unknownFields protoimpl.UnknownFields 1199 1200 // The email addresses to send the alerts. 1201 UserEmails []string `protobuf:"bytes,1,rep,name=user_emails,json=userEmails,proto3" json:"user_emails,omitempty"` 1202 } 1203 1204 func (x *ModelMonitoringNotificationSpec_EmailConfig) Reset() { 1205 *x = ModelMonitoringNotificationSpec_EmailConfig{} 1206 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[16] 1207 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1208 ms.StoreMessageInfo(mi) 1209 } 1210 1211 func (x *ModelMonitoringNotificationSpec_EmailConfig) String() string { 1212 return protoimpl.X.MessageStringOf(x) 1213 } 1214 1215 func (*ModelMonitoringNotificationSpec_EmailConfig) ProtoMessage() {} 1216 1217 func (x *ModelMonitoringNotificationSpec_EmailConfig) ProtoReflect() protoreflect.Message { 1218 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[16] 1219 if x != nil { 1220 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1221 if ms.LoadMessageInfo() == nil { 1222 ms.StoreMessageInfo(mi) 1223 } 1224 return ms 1225 } 1226 return mi.MessageOf(x) 1227 } 1228 1229 // Deprecated: Use ModelMonitoringNotificationSpec_EmailConfig.ProtoReflect.Descriptor instead. 1230 func (*ModelMonitoringNotificationSpec_EmailConfig) Descriptor() ([]byte, []int) { 1231 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{4, 0} 1232 } 1233 1234 func (x *ModelMonitoringNotificationSpec_EmailConfig) GetUserEmails() []string { 1235 if x != nil { 1236 return x.UserEmails 1237 } 1238 return nil 1239 } 1240 1241 // Google Cloud Notification Channel config. 1242 type ModelMonitoringNotificationSpec_NotificationChannelConfig struct { 1243 state protoimpl.MessageState 1244 sizeCache protoimpl.SizeCache 1245 unknownFields protoimpl.UnknownFields 1246 1247 // Resource names of the NotificationChannels. 1248 // Must be of the format 1249 // `projects/<project_id_or_number>/notificationChannels/<channel_id>` 1250 NotificationChannel string `protobuf:"bytes,1,opt,name=notification_channel,json=notificationChannel,proto3" json:"notification_channel,omitempty"` 1251 } 1252 1253 func (x *ModelMonitoringNotificationSpec_NotificationChannelConfig) Reset() { 1254 *x = ModelMonitoringNotificationSpec_NotificationChannelConfig{} 1255 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[17] 1256 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1257 ms.StoreMessageInfo(mi) 1258 } 1259 1260 func (x *ModelMonitoringNotificationSpec_NotificationChannelConfig) String() string { 1261 return protoimpl.X.MessageStringOf(x) 1262 } 1263 1264 func (*ModelMonitoringNotificationSpec_NotificationChannelConfig) ProtoMessage() {} 1265 1266 func (x *ModelMonitoringNotificationSpec_NotificationChannelConfig) ProtoReflect() protoreflect.Message { 1267 mi := &file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[17] 1268 if x != nil { 1269 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1270 if ms.LoadMessageInfo() == nil { 1271 ms.StoreMessageInfo(mi) 1272 } 1273 return ms 1274 } 1275 return mi.MessageOf(x) 1276 } 1277 1278 // Deprecated: Use ModelMonitoringNotificationSpec_NotificationChannelConfig.ProtoReflect.Descriptor instead. 1279 func (*ModelMonitoringNotificationSpec_NotificationChannelConfig) Descriptor() ([]byte, []int) { 1280 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP(), []int{4, 1} 1281 } 1282 1283 func (x *ModelMonitoringNotificationSpec_NotificationChannelConfig) GetNotificationChannel() string { 1284 if x != nil { 1285 return x.NotificationChannel 1286 } 1287 return "" 1288 } 1289 1290 var File_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto protoreflect.FileDescriptor 1291 1292 var file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDesc = []byte{ 1293 0x0a, 0x3b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 1294 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 1295 0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 1296 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 1297 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 1298 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x19, 1299 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 1300 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1301 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1302 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6c, 0x61, 1303 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x67, 0x6f, 1304 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 1305 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x69, 0x6f, 1306 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x37, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 1307 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 1308 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 1309 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 1310 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 1311 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 1312 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 1313 0x67, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x67, 1314 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 1315 0x76, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc7, 0x02, 0x0a, 0x13, 0x4d, 0x6f, 1316 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 1317 0x63, 0x12, 0x64, 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 1318 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1319 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 1320 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 1321 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 1322 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 1323 0x69, 0x76, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6d, 0x0a, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 1324 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 1325 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1326 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 1327 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 1328 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1329 0x53, 0x70, 0x65, 0x63, 0x52, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 1330 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5b, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 1331 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 1332 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 1333 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 1334 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x75, 0x74, 1335 0x70, 0x75, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 1336 0x70, 0x65, 0x63, 0x22, 0xcb, 0x11, 0x0a, 0x1c, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 1337 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 1338 0x53, 0x70, 0x65, 0x63, 0x12, 0x7d, 0x0a, 0x11, 0x74, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x5f, 1339 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 1340 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1341 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 1342 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 1343 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x54, 1344 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x48, 1345 0x00, 0x52, 0x10, 0x74, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 1346 0x69, 0x76, 0x65, 0x12, 0x5b, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 1347 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 1348 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 1349 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 1350 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 1351 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 1352 0x12, 0x60, 0x0a, 0x10, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x64, 0x61, 0x74, 1353 0x61, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 1354 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1355 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 1356 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x70, 0x75, 1357 0x74, 0x52, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 1358 0x65, 0x74, 0x12, 0x5c, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x61, 0x74, 1359 0x61, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 1360 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1361 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 1362 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x70, 0x75, 1363 0x74, 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 1364 0x1a, 0xdb, 0x05, 0x0a, 0x0d, 0x44, 0x61, 0x74, 0x61, 0x44, 0x72, 0x69, 0x66, 0x74, 0x53, 0x70, 1365 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 1366 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x36, 1367 0x0a, 0x17, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 1368 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 1369 0x15, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x4d, 0x65, 0x74, 0x72, 1370 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 1371 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 1372 0x01, 0x28, 0x09, 0x52, 0x11, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x72, 1373 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x23, 0x64, 0x65, 0x66, 0x61, 0x75, 1374 0x6c, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x61, 1375 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 1376 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 1377 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 1378 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 1379 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 1380 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x43, 0x61, 0x74, 1381 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 1382 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x85, 0x01, 0x0a, 0x1f, 0x64, 0x65, 0x66, 0x61, 0x75, 1383 0x6c, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 1384 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 1385 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1386 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 1387 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 1388 0x6e, 0x67, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 1389 0x52, 0x1c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 1390 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0xa1, 1391 0x01, 0x0a, 0x18, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 1392 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 1393 0x0b, 0x32, 0x67, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1394 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 1395 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 1396 0x69, 0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x65, 0x63, 1397 0x2e, 0x44, 0x61, 0x74, 0x61, 0x44, 0x72, 0x69, 0x66, 0x74, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x46, 1398 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 1399 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x66, 0x65, 0x61, 0x74, 1400 0x75, 0x72, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 1401 0x6e, 0x73, 0x1a, 0x89, 0x01, 0x0a, 0x1b, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, 1402 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 1403 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 1404 0x03, 0x6b, 0x65, 0x79, 0x12, 0x54, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 1405 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1406 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 1407 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 1408 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 1409 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xf3, 1410 0x04, 0x0a, 0x16, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 1411 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x61, 1412 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x61, 1413 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x76, 0x0a, 0x17, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 1414 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 1415 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1416 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1417 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 1418 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 1419 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x41, 1420 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0xaa, 0x01, 1421 0x0a, 0x18, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f, 1422 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 1423 0x32, 0x70, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1424 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 1425 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 1426 0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x65, 0x63, 0x2e, 1427 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 1428 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, 1429 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 1430 0x72, 0x79, 0x52, 0x16, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 1431 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x8b, 0x01, 0x0a, 0x25, 0x62, 1432 0x61, 0x74, 0x63, 0x68, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 1433 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 1434 0x72, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 1435 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1436 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 1437 0x63, 0x68, 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 1438 0x72, 0x63, 0x65, 0x73, 0x52, 0x22, 0x62, 0x61, 0x74, 0x63, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x61, 1439 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 1440 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x1a, 0x89, 0x01, 0x0a, 0x1b, 0x46, 0x65, 0x61, 1441 0x74, 0x75, 0x72, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 1442 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 1443 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x54, 0x0a, 0x05, 0x76, 0x61, 1444 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1445 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 1446 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 1447 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x65, 0x72, 0x74, 1448 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 1449 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xad, 0x03, 0x0a, 0x10, 0x54, 0x61, 0x62, 0x75, 0x6c, 0x61, 0x72, 1450 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x79, 0x0a, 0x12, 0x66, 0x65, 0x61, 1451 0x74, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 1452 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1453 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 1454 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 1455 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 1456 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x44, 0x72, 0x69, 0x66, 0x74, 0x53, 0x70, 1457 0x65, 0x63, 0x52, 0x10, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x72, 0x69, 0x66, 0x74, 1458 0x53, 0x70, 0x65, 0x63, 0x12, 0x8c, 0x01, 0x0a, 0x1c, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 1459 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 1460 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 1461 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 1462 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 1463 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x62, 0x6a, 1464 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x44, 1465 0x72, 0x69, 0x66, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52, 0x19, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 1466 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x72, 0x69, 0x66, 0x74, 0x53, 1467 0x70, 0x65, 0x63, 0x12, 0x8e, 0x01, 0x0a, 0x18, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 1468 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 1469 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x54, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1470 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1471 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 1472 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 1473 0x65, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x74, 0x74, 1474 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x16, 0x66, 0x65, 1475 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 1476 0x53, 0x70, 0x65, 0x63, 0x42, 0x0b, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 1477 0x65, 0x22, 0x7a, 0x0a, 0x19, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 1478 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5d, 1479 0x0a, 0x12, 0x67, 0x63, 0x73, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 1480 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 1481 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1482 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x63, 0x73, 1483 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x67, 0x63, 0x73, 1484 0x42, 0x61, 0x73, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xab, 0x0d, 1485 0x0a, 0x14, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 1486 0x67, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x7d, 0x0a, 0x12, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 1487 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 1488 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1489 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 1490 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 1491 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 1492 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 1493 0x48, 0x00, 0x52, 0x11, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x69, 0x7a, 0x65, 0x64, 0x44, 0x61, 1494 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x17, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 1495 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 1496 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1497 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 1498 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 1499 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x42, 1500 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 1501 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x15, 0x62, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 1502 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x7c, 0x0a, 1503 0x14, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 1504 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 1505 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 1506 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 1507 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x70, 1508 0x75, 0x74, 0x2e, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 1509 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x48, 0x00, 0x52, 0x12, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x45, 1510 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x0d, 0x74, 1511 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 1512 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 1513 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x69, 0x6d, 1514 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x63, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 1515 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 1516 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 1517 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 1518 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 1519 0x49, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 1520 0x48, 0x01, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x1a, 0xb9, 1521 0x06, 0x0a, 0x16, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 1522 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x4f, 0x0a, 0x0e, 0x76, 0x65, 0x72, 1523 0x74, 0x65, 0x78, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 1524 0x09, 0x42, 0x26, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1525 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 1526 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x76, 0x65, 0x72, 1527 0x74, 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x86, 0x01, 0x0a, 0x0a, 0x67, 1528 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 1529 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1530 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 1531 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 1532 0x67, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 1533 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x4d, 0x6f, 1534 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x47, 0x63, 0x73, 1535 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x67, 0x63, 0x73, 0x53, 0x6f, 0x75, 1536 0x72, 0x63, 0x65, 0x12, 0x95, 0x01, 0x0a, 0x0f, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 1537 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x6a, 0x2e, 1538 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 1539 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 1540 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x49, 1541 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 1542 0x72, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 1543 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x67, 0x51, 0x75, 1544 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x69, 0x67, 1545 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x74, 1546 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x07, 1547 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x46, 1548 0x69, 0x65, 0x6c, 0x64, 0x1a, 0x8c, 0x02, 0x0a, 0x18, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 1549 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 1550 0x65, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x63, 0x73, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 1551 0x28, 0x09, 0x52, 0x06, 0x67, 0x63, 0x73, 0x55, 0x72, 0x69, 0x12, 0x88, 0x01, 0x0a, 0x06, 0x66, 1552 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x70, 0x2e, 0x67, 0x6f, 1553 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 1554 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 1555 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x70, 1556 0x75, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 1557 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 1558 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 1559 0x63, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 1560 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x4c, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 1561 0x6d, 0x61, 0x74, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 1562 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 1563 0x12, 0x07, 0x0a, 0x03, 0x43, 0x53, 0x56, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x46, 0x5f, 1564 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x4a, 0x53, 0x4f, 0x4e, 1565 0x4c, 0x10, 0x03, 0x1a, 0x64, 0x0a, 0x1d, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 1566 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 1567 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x72, 1568 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 1569 0x55, 0x72, 0x69, 0x12, 0x16, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 1570 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x63, 1571 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x64, 0x61, 0x74, 1572 0x61, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x7c, 0x0a, 0x15, 0x42, 0x61, 1573 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 1574 0x70, 0x75, 0x74, 0x12, 0x63, 0x0a, 0x14, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x72, 0x65, 1575 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 1576 0x09, 0x42, 0x31, 0xfa, 0x41, 0x2e, 0x0a, 0x2c, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1577 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 1578 0x6d, 0x2f, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 1579 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x12, 0x62, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x65, 0x64, 0x69, 1580 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x1a, 0x5b, 0x0a, 0x12, 0x56, 0x65, 0x72, 0x74, 1581 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x45, 1582 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 1583 0x09, 0x42, 0x27, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1584 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 1585 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 1586 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0x3c, 0x0a, 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 1587 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 1588 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x77, 1589 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x69, 0x6e, 1590 0x64, 0x6f, 0x77, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x42, 0x0b, 1591 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x22, 0xe3, 0x03, 0x0a, 0x1f, 1592 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4e, 1593 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 1594 0x6f, 0x0a, 0x0c, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 1595 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1596 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 1597 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 1598 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 1599 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x43, 0x6f, 0x6e, 1600 0x66, 0x69, 0x67, 0x52, 0x0b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 1601 0x12, 0x30, 0x0a, 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 1602 0x5f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 1603 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x6f, 0x67, 0x67, 0x69, 1604 0x6e, 0x67, 0x12, 0x9c, 0x01, 0x0a, 0x1c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 1605 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 1606 0x69, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1607 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 1608 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 1609 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 1610 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 1611 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 1612 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x1a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 1613 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 1614 0x73, 0x1a, 0x2e, 0x0a, 0x0b, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 1615 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x18, 1616 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 1617 0x73, 0x1a, 0x4e, 0x0a, 0x19, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 1618 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x31, 1619 0x0a, 0x14, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 1620 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6e, 0x6f, 1621 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 1622 0x6c, 0x42, 0xef, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1623 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 1624 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x18, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 1625 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x50, 0x72, 1626 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 1627 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 1628 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 1629 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 1630 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 1631 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 1632 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 1633 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 1634 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 1635 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 1636 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 1637 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1638 } 1639 1640 var ( 1641 file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescOnce sync.Once 1642 file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescData = file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDesc 1643 ) 1644 1645 func file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescGZIP() []byte { 1646 file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescOnce.Do(func() { 1647 file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescData) 1648 }) 1649 return file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDescData 1650 } 1651 1652 var file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_enumTypes = make([]protoimpl.EnumInfo, 1) 1653 var file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes = make([]protoimpl.MessageInfo, 18) 1654 var file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_goTypes = []any{ 1655 (ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource_DataFormat)(0), // 0: google.cloud.aiplatform.v1beta1.ModelMonitoringInput.ModelMonitoringDataset.ModelMonitoringGcsSource.DataFormat 1656 (*ModelMonitoringSpec)(nil), // 1: google.cloud.aiplatform.v1beta1.ModelMonitoringSpec 1657 (*ModelMonitoringObjectiveSpec)(nil), // 2: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec 1658 (*ModelMonitoringOutputSpec)(nil), // 3: google.cloud.aiplatform.v1beta1.ModelMonitoringOutputSpec 1659 (*ModelMonitoringInput)(nil), // 4: google.cloud.aiplatform.v1beta1.ModelMonitoringInput 1660 (*ModelMonitoringNotificationSpec)(nil), // 5: google.cloud.aiplatform.v1beta1.ModelMonitoringNotificationSpec 1661 (*ModelMonitoringObjectiveSpec_DataDriftSpec)(nil), // 6: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.DataDriftSpec 1662 (*ModelMonitoringObjectiveSpec_FeatureAttributionSpec)(nil), // 7: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.FeatureAttributionSpec 1663 (*ModelMonitoringObjectiveSpec_TabularObjective)(nil), // 8: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.TabularObjective 1664 nil, // 9: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.DataDriftSpec.FeatureAlertConditionsEntry 1665 nil, // 10: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.FeatureAttributionSpec.FeatureAlertConditionsEntry 1666 (*ModelMonitoringInput_ModelMonitoringDataset)(nil), // 11: google.cloud.aiplatform.v1beta1.ModelMonitoringInput.ModelMonitoringDataset 1667 (*ModelMonitoringInput_BatchPredictionOutput)(nil), // 12: google.cloud.aiplatform.v1beta1.ModelMonitoringInput.BatchPredictionOutput 1668 (*ModelMonitoringInput_VertexEndpointLogs)(nil), // 13: google.cloud.aiplatform.v1beta1.ModelMonitoringInput.VertexEndpointLogs 1669 (*ModelMonitoringInput_TimeOffset)(nil), // 14: google.cloud.aiplatform.v1beta1.ModelMonitoringInput.TimeOffset 1670 (*ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringGcsSource)(nil), // 15: google.cloud.aiplatform.v1beta1.ModelMonitoringInput.ModelMonitoringDataset.ModelMonitoringGcsSource 1671 (*ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource)(nil), // 16: google.cloud.aiplatform.v1beta1.ModelMonitoringInput.ModelMonitoringDataset.ModelMonitoringBigQuerySource 1672 (*ModelMonitoringNotificationSpec_EmailConfig)(nil), // 17: google.cloud.aiplatform.v1beta1.ModelMonitoringNotificationSpec.EmailConfig 1673 (*ModelMonitoringNotificationSpec_NotificationChannelConfig)(nil), // 18: google.cloud.aiplatform.v1beta1.ModelMonitoringNotificationSpec.NotificationChannelConfig 1674 (*ExplanationSpec)(nil), // 19: google.cloud.aiplatform.v1beta1.ExplanationSpec 1675 (*GcsDestination)(nil), // 20: google.cloud.aiplatform.v1beta1.GcsDestination 1676 (*interval.Interval)(nil), // 21: google.type.Interval 1677 (*ModelMonitoringAlertCondition)(nil), // 22: google.cloud.aiplatform.v1beta1.ModelMonitoringAlertCondition 1678 (*BatchDedicatedResources)(nil), // 23: google.cloud.aiplatform.v1beta1.BatchDedicatedResources 1679 } 1680 var file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_depIdxs = []int32{ 1681 2, // 0: google.cloud.aiplatform.v1beta1.ModelMonitoringSpec.objective_spec:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec 1682 5, // 1: google.cloud.aiplatform.v1beta1.ModelMonitoringSpec.notification_spec:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringNotificationSpec 1683 3, // 2: google.cloud.aiplatform.v1beta1.ModelMonitoringSpec.output_spec:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringOutputSpec 1684 8, // 3: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.tabular_objective:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.TabularObjective 1685 19, // 4: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.explanation_spec:type_name -> google.cloud.aiplatform.v1beta1.ExplanationSpec 1686 4, // 5: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.baseline_dataset:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringInput 1687 4, // 6: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.target_dataset:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringInput 1688 20, // 7: google.cloud.aiplatform.v1beta1.ModelMonitoringOutputSpec.gcs_base_directory:type_name -> google.cloud.aiplatform.v1beta1.GcsDestination 1689 11, // 8: google.cloud.aiplatform.v1beta1.ModelMonitoringInput.columnized_dataset:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringInput.ModelMonitoringDataset 1690 12, // 9: google.cloud.aiplatform.v1beta1.ModelMonitoringInput.batch_prediction_output:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringInput.BatchPredictionOutput 1691 13, // 10: google.cloud.aiplatform.v1beta1.ModelMonitoringInput.vertex_endpoint_logs:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringInput.VertexEndpointLogs 1692 21, // 11: google.cloud.aiplatform.v1beta1.ModelMonitoringInput.time_interval:type_name -> google.type.Interval 1693 14, // 12: google.cloud.aiplatform.v1beta1.ModelMonitoringInput.time_offset:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringInput.TimeOffset 1694 17, // 13: google.cloud.aiplatform.v1beta1.ModelMonitoringNotificationSpec.email_config:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringNotificationSpec.EmailConfig 1695 18, // 14: google.cloud.aiplatform.v1beta1.ModelMonitoringNotificationSpec.notification_channel_configs:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringNotificationSpec.NotificationChannelConfig 1696 22, // 15: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.DataDriftSpec.default_categorical_alert_condition:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringAlertCondition 1697 22, // 16: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.DataDriftSpec.default_numeric_alert_condition:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringAlertCondition 1698 9, // 17: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.DataDriftSpec.feature_alert_conditions:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.DataDriftSpec.FeatureAlertConditionsEntry 1699 22, // 18: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.FeatureAttributionSpec.default_alert_condition:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringAlertCondition 1700 10, // 19: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.FeatureAttributionSpec.feature_alert_conditions:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.FeatureAttributionSpec.FeatureAlertConditionsEntry 1701 23, // 20: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.FeatureAttributionSpec.batch_explanation_dedicated_resources:type_name -> google.cloud.aiplatform.v1beta1.BatchDedicatedResources 1702 6, // 21: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.TabularObjective.feature_drift_spec:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.DataDriftSpec 1703 6, // 22: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.TabularObjective.prediction_output_drift_spec:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.DataDriftSpec 1704 7, // 23: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.TabularObjective.feature_attribution_spec:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.FeatureAttributionSpec 1705 22, // 24: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.DataDriftSpec.FeatureAlertConditionsEntry.value:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringAlertCondition 1706 22, // 25: google.cloud.aiplatform.v1beta1.ModelMonitoringObjectiveSpec.FeatureAttributionSpec.FeatureAlertConditionsEntry.value:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringAlertCondition 1707 15, // 26: google.cloud.aiplatform.v1beta1.ModelMonitoringInput.ModelMonitoringDataset.gcs_source:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringInput.ModelMonitoringDataset.ModelMonitoringGcsSource 1708 16, // 27: google.cloud.aiplatform.v1beta1.ModelMonitoringInput.ModelMonitoringDataset.bigquery_source:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringInput.ModelMonitoringDataset.ModelMonitoringBigQuerySource 1709 0, // 28: google.cloud.aiplatform.v1beta1.ModelMonitoringInput.ModelMonitoringDataset.ModelMonitoringGcsSource.format:type_name -> google.cloud.aiplatform.v1beta1.ModelMonitoringInput.ModelMonitoringDataset.ModelMonitoringGcsSource.DataFormat 1710 29, // [29:29] is the sub-list for method output_type 1711 29, // [29:29] is the sub-list for method input_type 1712 29, // [29:29] is the sub-list for extension type_name 1713 29, // [29:29] is the sub-list for extension extendee 1714 0, // [0:29] is the sub-list for field type_name 1715 } 1716 1717 func init() { file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_init() } 1718 func file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_init() { 1719 if File_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto != nil { 1720 return 1721 } 1722 file_google_cloud_aiplatform_v1beta1_explanation_proto_init() 1723 file_google_cloud_aiplatform_v1beta1_io_proto_init() 1724 file_google_cloud_aiplatform_v1beta1_machine_resources_proto_init() 1725 file_google_cloud_aiplatform_v1beta1_model_monitoring_alert_proto_init() 1726 file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[1].OneofWrappers = []any{ 1727 (*ModelMonitoringObjectiveSpec_TabularObjective_)(nil), 1728 } 1729 file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[3].OneofWrappers = []any{ 1730 (*ModelMonitoringInput_ColumnizedDataset)(nil), 1731 (*ModelMonitoringInput_BatchPredictionOutput_)(nil), 1732 (*ModelMonitoringInput_VertexEndpointLogs_)(nil), 1733 (*ModelMonitoringInput_TimeInterval)(nil), 1734 (*ModelMonitoringInput_TimeOffset_)(nil), 1735 } 1736 file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[10].OneofWrappers = []any{ 1737 (*ModelMonitoringInput_ModelMonitoringDataset_VertexDataset)(nil), 1738 (*ModelMonitoringInput_ModelMonitoringDataset_GcsSource)(nil), 1739 (*ModelMonitoringInput_ModelMonitoringDataset_BigquerySource)(nil), 1740 } 1741 file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes[15].OneofWrappers = []any{ 1742 (*ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource_TableUri)(nil), 1743 (*ModelMonitoringInput_ModelMonitoringDataset_ModelMonitoringBigQuerySource_Query)(nil), 1744 } 1745 type x struct{} 1746 out := protoimpl.TypeBuilder{ 1747 File: protoimpl.DescBuilder{ 1748 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1749 RawDescriptor: file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDesc, 1750 NumEnums: 1, 1751 NumMessages: 18, 1752 NumExtensions: 0, 1753 NumServices: 0, 1754 }, 1755 GoTypes: file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_goTypes, 1756 DependencyIndexes: file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_depIdxs, 1757 EnumInfos: file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_enumTypes, 1758 MessageInfos: file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_msgTypes, 1759 }.Build() 1760 File_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto = out.File 1761 file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_rawDesc = nil 1762 file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_goTypes = nil 1763 file_google_cloud_aiplatform_v1beta1_model_monitoring_spec_proto_depIdxs = nil 1764 }