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  }