cloud.google.com/go/aiplatform@v1.106.0/apiv1/aiplatformpb/model_monitoring.pb.go (about)

     1  // Copyright 2025 Google LLC
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // Code generated by protoc-gen-go. DO NOT EDIT.
    16  // versions:
    17  // 	protoc-gen-go v1.35.2
    18  // 	protoc        v4.25.7
    19  // source: google/cloud/aiplatform/v1/model_monitoring.proto
    20  
    21  package aiplatformpb
    22  
    23  import (
    24  	_ "google.golang.org/genproto/googleapis/api/annotations"
    25  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    26  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    27  	reflect "reflect"
    28  	sync "sync"
    29  )
    30  
    31  const (
    32  	// Verify that this generated code is sufficiently up-to-date.
    33  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    34  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    35  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    36  )
    37  
    38  // The storage format of the predictions generated BatchPrediction job.
    39  type ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat int32
    40  
    41  const (
    42  	// Should not be set.
    43  	ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PREDICTION_FORMAT_UNSPECIFIED ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat = 0
    44  	// Predictions are in JSONL files.
    45  	ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_JSONL ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat = 2
    46  	// Predictions are in BigQuery.
    47  	ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_BIGQUERY ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat = 3
    48  )
    49  
    50  // Enum value maps for ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat.
    51  var (
    52  	ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat_name = map[int32]string{
    53  		0: "PREDICTION_FORMAT_UNSPECIFIED",
    54  		2: "JSONL",
    55  		3: "BIGQUERY",
    56  	}
    57  	ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat_value = map[string]int32{
    58  		"PREDICTION_FORMAT_UNSPECIFIED": 0,
    59  		"JSONL":                         2,
    60  		"BIGQUERY":                      3,
    61  	}
    62  )
    63  
    64  func (x ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat) Enum() *ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat {
    65  	p := new(ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat)
    66  	*p = x
    67  	return p
    68  }
    69  
    70  func (x ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat) String() string {
    71  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    72  }
    73  
    74  func (ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat) Descriptor() protoreflect.EnumDescriptor {
    75  	return file_google_cloud_aiplatform_v1_model_monitoring_proto_enumTypes[0].Descriptor()
    76  }
    77  
    78  func (ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat) Type() protoreflect.EnumType {
    79  	return &file_google_cloud_aiplatform_v1_model_monitoring_proto_enumTypes[0]
    80  }
    81  
    82  func (x ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat) Number() protoreflect.EnumNumber {
    83  	return protoreflect.EnumNumber(x)
    84  }
    85  
    86  // Deprecated: Use ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat.Descriptor instead.
    87  func (ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat) EnumDescriptor() ([]byte, []int) {
    88  	return file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescGZIP(), []int{0, 3, 0, 0}
    89  }
    90  
    91  // The objective configuration for model monitoring, including the information
    92  // needed to detect anomalies for one particular model.
    93  type ModelMonitoringObjectiveConfig struct {
    94  	state         protoimpl.MessageState
    95  	sizeCache     protoimpl.SizeCache
    96  	unknownFields protoimpl.UnknownFields
    97  
    98  	// Training dataset for models. This field has to be set only if
    99  	// TrainingPredictionSkewDetectionConfig is specified.
   100  	TrainingDataset *ModelMonitoringObjectiveConfig_TrainingDataset `protobuf:"bytes,1,opt,name=training_dataset,json=trainingDataset,proto3" json:"training_dataset,omitempty"`
   101  	// The config for skew between training data and prediction data.
   102  	TrainingPredictionSkewDetectionConfig *ModelMonitoringObjectiveConfig_TrainingPredictionSkewDetectionConfig `protobuf:"bytes,2,opt,name=training_prediction_skew_detection_config,json=trainingPredictionSkewDetectionConfig,proto3" json:"training_prediction_skew_detection_config,omitempty"`
   103  	// The config for drift of prediction data.
   104  	PredictionDriftDetectionConfig *ModelMonitoringObjectiveConfig_PredictionDriftDetectionConfig `protobuf:"bytes,3,opt,name=prediction_drift_detection_config,json=predictionDriftDetectionConfig,proto3" json:"prediction_drift_detection_config,omitempty"`
   105  	// The config for integrating with Vertex Explainable AI.
   106  	ExplanationConfig *ModelMonitoringObjectiveConfig_ExplanationConfig `protobuf:"bytes,5,opt,name=explanation_config,json=explanationConfig,proto3" json:"explanation_config,omitempty"`
   107  }
   108  
   109  func (x *ModelMonitoringObjectiveConfig) Reset() {
   110  	*x = ModelMonitoringObjectiveConfig{}
   111  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[0]
   112  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   113  	ms.StoreMessageInfo(mi)
   114  }
   115  
   116  func (x *ModelMonitoringObjectiveConfig) String() string {
   117  	return protoimpl.X.MessageStringOf(x)
   118  }
   119  
   120  func (*ModelMonitoringObjectiveConfig) ProtoMessage() {}
   121  
   122  func (x *ModelMonitoringObjectiveConfig) ProtoReflect() protoreflect.Message {
   123  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[0]
   124  	if x != nil {
   125  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   126  		if ms.LoadMessageInfo() == nil {
   127  			ms.StoreMessageInfo(mi)
   128  		}
   129  		return ms
   130  	}
   131  	return mi.MessageOf(x)
   132  }
   133  
   134  // Deprecated: Use ModelMonitoringObjectiveConfig.ProtoReflect.Descriptor instead.
   135  func (*ModelMonitoringObjectiveConfig) Descriptor() ([]byte, []int) {
   136  	return file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescGZIP(), []int{0}
   137  }
   138  
   139  func (x *ModelMonitoringObjectiveConfig) GetTrainingDataset() *ModelMonitoringObjectiveConfig_TrainingDataset {
   140  	if x != nil {
   141  		return x.TrainingDataset
   142  	}
   143  	return nil
   144  }
   145  
   146  func (x *ModelMonitoringObjectiveConfig) GetTrainingPredictionSkewDetectionConfig() *ModelMonitoringObjectiveConfig_TrainingPredictionSkewDetectionConfig {
   147  	if x != nil {
   148  		return x.TrainingPredictionSkewDetectionConfig
   149  	}
   150  	return nil
   151  }
   152  
   153  func (x *ModelMonitoringObjectiveConfig) GetPredictionDriftDetectionConfig() *ModelMonitoringObjectiveConfig_PredictionDriftDetectionConfig {
   154  	if x != nil {
   155  		return x.PredictionDriftDetectionConfig
   156  	}
   157  	return nil
   158  }
   159  
   160  func (x *ModelMonitoringObjectiveConfig) GetExplanationConfig() *ModelMonitoringObjectiveConfig_ExplanationConfig {
   161  	if x != nil {
   162  		return x.ExplanationConfig
   163  	}
   164  	return nil
   165  }
   166  
   167  // The alert config for model monitoring.
   168  type ModelMonitoringAlertConfig struct {
   169  	state         protoimpl.MessageState
   170  	sizeCache     protoimpl.SizeCache
   171  	unknownFields protoimpl.UnknownFields
   172  
   173  	// Types that are assignable to Alert:
   174  	//
   175  	//	*ModelMonitoringAlertConfig_EmailAlertConfig_
   176  	Alert isModelMonitoringAlertConfig_Alert `protobuf_oneof:"alert"`
   177  	// Dump the anomalies to Cloud Logging. The anomalies will be put to json
   178  	// payload encoded from proto
   179  	// [ModelMonitoringStatsAnomalies][google.cloud.aiplatform.v1.ModelMonitoringStatsAnomalies].
   180  	// This can be further synced to Pub/Sub or any other services supported by
   181  	// Cloud Logging.
   182  	EnableLogging bool `protobuf:"varint,2,opt,name=enable_logging,json=enableLogging,proto3" json:"enable_logging,omitempty"`
   183  	// Resource names of the NotificationChannels to send alert.
   184  	// Must be of the format
   185  	// `projects/<project_id_or_number>/notificationChannels/<channel_id>`
   186  	NotificationChannels []string `protobuf:"bytes,3,rep,name=notification_channels,json=notificationChannels,proto3" json:"notification_channels,omitempty"`
   187  }
   188  
   189  func (x *ModelMonitoringAlertConfig) Reset() {
   190  	*x = ModelMonitoringAlertConfig{}
   191  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[1]
   192  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   193  	ms.StoreMessageInfo(mi)
   194  }
   195  
   196  func (x *ModelMonitoringAlertConfig) String() string {
   197  	return protoimpl.X.MessageStringOf(x)
   198  }
   199  
   200  func (*ModelMonitoringAlertConfig) ProtoMessage() {}
   201  
   202  func (x *ModelMonitoringAlertConfig) ProtoReflect() protoreflect.Message {
   203  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[1]
   204  	if x != nil {
   205  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   206  		if ms.LoadMessageInfo() == nil {
   207  			ms.StoreMessageInfo(mi)
   208  		}
   209  		return ms
   210  	}
   211  	return mi.MessageOf(x)
   212  }
   213  
   214  // Deprecated: Use ModelMonitoringAlertConfig.ProtoReflect.Descriptor instead.
   215  func (*ModelMonitoringAlertConfig) Descriptor() ([]byte, []int) {
   216  	return file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescGZIP(), []int{1}
   217  }
   218  
   219  func (m *ModelMonitoringAlertConfig) GetAlert() isModelMonitoringAlertConfig_Alert {
   220  	if m != nil {
   221  		return m.Alert
   222  	}
   223  	return nil
   224  }
   225  
   226  func (x *ModelMonitoringAlertConfig) GetEmailAlertConfig() *ModelMonitoringAlertConfig_EmailAlertConfig {
   227  	if x, ok := x.GetAlert().(*ModelMonitoringAlertConfig_EmailAlertConfig_); ok {
   228  		return x.EmailAlertConfig
   229  	}
   230  	return nil
   231  }
   232  
   233  func (x *ModelMonitoringAlertConfig) GetEnableLogging() bool {
   234  	if x != nil {
   235  		return x.EnableLogging
   236  	}
   237  	return false
   238  }
   239  
   240  func (x *ModelMonitoringAlertConfig) GetNotificationChannels() []string {
   241  	if x != nil {
   242  		return x.NotificationChannels
   243  	}
   244  	return nil
   245  }
   246  
   247  type isModelMonitoringAlertConfig_Alert interface {
   248  	isModelMonitoringAlertConfig_Alert()
   249  }
   250  
   251  type ModelMonitoringAlertConfig_EmailAlertConfig_ struct {
   252  	// Email alert config.
   253  	EmailAlertConfig *ModelMonitoringAlertConfig_EmailAlertConfig `protobuf:"bytes,1,opt,name=email_alert_config,json=emailAlertConfig,proto3,oneof"`
   254  }
   255  
   256  func (*ModelMonitoringAlertConfig_EmailAlertConfig_) isModelMonitoringAlertConfig_Alert() {}
   257  
   258  // The config for feature monitoring threshold.
   259  type ThresholdConfig struct {
   260  	state         protoimpl.MessageState
   261  	sizeCache     protoimpl.SizeCache
   262  	unknownFields protoimpl.UnknownFields
   263  
   264  	// Types that are assignable to Threshold:
   265  	//
   266  	//	*ThresholdConfig_Value
   267  	Threshold isThresholdConfig_Threshold `protobuf_oneof:"threshold"`
   268  }
   269  
   270  func (x *ThresholdConfig) Reset() {
   271  	*x = ThresholdConfig{}
   272  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[2]
   273  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   274  	ms.StoreMessageInfo(mi)
   275  }
   276  
   277  func (x *ThresholdConfig) String() string {
   278  	return protoimpl.X.MessageStringOf(x)
   279  }
   280  
   281  func (*ThresholdConfig) ProtoMessage() {}
   282  
   283  func (x *ThresholdConfig) ProtoReflect() protoreflect.Message {
   284  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[2]
   285  	if x != nil {
   286  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   287  		if ms.LoadMessageInfo() == nil {
   288  			ms.StoreMessageInfo(mi)
   289  		}
   290  		return ms
   291  	}
   292  	return mi.MessageOf(x)
   293  }
   294  
   295  // Deprecated: Use ThresholdConfig.ProtoReflect.Descriptor instead.
   296  func (*ThresholdConfig) Descriptor() ([]byte, []int) {
   297  	return file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescGZIP(), []int{2}
   298  }
   299  
   300  func (m *ThresholdConfig) GetThreshold() isThresholdConfig_Threshold {
   301  	if m != nil {
   302  		return m.Threshold
   303  	}
   304  	return nil
   305  }
   306  
   307  func (x *ThresholdConfig) GetValue() float64 {
   308  	if x, ok := x.GetThreshold().(*ThresholdConfig_Value); ok {
   309  		return x.Value
   310  	}
   311  	return 0
   312  }
   313  
   314  type isThresholdConfig_Threshold interface {
   315  	isThresholdConfig_Threshold()
   316  }
   317  
   318  type ThresholdConfig_Value struct {
   319  	// Specify a threshold value that can trigger the alert.
   320  	// If this threshold config is for feature distribution distance:
   321  	//  1. For categorical feature, the distribution distance is calculated by
   322  	//     L-inifinity norm.
   323  	//  2. For numerical feature, the distribution distance is calculated by
   324  	//     Jensen–Shannon divergence.
   325  	//
   326  	// Each feature must have a non-zero threshold if they need to be monitored.
   327  	// Otherwise no alert will be triggered for that feature.
   328  	Value float64 `protobuf:"fixed64,1,opt,name=value,proto3,oneof"`
   329  }
   330  
   331  func (*ThresholdConfig_Value) isThresholdConfig_Threshold() {}
   332  
   333  // Sampling Strategy for logging, can be for both training and prediction
   334  // dataset.
   335  type SamplingStrategy struct {
   336  	state         protoimpl.MessageState
   337  	sizeCache     protoimpl.SizeCache
   338  	unknownFields protoimpl.UnknownFields
   339  
   340  	// Random sample config. Will support more sampling strategies later.
   341  	RandomSampleConfig *SamplingStrategy_RandomSampleConfig `protobuf:"bytes,1,opt,name=random_sample_config,json=randomSampleConfig,proto3" json:"random_sample_config,omitempty"`
   342  }
   343  
   344  func (x *SamplingStrategy) Reset() {
   345  	*x = SamplingStrategy{}
   346  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[3]
   347  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   348  	ms.StoreMessageInfo(mi)
   349  }
   350  
   351  func (x *SamplingStrategy) String() string {
   352  	return protoimpl.X.MessageStringOf(x)
   353  }
   354  
   355  func (*SamplingStrategy) ProtoMessage() {}
   356  
   357  func (x *SamplingStrategy) ProtoReflect() protoreflect.Message {
   358  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[3]
   359  	if x != nil {
   360  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   361  		if ms.LoadMessageInfo() == nil {
   362  			ms.StoreMessageInfo(mi)
   363  		}
   364  		return ms
   365  	}
   366  	return mi.MessageOf(x)
   367  }
   368  
   369  // Deprecated: Use SamplingStrategy.ProtoReflect.Descriptor instead.
   370  func (*SamplingStrategy) Descriptor() ([]byte, []int) {
   371  	return file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescGZIP(), []int{3}
   372  }
   373  
   374  func (x *SamplingStrategy) GetRandomSampleConfig() *SamplingStrategy_RandomSampleConfig {
   375  	if x != nil {
   376  		return x.RandomSampleConfig
   377  	}
   378  	return nil
   379  }
   380  
   381  // Training Dataset information.
   382  type ModelMonitoringObjectiveConfig_TrainingDataset struct {
   383  	state         protoimpl.MessageState
   384  	sizeCache     protoimpl.SizeCache
   385  	unknownFields protoimpl.UnknownFields
   386  
   387  	// Types that are assignable to DataSource:
   388  	//
   389  	//	*ModelMonitoringObjectiveConfig_TrainingDataset_Dataset
   390  	//	*ModelMonitoringObjectiveConfig_TrainingDataset_GcsSource
   391  	//	*ModelMonitoringObjectiveConfig_TrainingDataset_BigquerySource
   392  	DataSource isModelMonitoringObjectiveConfig_TrainingDataset_DataSource `protobuf_oneof:"data_source"`
   393  	// Data format of the dataset, only applicable if the input is from
   394  	// Google Cloud Storage.
   395  	// The possible formats are:
   396  	//
   397  	// "tf-record"
   398  	// The source file is a TFRecord file.
   399  	//
   400  	// "csv"
   401  	// The source file is a CSV file.
   402  	// "jsonl"
   403  	// The source file is a JSONL file.
   404  	DataFormat string `protobuf:"bytes,2,opt,name=data_format,json=dataFormat,proto3" json:"data_format,omitempty"`
   405  	// The target field name the model is to predict.
   406  	// This field will be excluded when doing Predict and (or) Explain for the
   407  	// training data.
   408  	TargetField string `protobuf:"bytes,6,opt,name=target_field,json=targetField,proto3" json:"target_field,omitempty"`
   409  	// Strategy to sample data from Training Dataset.
   410  	// If not set, we process the whole dataset.
   411  	LoggingSamplingStrategy *SamplingStrategy `protobuf:"bytes,7,opt,name=logging_sampling_strategy,json=loggingSamplingStrategy,proto3" json:"logging_sampling_strategy,omitempty"`
   412  }
   413  
   414  func (x *ModelMonitoringObjectiveConfig_TrainingDataset) Reset() {
   415  	*x = ModelMonitoringObjectiveConfig_TrainingDataset{}
   416  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[4]
   417  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   418  	ms.StoreMessageInfo(mi)
   419  }
   420  
   421  func (x *ModelMonitoringObjectiveConfig_TrainingDataset) String() string {
   422  	return protoimpl.X.MessageStringOf(x)
   423  }
   424  
   425  func (*ModelMonitoringObjectiveConfig_TrainingDataset) ProtoMessage() {}
   426  
   427  func (x *ModelMonitoringObjectiveConfig_TrainingDataset) ProtoReflect() protoreflect.Message {
   428  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[4]
   429  	if x != nil {
   430  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   431  		if ms.LoadMessageInfo() == nil {
   432  			ms.StoreMessageInfo(mi)
   433  		}
   434  		return ms
   435  	}
   436  	return mi.MessageOf(x)
   437  }
   438  
   439  // Deprecated: Use ModelMonitoringObjectiveConfig_TrainingDataset.ProtoReflect.Descriptor instead.
   440  func (*ModelMonitoringObjectiveConfig_TrainingDataset) Descriptor() ([]byte, []int) {
   441  	return file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescGZIP(), []int{0, 0}
   442  }
   443  
   444  func (m *ModelMonitoringObjectiveConfig_TrainingDataset) GetDataSource() isModelMonitoringObjectiveConfig_TrainingDataset_DataSource {
   445  	if m != nil {
   446  		return m.DataSource
   447  	}
   448  	return nil
   449  }
   450  
   451  func (x *ModelMonitoringObjectiveConfig_TrainingDataset) GetDataset() string {
   452  	if x, ok := x.GetDataSource().(*ModelMonitoringObjectiveConfig_TrainingDataset_Dataset); ok {
   453  		return x.Dataset
   454  	}
   455  	return ""
   456  }
   457  
   458  func (x *ModelMonitoringObjectiveConfig_TrainingDataset) GetGcsSource() *GcsSource {
   459  	if x, ok := x.GetDataSource().(*ModelMonitoringObjectiveConfig_TrainingDataset_GcsSource); ok {
   460  		return x.GcsSource
   461  	}
   462  	return nil
   463  }
   464  
   465  func (x *ModelMonitoringObjectiveConfig_TrainingDataset) GetBigquerySource() *BigQuerySource {
   466  	if x, ok := x.GetDataSource().(*ModelMonitoringObjectiveConfig_TrainingDataset_BigquerySource); ok {
   467  		return x.BigquerySource
   468  	}
   469  	return nil
   470  }
   471  
   472  func (x *ModelMonitoringObjectiveConfig_TrainingDataset) GetDataFormat() string {
   473  	if x != nil {
   474  		return x.DataFormat
   475  	}
   476  	return ""
   477  }
   478  
   479  func (x *ModelMonitoringObjectiveConfig_TrainingDataset) GetTargetField() string {
   480  	if x != nil {
   481  		return x.TargetField
   482  	}
   483  	return ""
   484  }
   485  
   486  func (x *ModelMonitoringObjectiveConfig_TrainingDataset) GetLoggingSamplingStrategy() *SamplingStrategy {
   487  	if x != nil {
   488  		return x.LoggingSamplingStrategy
   489  	}
   490  	return nil
   491  }
   492  
   493  type isModelMonitoringObjectiveConfig_TrainingDataset_DataSource interface {
   494  	isModelMonitoringObjectiveConfig_TrainingDataset_DataSource()
   495  }
   496  
   497  type ModelMonitoringObjectiveConfig_TrainingDataset_Dataset struct {
   498  	// The resource name of the Dataset used to train this Model.
   499  	Dataset string `protobuf:"bytes,3,opt,name=dataset,proto3,oneof"`
   500  }
   501  
   502  type ModelMonitoringObjectiveConfig_TrainingDataset_GcsSource struct {
   503  	// The Google Cloud Storage uri of the unmanaged Dataset used to train
   504  	// this Model.
   505  	GcsSource *GcsSource `protobuf:"bytes,4,opt,name=gcs_source,json=gcsSource,proto3,oneof"`
   506  }
   507  
   508  type ModelMonitoringObjectiveConfig_TrainingDataset_BigquerySource struct {
   509  	// The BigQuery table of the unmanaged Dataset used to train this
   510  	// Model.
   511  	BigquerySource *BigQuerySource `protobuf:"bytes,5,opt,name=bigquery_source,json=bigquerySource,proto3,oneof"`
   512  }
   513  
   514  func (*ModelMonitoringObjectiveConfig_TrainingDataset_Dataset) isModelMonitoringObjectiveConfig_TrainingDataset_DataSource() {
   515  }
   516  
   517  func (*ModelMonitoringObjectiveConfig_TrainingDataset_GcsSource) isModelMonitoringObjectiveConfig_TrainingDataset_DataSource() {
   518  }
   519  
   520  func (*ModelMonitoringObjectiveConfig_TrainingDataset_BigquerySource) isModelMonitoringObjectiveConfig_TrainingDataset_DataSource() {
   521  }
   522  
   523  // The config for Training & Prediction data skew detection. It specifies the
   524  // training dataset sources and the skew detection parameters.
   525  type ModelMonitoringObjectiveConfig_TrainingPredictionSkewDetectionConfig struct {
   526  	state         protoimpl.MessageState
   527  	sizeCache     protoimpl.SizeCache
   528  	unknownFields protoimpl.UnknownFields
   529  
   530  	// Key is the feature name and value is the threshold. If a feature needs to
   531  	// be monitored for skew, a value threshold must be configured for that
   532  	// feature. The threshold here is against feature distribution distance
   533  	// between the training and prediction feature.
   534  	SkewThresholds map[string]*ThresholdConfig `protobuf:"bytes,1,rep,name=skew_thresholds,json=skewThresholds,proto3" json:"skew_thresholds,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   535  	// Key is the feature name and value is the threshold. The threshold here is
   536  	// against attribution score distance between the training and prediction
   537  	// feature.
   538  	AttributionScoreSkewThresholds map[string]*ThresholdConfig `protobuf:"bytes,2,rep,name=attribution_score_skew_thresholds,json=attributionScoreSkewThresholds,proto3" json:"attribution_score_skew_thresholds,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   539  	// Skew anomaly detection threshold used by all features.
   540  	// When the per-feature thresholds are not set, this field can be used to
   541  	// specify a threshold for all features.
   542  	DefaultSkewThreshold *ThresholdConfig `protobuf:"bytes,6,opt,name=default_skew_threshold,json=defaultSkewThreshold,proto3" json:"default_skew_threshold,omitempty"`
   543  }
   544  
   545  func (x *ModelMonitoringObjectiveConfig_TrainingPredictionSkewDetectionConfig) Reset() {
   546  	*x = ModelMonitoringObjectiveConfig_TrainingPredictionSkewDetectionConfig{}
   547  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[5]
   548  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   549  	ms.StoreMessageInfo(mi)
   550  }
   551  
   552  func (x *ModelMonitoringObjectiveConfig_TrainingPredictionSkewDetectionConfig) String() string {
   553  	return protoimpl.X.MessageStringOf(x)
   554  }
   555  
   556  func (*ModelMonitoringObjectiveConfig_TrainingPredictionSkewDetectionConfig) ProtoMessage() {}
   557  
   558  func (x *ModelMonitoringObjectiveConfig_TrainingPredictionSkewDetectionConfig) ProtoReflect() protoreflect.Message {
   559  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[5]
   560  	if x != nil {
   561  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   562  		if ms.LoadMessageInfo() == nil {
   563  			ms.StoreMessageInfo(mi)
   564  		}
   565  		return ms
   566  	}
   567  	return mi.MessageOf(x)
   568  }
   569  
   570  // Deprecated: Use ModelMonitoringObjectiveConfig_TrainingPredictionSkewDetectionConfig.ProtoReflect.Descriptor instead.
   571  func (*ModelMonitoringObjectiveConfig_TrainingPredictionSkewDetectionConfig) Descriptor() ([]byte, []int) {
   572  	return file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescGZIP(), []int{0, 1}
   573  }
   574  
   575  func (x *ModelMonitoringObjectiveConfig_TrainingPredictionSkewDetectionConfig) GetSkewThresholds() map[string]*ThresholdConfig {
   576  	if x != nil {
   577  		return x.SkewThresholds
   578  	}
   579  	return nil
   580  }
   581  
   582  func (x *ModelMonitoringObjectiveConfig_TrainingPredictionSkewDetectionConfig) GetAttributionScoreSkewThresholds() map[string]*ThresholdConfig {
   583  	if x != nil {
   584  		return x.AttributionScoreSkewThresholds
   585  	}
   586  	return nil
   587  }
   588  
   589  func (x *ModelMonitoringObjectiveConfig_TrainingPredictionSkewDetectionConfig) GetDefaultSkewThreshold() *ThresholdConfig {
   590  	if x != nil {
   591  		return x.DefaultSkewThreshold
   592  	}
   593  	return nil
   594  }
   595  
   596  // The config for Prediction data drift detection.
   597  type ModelMonitoringObjectiveConfig_PredictionDriftDetectionConfig struct {
   598  	state         protoimpl.MessageState
   599  	sizeCache     protoimpl.SizeCache
   600  	unknownFields protoimpl.UnknownFields
   601  
   602  	// Key is the feature name and value is the threshold. If a feature needs to
   603  	// be monitored for drift, a value threshold must be configured for that
   604  	// feature. The threshold here is against feature distribution distance
   605  	// between different time windws.
   606  	DriftThresholds map[string]*ThresholdConfig `protobuf:"bytes,1,rep,name=drift_thresholds,json=driftThresholds,proto3" json:"drift_thresholds,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   607  	// Key is the feature name and value is the threshold. The threshold here is
   608  	// against attribution score distance between different time windows.
   609  	AttributionScoreDriftThresholds map[string]*ThresholdConfig `protobuf:"bytes,2,rep,name=attribution_score_drift_thresholds,json=attributionScoreDriftThresholds,proto3" json:"attribution_score_drift_thresholds,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   610  	// Drift anomaly detection threshold used by all features.
   611  	// When the per-feature thresholds are not set, this field can be used to
   612  	// specify a threshold for all features.
   613  	DefaultDriftThreshold *ThresholdConfig `protobuf:"bytes,5,opt,name=default_drift_threshold,json=defaultDriftThreshold,proto3" json:"default_drift_threshold,omitempty"`
   614  }
   615  
   616  func (x *ModelMonitoringObjectiveConfig_PredictionDriftDetectionConfig) Reset() {
   617  	*x = ModelMonitoringObjectiveConfig_PredictionDriftDetectionConfig{}
   618  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[6]
   619  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   620  	ms.StoreMessageInfo(mi)
   621  }
   622  
   623  func (x *ModelMonitoringObjectiveConfig_PredictionDriftDetectionConfig) String() string {
   624  	return protoimpl.X.MessageStringOf(x)
   625  }
   626  
   627  func (*ModelMonitoringObjectiveConfig_PredictionDriftDetectionConfig) ProtoMessage() {}
   628  
   629  func (x *ModelMonitoringObjectiveConfig_PredictionDriftDetectionConfig) ProtoReflect() protoreflect.Message {
   630  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[6]
   631  	if x != nil {
   632  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   633  		if ms.LoadMessageInfo() == nil {
   634  			ms.StoreMessageInfo(mi)
   635  		}
   636  		return ms
   637  	}
   638  	return mi.MessageOf(x)
   639  }
   640  
   641  // Deprecated: Use ModelMonitoringObjectiveConfig_PredictionDriftDetectionConfig.ProtoReflect.Descriptor instead.
   642  func (*ModelMonitoringObjectiveConfig_PredictionDriftDetectionConfig) Descriptor() ([]byte, []int) {
   643  	return file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescGZIP(), []int{0, 2}
   644  }
   645  
   646  func (x *ModelMonitoringObjectiveConfig_PredictionDriftDetectionConfig) GetDriftThresholds() map[string]*ThresholdConfig {
   647  	if x != nil {
   648  		return x.DriftThresholds
   649  	}
   650  	return nil
   651  }
   652  
   653  func (x *ModelMonitoringObjectiveConfig_PredictionDriftDetectionConfig) GetAttributionScoreDriftThresholds() map[string]*ThresholdConfig {
   654  	if x != nil {
   655  		return x.AttributionScoreDriftThresholds
   656  	}
   657  	return nil
   658  }
   659  
   660  func (x *ModelMonitoringObjectiveConfig_PredictionDriftDetectionConfig) GetDefaultDriftThreshold() *ThresholdConfig {
   661  	if x != nil {
   662  		return x.DefaultDriftThreshold
   663  	}
   664  	return nil
   665  }
   666  
   667  // The config for integrating with Vertex Explainable AI. Only applicable if
   668  // the Model has explanation_spec populated.
   669  type ModelMonitoringObjectiveConfig_ExplanationConfig struct {
   670  	state         protoimpl.MessageState
   671  	sizeCache     protoimpl.SizeCache
   672  	unknownFields protoimpl.UnknownFields
   673  
   674  	// If want to analyze the Vertex Explainable AI feature attribute scores or
   675  	// not. If set to true, Vertex AI will log the feature attributions from
   676  	// explain response and do the skew/drift detection for them.
   677  	EnableFeatureAttributes bool `protobuf:"varint,1,opt,name=enable_feature_attributes,json=enableFeatureAttributes,proto3" json:"enable_feature_attributes,omitempty"`
   678  	// Predictions generated by the BatchPredictionJob using baseline dataset.
   679  	ExplanationBaseline *ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline `protobuf:"bytes,2,opt,name=explanation_baseline,json=explanationBaseline,proto3" json:"explanation_baseline,omitempty"`
   680  }
   681  
   682  func (x *ModelMonitoringObjectiveConfig_ExplanationConfig) Reset() {
   683  	*x = ModelMonitoringObjectiveConfig_ExplanationConfig{}
   684  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[7]
   685  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   686  	ms.StoreMessageInfo(mi)
   687  }
   688  
   689  func (x *ModelMonitoringObjectiveConfig_ExplanationConfig) String() string {
   690  	return protoimpl.X.MessageStringOf(x)
   691  }
   692  
   693  func (*ModelMonitoringObjectiveConfig_ExplanationConfig) ProtoMessage() {}
   694  
   695  func (x *ModelMonitoringObjectiveConfig_ExplanationConfig) ProtoReflect() protoreflect.Message {
   696  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[7]
   697  	if x != nil {
   698  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   699  		if ms.LoadMessageInfo() == nil {
   700  			ms.StoreMessageInfo(mi)
   701  		}
   702  		return ms
   703  	}
   704  	return mi.MessageOf(x)
   705  }
   706  
   707  // Deprecated: Use ModelMonitoringObjectiveConfig_ExplanationConfig.ProtoReflect.Descriptor instead.
   708  func (*ModelMonitoringObjectiveConfig_ExplanationConfig) Descriptor() ([]byte, []int) {
   709  	return file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescGZIP(), []int{0, 3}
   710  }
   711  
   712  func (x *ModelMonitoringObjectiveConfig_ExplanationConfig) GetEnableFeatureAttributes() bool {
   713  	if x != nil {
   714  		return x.EnableFeatureAttributes
   715  	}
   716  	return false
   717  }
   718  
   719  func (x *ModelMonitoringObjectiveConfig_ExplanationConfig) GetExplanationBaseline() *ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline {
   720  	if x != nil {
   721  		return x.ExplanationBaseline
   722  	}
   723  	return nil
   724  }
   725  
   726  // Output from
   727  // [BatchPredictionJob][google.cloud.aiplatform.v1.BatchPredictionJob] for
   728  // Model Monitoring baseline dataset, which can be used to generate baseline
   729  // attribution scores.
   730  type ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline struct {
   731  	state         protoimpl.MessageState
   732  	sizeCache     protoimpl.SizeCache
   733  	unknownFields protoimpl.UnknownFields
   734  
   735  	// The configuration specifying of BatchExplain job output. This can be
   736  	// used to generate the baseline of feature attribution scores.
   737  	//
   738  	// Types that are assignable to Destination:
   739  	//
   740  	//	*ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_Gcs
   741  	//	*ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_Bigquery
   742  	Destination isModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_Destination `protobuf_oneof:"destination"`
   743  	// The storage format of the predictions generated BatchPrediction job.
   744  	PredictionFormat ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat `protobuf:"varint,1,opt,name=prediction_format,json=predictionFormat,proto3,enum=google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat" json:"prediction_format,omitempty"`
   745  }
   746  
   747  func (x *ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline) Reset() {
   748  	*x = ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline{}
   749  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[12]
   750  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   751  	ms.StoreMessageInfo(mi)
   752  }
   753  
   754  func (x *ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline) String() string {
   755  	return protoimpl.X.MessageStringOf(x)
   756  }
   757  
   758  func (*ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline) ProtoMessage() {}
   759  
   760  func (x *ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline) ProtoReflect() protoreflect.Message {
   761  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[12]
   762  	if x != nil {
   763  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   764  		if ms.LoadMessageInfo() == nil {
   765  			ms.StoreMessageInfo(mi)
   766  		}
   767  		return ms
   768  	}
   769  	return mi.MessageOf(x)
   770  }
   771  
   772  // Deprecated: Use ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline.ProtoReflect.Descriptor instead.
   773  func (*ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline) Descriptor() ([]byte, []int) {
   774  	return file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescGZIP(), []int{0, 3, 0}
   775  }
   776  
   777  func (m *ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline) GetDestination() isModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_Destination {
   778  	if m != nil {
   779  		return m.Destination
   780  	}
   781  	return nil
   782  }
   783  
   784  func (x *ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline) GetGcs() *GcsDestination {
   785  	if x, ok := x.GetDestination().(*ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_Gcs); ok {
   786  		return x.Gcs
   787  	}
   788  	return nil
   789  }
   790  
   791  func (x *ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline) GetBigquery() *BigQueryDestination {
   792  	if x, ok := x.GetDestination().(*ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_Bigquery); ok {
   793  		return x.Bigquery
   794  	}
   795  	return nil
   796  }
   797  
   798  func (x *ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline) GetPredictionFormat() ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat {
   799  	if x != nil {
   800  		return x.PredictionFormat
   801  	}
   802  	return ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PREDICTION_FORMAT_UNSPECIFIED
   803  }
   804  
   805  type isModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_Destination interface {
   806  	isModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_Destination()
   807  }
   808  
   809  type ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_Gcs struct {
   810  	// Cloud Storage location for BatchExplain output.
   811  	Gcs *GcsDestination `protobuf:"bytes,2,opt,name=gcs,proto3,oneof"`
   812  }
   813  
   814  type ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_Bigquery struct {
   815  	// BigQuery location for BatchExplain output.
   816  	Bigquery *BigQueryDestination `protobuf:"bytes,3,opt,name=bigquery,proto3,oneof"`
   817  }
   818  
   819  func (*ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_Gcs) isModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_Destination() {
   820  }
   821  
   822  func (*ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_Bigquery) isModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_Destination() {
   823  }
   824  
   825  // The config for email alert.
   826  type ModelMonitoringAlertConfig_EmailAlertConfig struct {
   827  	state         protoimpl.MessageState
   828  	sizeCache     protoimpl.SizeCache
   829  	unknownFields protoimpl.UnknownFields
   830  
   831  	// The email addresses to send the alert.
   832  	UserEmails []string `protobuf:"bytes,1,rep,name=user_emails,json=userEmails,proto3" json:"user_emails,omitempty"`
   833  }
   834  
   835  func (x *ModelMonitoringAlertConfig_EmailAlertConfig) Reset() {
   836  	*x = ModelMonitoringAlertConfig_EmailAlertConfig{}
   837  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[13]
   838  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   839  	ms.StoreMessageInfo(mi)
   840  }
   841  
   842  func (x *ModelMonitoringAlertConfig_EmailAlertConfig) String() string {
   843  	return protoimpl.X.MessageStringOf(x)
   844  }
   845  
   846  func (*ModelMonitoringAlertConfig_EmailAlertConfig) ProtoMessage() {}
   847  
   848  func (x *ModelMonitoringAlertConfig_EmailAlertConfig) ProtoReflect() protoreflect.Message {
   849  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[13]
   850  	if x != nil {
   851  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   852  		if ms.LoadMessageInfo() == nil {
   853  			ms.StoreMessageInfo(mi)
   854  		}
   855  		return ms
   856  	}
   857  	return mi.MessageOf(x)
   858  }
   859  
   860  // Deprecated: Use ModelMonitoringAlertConfig_EmailAlertConfig.ProtoReflect.Descriptor instead.
   861  func (*ModelMonitoringAlertConfig_EmailAlertConfig) Descriptor() ([]byte, []int) {
   862  	return file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescGZIP(), []int{1, 0}
   863  }
   864  
   865  func (x *ModelMonitoringAlertConfig_EmailAlertConfig) GetUserEmails() []string {
   866  	if x != nil {
   867  		return x.UserEmails
   868  	}
   869  	return nil
   870  }
   871  
   872  // Requests are randomly selected.
   873  type SamplingStrategy_RandomSampleConfig struct {
   874  	state         protoimpl.MessageState
   875  	sizeCache     protoimpl.SizeCache
   876  	unknownFields protoimpl.UnknownFields
   877  
   878  	// Sample rate (0, 1]
   879  	SampleRate float64 `protobuf:"fixed64,1,opt,name=sample_rate,json=sampleRate,proto3" json:"sample_rate,omitempty"`
   880  }
   881  
   882  func (x *SamplingStrategy_RandomSampleConfig) Reset() {
   883  	*x = SamplingStrategy_RandomSampleConfig{}
   884  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[14]
   885  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   886  	ms.StoreMessageInfo(mi)
   887  }
   888  
   889  func (x *SamplingStrategy_RandomSampleConfig) String() string {
   890  	return protoimpl.X.MessageStringOf(x)
   891  }
   892  
   893  func (*SamplingStrategy_RandomSampleConfig) ProtoMessage() {}
   894  
   895  func (x *SamplingStrategy_RandomSampleConfig) ProtoReflect() protoreflect.Message {
   896  	mi := &file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[14]
   897  	if x != nil {
   898  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   899  		if ms.LoadMessageInfo() == nil {
   900  			ms.StoreMessageInfo(mi)
   901  		}
   902  		return ms
   903  	}
   904  	return mi.MessageOf(x)
   905  }
   906  
   907  // Deprecated: Use SamplingStrategy_RandomSampleConfig.ProtoReflect.Descriptor instead.
   908  func (*SamplingStrategy_RandomSampleConfig) Descriptor() ([]byte, []int) {
   909  	return file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescGZIP(), []int{3, 0}
   910  }
   911  
   912  func (x *SamplingStrategy_RandomSampleConfig) GetSampleRate() float64 {
   913  	if x != nil {
   914  		return x.SampleRate
   915  	}
   916  	return 0
   917  }
   918  
   919  var File_google_cloud_aiplatform_v1_model_monitoring_proto protoreflect.FileDescriptor
   920  
   921  var file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDesc = []byte{
   922  	0x0a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61,
   923  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x64,
   924  	0x65, 0x6c, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72,
   925  	0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
   926  	0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x1a,
   927  	0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f,
   928  	0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67,
   929  	0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
   930  	0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
   931  	0x8f, 0x19, 0x0a, 0x1e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72,
   932  	0x69, 0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66,
   933  	0x69, 0x67, 0x12, 0x75, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x64,
   934  	0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67,
   935  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
   936  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d,
   937  	0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69,
   938  	0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e,
   939  	0x67, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69,
   940  	0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0xba, 0x01, 0x0a, 0x29, 0x74, 0x72,
   941  	0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f,
   942  	0x6e, 0x5f, 0x73, 0x6b, 0x65, 0x77, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
   943  	0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x60, 0x2e,
   944  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
   945  	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
   946  	0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74,
   947  	0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69,
   948  	0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6b, 0x65, 0x77,
   949  	0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
   950  	0x25, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74,
   951  	0x69, 0x6f, 0x6e, 0x53, 0x6b, 0x65, 0x77, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
   952  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0xa4, 0x01, 0x0a, 0x21, 0x70, 0x72, 0x65, 0x64, 0x69,
   953  	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65,
   954  	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01,
   955  	0x28, 0x0b, 0x32, 0x59, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
   956  	0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e,
   957  	0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4f,
   958  	0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50,
   959  	0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x72, 0x69, 0x66, 0x74, 0x44, 0x65,
   960  	0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x1e, 0x70,
   961  	0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x72, 0x69, 0x66, 0x74, 0x44, 0x65,
   962  	0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x7b, 0x0a,
   963  	0x12, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e,
   964  	0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
   965  	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
   966  	0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69,
   967  	0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43,
   968  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f,
   969  	0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x11, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61,
   970  	0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0xb1, 0x03, 0x0a, 0x0f, 0x54,
   971  	0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x42,
   972  	0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42,
   973  	0x26, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
   974  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
   975  	0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x48, 0x00, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73,
   976  	0x65, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x67, 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
   977  	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
   978  	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
   979  	0x2e, 0x76, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52,
   980  	0x09, 0x67, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x0f, 0x62, 0x69,
   981  	0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20,
   982  	0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
   983  	0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
   984  	0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48,
   985  	0x00, 0x52, 0x0e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63,
   986  	0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
   987  	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d,
   988  	0x61, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x66, 0x69, 0x65,
   989  	0x6c, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
   990  	0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x68, 0x0a, 0x19, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67,
   991  	0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65,
   992  	0x67, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
   993  	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
   994  	0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x74,
   995  	0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x17, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x53,
   996  	0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x42,
   997  	0x0d, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xed,
   998  	0x05, 0x0a, 0x25, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69,
   999  	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6b, 0x65, 0x77, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69,
  1000  	0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x9d, 0x01, 0x0a, 0x0f, 0x73, 0x6b, 0x65,
  1001  	0x77, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03,
  1002  	0x28, 0x0b, 0x32, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
  1003  	0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e,
  1004  	0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4f,
  1005  	0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54,
  1006  	0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f,
  1007  	0x6e, 0x53, 0x6b, 0x65, 0x77, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
  1008  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x6b, 0x65, 0x77, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
  1009  	0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x73, 0x6b, 0x65, 0x77, 0x54, 0x68,
  1010  	0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0xd0, 0x01, 0x0a, 0x21, 0x61, 0x74, 0x74,
  1011  	0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73,
  1012  	0x6b, 0x65, 0x77, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x02,
  1013  	0x20, 0x03, 0x28, 0x0b, 0x32, 0x84, 0x01, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
  1014  	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e,
  1015  	0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69,
  1016  	0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  1017  	0x67, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63,
  1018  	0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6b, 0x65, 0x77, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f,
  1019  	0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
  1020  	0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x6b, 0x65, 0x77, 0x54, 0x68, 0x72, 0x65,
  1021  	0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x1e, 0x61, 0x74, 0x74,
  1022  	0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x6b, 0x65,
  1023  	0x77, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x61, 0x0a, 0x16, 0x64,
  1024  	0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x6b, 0x65, 0x77, 0x5f, 0x74, 0x68, 0x72, 0x65,
  1025  	0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f,
  1026  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61,
  1027  	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
  1028  	0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x14, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
  1029  	0x74, 0x53, 0x6b, 0x65, 0x77, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x1a, 0x6e,
  1030  	0x0a, 0x13, 0x53, 0x6b, 0x65, 0x77, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73,
  1031  	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
  1032  	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x41, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
  1033  	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  1034  	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
  1035  	0x2e, 0x76, 0x31, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x43, 0x6f, 0x6e,
  1036  	0x66, 0x69, 0x67, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x7e,
  1037  	0x0a, 0x23, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f,
  1038  	0x72, 0x65, 0x53, 0x6b, 0x65, 0x77, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73,
  1039  	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
  1040  	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x41, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
  1041  	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  1042  	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
  1043  	0x2e, 0x76, 0x31, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x43, 0x6f, 0x6e,
  1044  	0x66, 0x69, 0x67, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xe1,
  1045  	0x05, 0x0a, 0x1e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x72, 0x69,
  1046  	0x66, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  1047  	0x67, 0x12, 0x99, 0x01, 0x0a, 0x10, 0x64, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65,
  1048  	0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x6e, 0x2e, 0x67,
  1049  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
  1050  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d,
  1051  	0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69,
  1052  	0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74,
  1053  	0x69, 0x6f, 0x6e, 0x44, 0x72, 0x69, 0x66, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f,
  1054  	0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x72, 0x69, 0x66, 0x74, 0x54, 0x68, 0x72,
  1055  	0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x64, 0x72,
  1056  	0x69, 0x66, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0xcb, 0x01,
  1057  	0x0a, 0x22, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x63,
  1058  	0x6f, 0x72, 0x65, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68,
  1059  	0x6f, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x7e, 0x2e, 0x67, 0x6f, 0x6f,
  1060  	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
  1061  	0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e,
  1062  	0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
  1063  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f,
  1064  	0x6e, 0x44, 0x72, 0x69, 0x66, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43,
  1065  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
  1066  	0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x69, 0x66, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73,
  1067  	0x68, 0x6f, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x1f, 0x61, 0x74, 0x74, 0x72,
  1068  	0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x69, 0x66,
  1069  	0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x63, 0x0a, 0x17, 0x64,
  1070  	0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x74, 0x68, 0x72,
  1071  	0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67,
  1072  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
  1073  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68,
  1074  	0x6f, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x15, 0x64, 0x65, 0x66, 0x61, 0x75,
  1075  	0x6c, 0x74, 0x44, 0x72, 0x69, 0x66, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64,
  1076  	0x1a, 0x6f, 0x0a, 0x14, 0x44, 0x72, 0x69, 0x66, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
  1077  	0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
  1078  	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x41, 0x0a, 0x05, 0x76, 0x61,
  1079  	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  1080  	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
  1081  	0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64,
  1082  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
  1083  	0x01, 0x1a, 0x7f, 0x0a, 0x24, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e,
  1084  	0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x72, 0x69, 0x66, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68,
  1085  	0x6f, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
  1086  	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x41, 0x0a, 0x05, 0x76,
  1087  	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f,
  1088  	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
  1089  	0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c,
  1090  	0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
  1091  	0x38, 0x01, 0x1a, 0x8c, 0x05, 0x0a, 0x11, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69,
  1092  	0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x6e, 0x61, 0x62,
  1093  	0x6c, 0x65, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69,
  1094  	0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x65, 0x6e, 0x61,
  1095  	0x62, 0x6c, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
  1096  	0x75, 0x74, 0x65, 0x73, 0x12, 0x93, 0x01, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61,
  1097  	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20,
  1098  	0x01, 0x28, 0x0b, 0x32, 0x60, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
  1099  	0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
  1100  	0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67,
  1101  	0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  1102  	0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  1103  	0x67, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73,
  1104  	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x13, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69,
  1105  	0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x1a, 0xa4, 0x03, 0x0a, 0x13, 0x45,
  1106  	0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x6c, 0x69,
  1107  	0x6e, 0x65, 0x12, 0x3e, 0x0a, 0x03, 0x67, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
  1108  	0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61,
  1109  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x63, 0x73,
  1110  	0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, 0x67,
  1111  	0x63, 0x73, 0x12, 0x4d, 0x0a, 0x08, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03,
  1112  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
  1113  	0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76,
  1114  	0x31, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e,
  1115  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72,
  1116  	0x79, 0x12, 0x9e, 0x01, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  1117  	0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x71, 0x2e,
  1118  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
  1119  	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
  1120  	0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74,
  1121  	0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e,
  1122  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x78, 0x70, 0x6c,
  1123  	0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e,
  1124  	0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74,
  1125  	0x52, 0x10, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d,
  1126  	0x61, 0x74, 0x22, 0x4e, 0x0a, 0x10, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  1127  	0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x52, 0x45, 0x44, 0x49, 0x43,
  1128  	0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50,
  1129  	0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4a, 0x53, 0x4f,
  1130  	0x4e, 0x4c, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x49, 0x47, 0x51, 0x55, 0x45, 0x52, 0x59,
  1131  	0x10, 0x03, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
  1132  	0x6e, 0x22, 0xe3, 0x02, 0x0a, 0x1a, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74,
  1133  	0x6f, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1134  	0x12, 0x77, 0x0a, 0x12, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x5f,
  1135  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67,
  1136  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
  1137  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d,
  1138  	0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f,
  1139  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43,
  1140  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x10, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x6c,
  1141  	0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x61,
  1142  	0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,
  1143  	0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67,
  1144  	0x12, 0x67, 0x0a, 0x15, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  1145  	0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42,
  1146  	0x32, 0xfa, 0x41, 0x2f, 0x0a, 0x2d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67,
  1147  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
  1148  	0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e,
  1149  	0x6e, 0x65, 0x6c, 0x52, 0x14, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
  1150  	0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x1a, 0x33, 0x0a, 0x10, 0x45, 0x6d, 0x61,
  1151  	0x69, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a,
  1152  	0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03,
  1153  	0x28, 0x09, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x07,
  1154  	0x0a, 0x05, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x22, 0x36, 0x0a, 0x0f, 0x54, 0x68, 0x72, 0x65, 0x73,
  1155  	0x68, 0x6f, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x05, 0x76, 0x61,
  1156  	0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c,
  1157  	0x75, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22,
  1158  	0xbc, 0x01, 0x0a, 0x10, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61,
  1159  	0x74, 0x65, 0x67, 0x79, 0x12, 0x71, 0x0a, 0x14, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x5f, 0x73,
  1160  	0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01,
  1161  	0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
  1162  	0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e,
  1163  	0x53, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79,
  1164  	0x2e, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x6e,
  1165  	0x66, 0x69, 0x67, 0x52, 0x12, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x61, 0x6d, 0x70, 0x6c,
  1166  	0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x35, 0x0a, 0x12, 0x52, 0x61, 0x6e, 0x64, 0x6f,
  1167  	0x6d, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a,
  1168  	0x0b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01,
  1169  	0x28, 0x01, 0x52, 0x0a, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x61, 0x74, 0x65, 0x42, 0xc4,
  1170  	0x02, 0xea, 0x41, 0x6f, 0x0a, 0x2d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67,
  1171  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
  1172  	0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e,
  1173  	0x6e, 0x65, 0x6c, 0x12, 0x3e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70,
  1174  	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
  1175  	0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x7b, 0x6e, 0x6f,
  1176  	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e,
  1177  	0x65, 0x6c, 0x7d, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  1178  	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
  1179  	0x2e, 0x76, 0x31, 0x42, 0x14, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f,
  1180  	0x72, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f,
  1181  	0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f,
  1182  	0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76,
  1183  	0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61,
  1184  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f,
  1185  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61,
  1186  	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
  1187  	0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
  1188  	0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a,
  1189  	0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
  1190  	0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  1191  }
  1192  
  1193  var (
  1194  	file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescOnce sync.Once
  1195  	file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescData = file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDesc
  1196  )
  1197  
  1198  func file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescGZIP() []byte {
  1199  	file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescOnce.Do(func() {
  1200  		file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescData)
  1201  	})
  1202  	return file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDescData
  1203  }
  1204  
  1205  var file_google_cloud_aiplatform_v1_model_monitoring_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
  1206  var file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
  1207  var file_google_cloud_aiplatform_v1_model_monitoring_proto_goTypes = []any{
  1208  	(ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_PredictionFormat)(0), // 0: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.ExplanationConfig.ExplanationBaseline.PredictionFormat
  1209  	(*ModelMonitoringObjectiveConfig)(nil),                                                     // 1: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig
  1210  	(*ModelMonitoringAlertConfig)(nil),                                                         // 2: google.cloud.aiplatform.v1.ModelMonitoringAlertConfig
  1211  	(*ThresholdConfig)(nil),                                                                    // 3: google.cloud.aiplatform.v1.ThresholdConfig
  1212  	(*SamplingStrategy)(nil),                                                                   // 4: google.cloud.aiplatform.v1.SamplingStrategy
  1213  	(*ModelMonitoringObjectiveConfig_TrainingDataset)(nil),                                     // 5: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingDataset
  1214  	(*ModelMonitoringObjectiveConfig_TrainingPredictionSkewDetectionConfig)(nil),               // 6: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingPredictionSkewDetectionConfig
  1215  	(*ModelMonitoringObjectiveConfig_PredictionDriftDetectionConfig)(nil),                      // 7: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.PredictionDriftDetectionConfig
  1216  	(*ModelMonitoringObjectiveConfig_ExplanationConfig)(nil),                                   // 8: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.ExplanationConfig
  1217  	nil, // 9: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingPredictionSkewDetectionConfig.SkewThresholdsEntry
  1218  	nil, // 10: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingPredictionSkewDetectionConfig.AttributionScoreSkewThresholdsEntry
  1219  	nil, // 11: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.PredictionDriftDetectionConfig.DriftThresholdsEntry
  1220  	nil, // 12: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.PredictionDriftDetectionConfig.AttributionScoreDriftThresholdsEntry
  1221  	(*ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline)(nil), // 13: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.ExplanationConfig.ExplanationBaseline
  1222  	(*ModelMonitoringAlertConfig_EmailAlertConfig)(nil),                          // 14: google.cloud.aiplatform.v1.ModelMonitoringAlertConfig.EmailAlertConfig
  1223  	(*SamplingStrategy_RandomSampleConfig)(nil),                                  // 15: google.cloud.aiplatform.v1.SamplingStrategy.RandomSampleConfig
  1224  	(*GcsSource)(nil),           // 16: google.cloud.aiplatform.v1.GcsSource
  1225  	(*BigQuerySource)(nil),      // 17: google.cloud.aiplatform.v1.BigQuerySource
  1226  	(*GcsDestination)(nil),      // 18: google.cloud.aiplatform.v1.GcsDestination
  1227  	(*BigQueryDestination)(nil), // 19: google.cloud.aiplatform.v1.BigQueryDestination
  1228  }
  1229  var file_google_cloud_aiplatform_v1_model_monitoring_proto_depIdxs = []int32{
  1230  	5,  // 0: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.training_dataset:type_name -> google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingDataset
  1231  	6,  // 1: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.training_prediction_skew_detection_config:type_name -> google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingPredictionSkewDetectionConfig
  1232  	7,  // 2: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.prediction_drift_detection_config:type_name -> google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.PredictionDriftDetectionConfig
  1233  	8,  // 3: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.explanation_config:type_name -> google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.ExplanationConfig
  1234  	14, // 4: google.cloud.aiplatform.v1.ModelMonitoringAlertConfig.email_alert_config:type_name -> google.cloud.aiplatform.v1.ModelMonitoringAlertConfig.EmailAlertConfig
  1235  	15, // 5: google.cloud.aiplatform.v1.SamplingStrategy.random_sample_config:type_name -> google.cloud.aiplatform.v1.SamplingStrategy.RandomSampleConfig
  1236  	16, // 6: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingDataset.gcs_source:type_name -> google.cloud.aiplatform.v1.GcsSource
  1237  	17, // 7: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingDataset.bigquery_source:type_name -> google.cloud.aiplatform.v1.BigQuerySource
  1238  	4,  // 8: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingDataset.logging_sampling_strategy:type_name -> google.cloud.aiplatform.v1.SamplingStrategy
  1239  	9,  // 9: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingPredictionSkewDetectionConfig.skew_thresholds:type_name -> google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingPredictionSkewDetectionConfig.SkewThresholdsEntry
  1240  	10, // 10: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingPredictionSkewDetectionConfig.attribution_score_skew_thresholds:type_name -> google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingPredictionSkewDetectionConfig.AttributionScoreSkewThresholdsEntry
  1241  	3,  // 11: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingPredictionSkewDetectionConfig.default_skew_threshold:type_name -> google.cloud.aiplatform.v1.ThresholdConfig
  1242  	11, // 12: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.PredictionDriftDetectionConfig.drift_thresholds:type_name -> google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.PredictionDriftDetectionConfig.DriftThresholdsEntry
  1243  	12, // 13: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.PredictionDriftDetectionConfig.attribution_score_drift_thresholds:type_name -> google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.PredictionDriftDetectionConfig.AttributionScoreDriftThresholdsEntry
  1244  	3,  // 14: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.PredictionDriftDetectionConfig.default_drift_threshold:type_name -> google.cloud.aiplatform.v1.ThresholdConfig
  1245  	13, // 15: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.ExplanationConfig.explanation_baseline:type_name -> google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.ExplanationConfig.ExplanationBaseline
  1246  	3,  // 16: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingPredictionSkewDetectionConfig.SkewThresholdsEntry.value:type_name -> google.cloud.aiplatform.v1.ThresholdConfig
  1247  	3,  // 17: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.TrainingPredictionSkewDetectionConfig.AttributionScoreSkewThresholdsEntry.value:type_name -> google.cloud.aiplatform.v1.ThresholdConfig
  1248  	3,  // 18: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.PredictionDriftDetectionConfig.DriftThresholdsEntry.value:type_name -> google.cloud.aiplatform.v1.ThresholdConfig
  1249  	3,  // 19: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.PredictionDriftDetectionConfig.AttributionScoreDriftThresholdsEntry.value:type_name -> google.cloud.aiplatform.v1.ThresholdConfig
  1250  	18, // 20: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.ExplanationConfig.ExplanationBaseline.gcs:type_name -> google.cloud.aiplatform.v1.GcsDestination
  1251  	19, // 21: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.ExplanationConfig.ExplanationBaseline.bigquery:type_name -> google.cloud.aiplatform.v1.BigQueryDestination
  1252  	0,  // 22: google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.ExplanationConfig.ExplanationBaseline.prediction_format:type_name -> google.cloud.aiplatform.v1.ModelMonitoringObjectiveConfig.ExplanationConfig.ExplanationBaseline.PredictionFormat
  1253  	23, // [23:23] is the sub-list for method output_type
  1254  	23, // [23:23] is the sub-list for method input_type
  1255  	23, // [23:23] is the sub-list for extension type_name
  1256  	23, // [23:23] is the sub-list for extension extendee
  1257  	0,  // [0:23] is the sub-list for field type_name
  1258  }
  1259  
  1260  func init() { file_google_cloud_aiplatform_v1_model_monitoring_proto_init() }
  1261  func file_google_cloud_aiplatform_v1_model_monitoring_proto_init() {
  1262  	if File_google_cloud_aiplatform_v1_model_monitoring_proto != nil {
  1263  		return
  1264  	}
  1265  	file_google_cloud_aiplatform_v1_io_proto_init()
  1266  	file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[1].OneofWrappers = []any{
  1267  		(*ModelMonitoringAlertConfig_EmailAlertConfig_)(nil),
  1268  	}
  1269  	file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[2].OneofWrappers = []any{
  1270  		(*ThresholdConfig_Value)(nil),
  1271  	}
  1272  	file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[4].OneofWrappers = []any{
  1273  		(*ModelMonitoringObjectiveConfig_TrainingDataset_Dataset)(nil),
  1274  		(*ModelMonitoringObjectiveConfig_TrainingDataset_GcsSource)(nil),
  1275  		(*ModelMonitoringObjectiveConfig_TrainingDataset_BigquerySource)(nil),
  1276  	}
  1277  	file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes[12].OneofWrappers = []any{
  1278  		(*ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_Gcs)(nil),
  1279  		(*ModelMonitoringObjectiveConfig_ExplanationConfig_ExplanationBaseline_Bigquery)(nil),
  1280  	}
  1281  	type x struct{}
  1282  	out := protoimpl.TypeBuilder{
  1283  		File: protoimpl.DescBuilder{
  1284  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1285  			RawDescriptor: file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDesc,
  1286  			NumEnums:      1,
  1287  			NumMessages:   15,
  1288  			NumExtensions: 0,
  1289  			NumServices:   0,
  1290  		},
  1291  		GoTypes:           file_google_cloud_aiplatform_v1_model_monitoring_proto_goTypes,
  1292  		DependencyIndexes: file_google_cloud_aiplatform_v1_model_monitoring_proto_depIdxs,
  1293  		EnumInfos:         file_google_cloud_aiplatform_v1_model_monitoring_proto_enumTypes,
  1294  		MessageInfos:      file_google_cloud_aiplatform_v1_model_monitoring_proto_msgTypes,
  1295  	}.Build()
  1296  	File_google_cloud_aiplatform_v1_model_monitoring_proto = out.File
  1297  	file_google_cloud_aiplatform_v1_model_monitoring_proto_rawDesc = nil
  1298  	file_google_cloud_aiplatform_v1_model_monitoring_proto_goTypes = nil
  1299  	file_google_cloud_aiplatform_v1_model_monitoring_proto_depIdxs = nil
  1300  }