cloud.google.com/go/aiplatform@v1.106.0/apiv1beta1/aiplatformpb/feature_monitor.pb.go (about)

     1  // Copyright 2025 Google LLC
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // Code generated by protoc-gen-go. DO NOT EDIT.
    16  // versions:
    17  // 	protoc-gen-go v1.35.2
    18  // 	protoc        v4.25.7
    19  // source: google/cloud/aiplatform/v1beta1/feature_monitor.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  	structpb "google.golang.org/protobuf/types/known/structpb"
    29  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    30  	reflect "reflect"
    31  	sync "sync"
    32  )
    33  
    34  const (
    35  	// Verify that this generated code is sufficiently up-to-date.
    36  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    37  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    38  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    39  )
    40  
    41  // Vertex AI Feature Monitor.
    42  type FeatureMonitor struct {
    43  	state         protoimpl.MessageState
    44  	sizeCache     protoimpl.SizeCache
    45  	unknownFields protoimpl.UnknownFields
    46  
    47  	// Identifier. Name of the FeatureMonitor. Format:
    48  	// `projects/{project}/locations/{location}/featureGroups/{featureGroup}/featureMonitors/{featureMonitor}`
    49  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
    50  	// Output only. Timestamp when this FeatureMonitor was created.
    51  	CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
    52  	// Output only. Timestamp when this FeatureMonitor was last updated.
    53  	UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
    54  	// Optional. Used to perform consistent read-modify-write updates. If not set,
    55  	// a blind "overwrite" update happens.
    56  	Etag string `protobuf:"bytes,4,opt,name=etag,proto3" json:"etag,omitempty"`
    57  	// Optional. The labels with user-defined metadata to organize your
    58  	// FeatureMonitor.
    59  	//
    60  	// Label keys and values can be no longer than 64 characters
    61  	// (Unicode codepoints), can only contain lowercase letters, numeric
    62  	// characters, underscores and dashes. International characters are allowed.
    63  	//
    64  	// See https://goo.gl/xmQnxf for more information on and examples of labels.
    65  	// No more than 64 user labels can be associated with one
    66  	// FeatureMonitor(System labels are excluded)." System reserved label keys
    67  	// are prefixed with "aiplatform.googleapis.com/" and are immutable.
    68  	Labels map[string]string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
    69  	// Optional. Description of the FeatureMonitor.
    70  	Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
    71  	// Required. Schedule config for the FeatureMonitor.
    72  	ScheduleConfig *ScheduleConfig `protobuf:"bytes,7,opt,name=schedule_config,json=scheduleConfig,proto3" json:"schedule_config,omitempty"`
    73  	// Required. Feature selection config for the FeatureMonitor.
    74  	FeatureSelectionConfig *FeatureSelectionConfig `protobuf:"bytes,8,opt,name=feature_selection_config,json=featureSelectionConfig,proto3" json:"feature_selection_config,omitempty"`
    75  }
    76  
    77  func (x *FeatureMonitor) Reset() {
    78  	*x = FeatureMonitor{}
    79  	mi := &file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_msgTypes[0]
    80  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    81  	ms.StoreMessageInfo(mi)
    82  }
    83  
    84  func (x *FeatureMonitor) String() string {
    85  	return protoimpl.X.MessageStringOf(x)
    86  }
    87  
    88  func (*FeatureMonitor) ProtoMessage() {}
    89  
    90  func (x *FeatureMonitor) ProtoReflect() protoreflect.Message {
    91  	mi := &file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_msgTypes[0]
    92  	if x != nil {
    93  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    94  		if ms.LoadMessageInfo() == nil {
    95  			ms.StoreMessageInfo(mi)
    96  		}
    97  		return ms
    98  	}
    99  	return mi.MessageOf(x)
   100  }
   101  
   102  // Deprecated: Use FeatureMonitor.ProtoReflect.Descriptor instead.
   103  func (*FeatureMonitor) Descriptor() ([]byte, []int) {
   104  	return file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDescGZIP(), []int{0}
   105  }
   106  
   107  func (x *FeatureMonitor) GetName() string {
   108  	if x != nil {
   109  		return x.Name
   110  	}
   111  	return ""
   112  }
   113  
   114  func (x *FeatureMonitor) GetCreateTime() *timestamppb.Timestamp {
   115  	if x != nil {
   116  		return x.CreateTime
   117  	}
   118  	return nil
   119  }
   120  
   121  func (x *FeatureMonitor) GetUpdateTime() *timestamppb.Timestamp {
   122  	if x != nil {
   123  		return x.UpdateTime
   124  	}
   125  	return nil
   126  }
   127  
   128  func (x *FeatureMonitor) GetEtag() string {
   129  	if x != nil {
   130  		return x.Etag
   131  	}
   132  	return ""
   133  }
   134  
   135  func (x *FeatureMonitor) GetLabels() map[string]string {
   136  	if x != nil {
   137  		return x.Labels
   138  	}
   139  	return nil
   140  }
   141  
   142  func (x *FeatureMonitor) GetDescription() string {
   143  	if x != nil {
   144  		return x.Description
   145  	}
   146  	return ""
   147  }
   148  
   149  func (x *FeatureMonitor) GetScheduleConfig() *ScheduleConfig {
   150  	if x != nil {
   151  		return x.ScheduleConfig
   152  	}
   153  	return nil
   154  }
   155  
   156  func (x *FeatureMonitor) GetFeatureSelectionConfig() *FeatureSelectionConfig {
   157  	if x != nil {
   158  		return x.FeatureSelectionConfig
   159  	}
   160  	return nil
   161  }
   162  
   163  // Schedule configuration for the FeatureMonitor.
   164  type ScheduleConfig struct {
   165  	state         protoimpl.MessageState
   166  	sizeCache     protoimpl.SizeCache
   167  	unknownFields protoimpl.UnknownFields
   168  
   169  	// Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
   170  	// runs. To explicitly set a timezone to the cron tab, apply a prefix in
   171  	// the cron tab: "CRON_TZ=${IANA_TIME_ZONE}" or "TZ=${IANA_TIME_ZONE}".
   172  	// The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone
   173  	// database. For example, "CRON_TZ=America/New_York 1 * * * *", or
   174  	// "TZ=America/New_York 1 * * * *".
   175  	Cron string `protobuf:"bytes,1,opt,name=cron,proto3" json:"cron,omitempty"`
   176  }
   177  
   178  func (x *ScheduleConfig) Reset() {
   179  	*x = ScheduleConfig{}
   180  	mi := &file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_msgTypes[1]
   181  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   182  	ms.StoreMessageInfo(mi)
   183  }
   184  
   185  func (x *ScheduleConfig) String() string {
   186  	return protoimpl.X.MessageStringOf(x)
   187  }
   188  
   189  func (*ScheduleConfig) ProtoMessage() {}
   190  
   191  func (x *ScheduleConfig) ProtoReflect() protoreflect.Message {
   192  	mi := &file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_msgTypes[1]
   193  	if x != nil {
   194  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   195  		if ms.LoadMessageInfo() == nil {
   196  			ms.StoreMessageInfo(mi)
   197  		}
   198  		return ms
   199  	}
   200  	return mi.MessageOf(x)
   201  }
   202  
   203  // Deprecated: Use ScheduleConfig.ProtoReflect.Descriptor instead.
   204  func (*ScheduleConfig) Descriptor() ([]byte, []int) {
   205  	return file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDescGZIP(), []int{1}
   206  }
   207  
   208  func (x *ScheduleConfig) GetCron() string {
   209  	if x != nil {
   210  		return x.Cron
   211  	}
   212  	return ""
   213  }
   214  
   215  // Feature selection configuration for the FeatureMonitor.
   216  type FeatureSelectionConfig struct {
   217  	state         protoimpl.MessageState
   218  	sizeCache     protoimpl.SizeCache
   219  	unknownFields protoimpl.UnknownFields
   220  
   221  	// Optional. A list of features to be monitored and each feature's drift
   222  	// threshold.
   223  	FeatureConfigs []*FeatureSelectionConfig_FeatureConfig `protobuf:"bytes,1,rep,name=feature_configs,json=featureConfigs,proto3" json:"feature_configs,omitempty"`
   224  }
   225  
   226  func (x *FeatureSelectionConfig) Reset() {
   227  	*x = FeatureSelectionConfig{}
   228  	mi := &file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_msgTypes[2]
   229  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   230  	ms.StoreMessageInfo(mi)
   231  }
   232  
   233  func (x *FeatureSelectionConfig) String() string {
   234  	return protoimpl.X.MessageStringOf(x)
   235  }
   236  
   237  func (*FeatureSelectionConfig) ProtoMessage() {}
   238  
   239  func (x *FeatureSelectionConfig) ProtoReflect() protoreflect.Message {
   240  	mi := &file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_msgTypes[2]
   241  	if x != nil {
   242  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   243  		if ms.LoadMessageInfo() == nil {
   244  			ms.StoreMessageInfo(mi)
   245  		}
   246  		return ms
   247  	}
   248  	return mi.MessageOf(x)
   249  }
   250  
   251  // Deprecated: Use FeatureSelectionConfig.ProtoReflect.Descriptor instead.
   252  func (*FeatureSelectionConfig) Descriptor() ([]byte, []int) {
   253  	return file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDescGZIP(), []int{2}
   254  }
   255  
   256  func (x *FeatureSelectionConfig) GetFeatureConfigs() []*FeatureSelectionConfig_FeatureConfig {
   257  	if x != nil {
   258  		return x.FeatureConfigs
   259  	}
   260  	return nil
   261  }
   262  
   263  // Stats and Anomaly generated by FeatureMonitorJobs. Anomaly only includes
   264  // Drift.
   265  type FeatureStatsAndAnomaly struct {
   266  	state         protoimpl.MessageState
   267  	sizeCache     protoimpl.SizeCache
   268  	unknownFields protoimpl.UnknownFields
   269  
   270  	// Feature Id.
   271  	FeatureId string `protobuf:"bytes,1,opt,name=feature_id,json=featureId,proto3" json:"feature_id,omitempty"`
   272  	// Feature stats. e.g. histogram buckets.
   273  	// In the format of tensorflow.metadata.v0.DatasetFeatureStatistics.
   274  	FeatureStats *structpb.Value `protobuf:"bytes,2,opt,name=feature_stats,json=featureStats,proto3" json:"feature_stats,omitempty"`
   275  	// Deviation from the current stats to baseline stats.
   276  	//  1. For categorical feature, the distribution distance is calculated by
   277  	//     L-inifinity norm.
   278  	//  2. For numerical feature, the distribution distance is calculated by
   279  	//     Jensen–Shannon divergence.
   280  	DistributionDeviation float64 `protobuf:"fixed64,3,opt,name=distribution_deviation,json=distributionDeviation,proto3" json:"distribution_deviation,omitempty"`
   281  	// This is the threshold used when detecting drifts, which is set in
   282  	// FeatureMonitor.FeatureSelectionConfig.FeatureConfig.drift_threshold
   283  	DriftDetectionThreshold float64 `protobuf:"fixed64,4,opt,name=drift_detection_threshold,json=driftDetectionThreshold,proto3" json:"drift_detection_threshold,omitempty"`
   284  	// If set to true, indicates current stats is detected as and comparing
   285  	// with baseline stats.
   286  	DriftDetected bool `protobuf:"varint,5,opt,name=drift_detected,json=driftDetected,proto3" json:"drift_detected,omitempty"`
   287  	// The timestamp we take snapshot for feature values to generate stats.
   288  	StatsTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=stats_time,json=statsTime,proto3" json:"stats_time,omitempty"`
   289  	// The ID of the FeatureMonitorJob that generated this FeatureStatsAndAnomaly.
   290  	FeatureMonitorJobId int64 `protobuf:"varint,7,opt,name=feature_monitor_job_id,json=featureMonitorJobId,proto3" json:"feature_monitor_job_id,omitempty"`
   291  	// The ID of the FeatureMonitor that this FeatureStatsAndAnomaly generated
   292  	// according to.
   293  	FeatureMonitorId string `protobuf:"bytes,8,opt,name=feature_monitor_id,json=featureMonitorId,proto3" json:"feature_monitor_id,omitempty"`
   294  }
   295  
   296  func (x *FeatureStatsAndAnomaly) Reset() {
   297  	*x = FeatureStatsAndAnomaly{}
   298  	mi := &file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_msgTypes[3]
   299  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   300  	ms.StoreMessageInfo(mi)
   301  }
   302  
   303  func (x *FeatureStatsAndAnomaly) String() string {
   304  	return protoimpl.X.MessageStringOf(x)
   305  }
   306  
   307  func (*FeatureStatsAndAnomaly) ProtoMessage() {}
   308  
   309  func (x *FeatureStatsAndAnomaly) ProtoReflect() protoreflect.Message {
   310  	mi := &file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_msgTypes[3]
   311  	if x != nil {
   312  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   313  		if ms.LoadMessageInfo() == nil {
   314  			ms.StoreMessageInfo(mi)
   315  		}
   316  		return ms
   317  	}
   318  	return mi.MessageOf(x)
   319  }
   320  
   321  // Deprecated: Use FeatureStatsAndAnomaly.ProtoReflect.Descriptor instead.
   322  func (*FeatureStatsAndAnomaly) Descriptor() ([]byte, []int) {
   323  	return file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDescGZIP(), []int{3}
   324  }
   325  
   326  func (x *FeatureStatsAndAnomaly) GetFeatureId() string {
   327  	if x != nil {
   328  		return x.FeatureId
   329  	}
   330  	return ""
   331  }
   332  
   333  func (x *FeatureStatsAndAnomaly) GetFeatureStats() *structpb.Value {
   334  	if x != nil {
   335  		return x.FeatureStats
   336  	}
   337  	return nil
   338  }
   339  
   340  func (x *FeatureStatsAndAnomaly) GetDistributionDeviation() float64 {
   341  	if x != nil {
   342  		return x.DistributionDeviation
   343  	}
   344  	return 0
   345  }
   346  
   347  func (x *FeatureStatsAndAnomaly) GetDriftDetectionThreshold() float64 {
   348  	if x != nil {
   349  		return x.DriftDetectionThreshold
   350  	}
   351  	return 0
   352  }
   353  
   354  func (x *FeatureStatsAndAnomaly) GetDriftDetected() bool {
   355  	if x != nil {
   356  		return x.DriftDetected
   357  	}
   358  	return false
   359  }
   360  
   361  func (x *FeatureStatsAndAnomaly) GetStatsTime() *timestamppb.Timestamp {
   362  	if x != nil {
   363  		return x.StatsTime
   364  	}
   365  	return nil
   366  }
   367  
   368  func (x *FeatureStatsAndAnomaly) GetFeatureMonitorJobId() int64 {
   369  	if x != nil {
   370  		return x.FeatureMonitorJobId
   371  	}
   372  	return 0
   373  }
   374  
   375  func (x *FeatureStatsAndAnomaly) GetFeatureMonitorId() string {
   376  	if x != nil {
   377  		return x.FeatureMonitorId
   378  	}
   379  	return ""
   380  }
   381  
   382  // Defines how to select FeatureStatsAndAnomaly to be populated in response.
   383  // If set, retrieves FeatureStatsAndAnomaly generated by FeatureMonitors based
   384  // on this spec.
   385  type FeatureStatsAndAnomalySpec struct {
   386  	state         protoimpl.MessageState
   387  	sizeCache     protoimpl.SizeCache
   388  	unknownFields protoimpl.UnknownFields
   389  
   390  	// Optional. If set, returns the most recent count of stats. Valid value is
   391  	// [0, 100]. If stats_time_range is set, return most recent count of stats
   392  	// within the stats_time_range.
   393  	LatestStatsCount *int32 `protobuf:"varint,1,opt,name=latest_stats_count,json=latestStatsCount,proto3,oneof" json:"latest_stats_count,omitempty"`
   394  	// Optional. If set, return all stats generated between [start_time,
   395  	// end_time). If latest_stats_count is set, return the most recent count of
   396  	// stats within the stats_time_range.
   397  	StatsTimeRange *interval.Interval `protobuf:"bytes,2,opt,name=stats_time_range,json=statsTimeRange,proto3" json:"stats_time_range,omitempty"`
   398  }
   399  
   400  func (x *FeatureStatsAndAnomalySpec) Reset() {
   401  	*x = FeatureStatsAndAnomalySpec{}
   402  	mi := &file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_msgTypes[4]
   403  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   404  	ms.StoreMessageInfo(mi)
   405  }
   406  
   407  func (x *FeatureStatsAndAnomalySpec) String() string {
   408  	return protoimpl.X.MessageStringOf(x)
   409  }
   410  
   411  func (*FeatureStatsAndAnomalySpec) ProtoMessage() {}
   412  
   413  func (x *FeatureStatsAndAnomalySpec) ProtoReflect() protoreflect.Message {
   414  	mi := &file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_msgTypes[4]
   415  	if x != nil {
   416  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   417  		if ms.LoadMessageInfo() == nil {
   418  			ms.StoreMessageInfo(mi)
   419  		}
   420  		return ms
   421  	}
   422  	return mi.MessageOf(x)
   423  }
   424  
   425  // Deprecated: Use FeatureStatsAndAnomalySpec.ProtoReflect.Descriptor instead.
   426  func (*FeatureStatsAndAnomalySpec) Descriptor() ([]byte, []int) {
   427  	return file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDescGZIP(), []int{4}
   428  }
   429  
   430  func (x *FeatureStatsAndAnomalySpec) GetLatestStatsCount() int32 {
   431  	if x != nil && x.LatestStatsCount != nil {
   432  		return *x.LatestStatsCount
   433  	}
   434  	return 0
   435  }
   436  
   437  func (x *FeatureStatsAndAnomalySpec) GetStatsTimeRange() *interval.Interval {
   438  	if x != nil {
   439  		return x.StatsTimeRange
   440  	}
   441  	return nil
   442  }
   443  
   444  // Feature configuration.
   445  type FeatureSelectionConfig_FeatureConfig struct {
   446  	state         protoimpl.MessageState
   447  	sizeCache     protoimpl.SizeCache
   448  	unknownFields protoimpl.UnknownFields
   449  
   450  	// Required. The ID of the feature resource. Final component of the
   451  	// Feature's resource name.
   452  	FeatureId string `protobuf:"bytes,1,opt,name=feature_id,json=featureId,proto3" json:"feature_id,omitempty"`
   453  	// Optional. Drift threshold. If calculated difference with baseline data
   454  	// larger than threshold, it will be considered as the feature has drift. If
   455  	// not present, the threshold will be default to 0.3.
   456  	DriftThreshold float64 `protobuf:"fixed64,2,opt,name=drift_threshold,json=driftThreshold,proto3" json:"drift_threshold,omitempty"`
   457  }
   458  
   459  func (x *FeatureSelectionConfig_FeatureConfig) Reset() {
   460  	*x = FeatureSelectionConfig_FeatureConfig{}
   461  	mi := &file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_msgTypes[6]
   462  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   463  	ms.StoreMessageInfo(mi)
   464  }
   465  
   466  func (x *FeatureSelectionConfig_FeatureConfig) String() string {
   467  	return protoimpl.X.MessageStringOf(x)
   468  }
   469  
   470  func (*FeatureSelectionConfig_FeatureConfig) ProtoMessage() {}
   471  
   472  func (x *FeatureSelectionConfig_FeatureConfig) ProtoReflect() protoreflect.Message {
   473  	mi := &file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_msgTypes[6]
   474  	if x != nil {
   475  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   476  		if ms.LoadMessageInfo() == nil {
   477  			ms.StoreMessageInfo(mi)
   478  		}
   479  		return ms
   480  	}
   481  	return mi.MessageOf(x)
   482  }
   483  
   484  // Deprecated: Use FeatureSelectionConfig_FeatureConfig.ProtoReflect.Descriptor instead.
   485  func (*FeatureSelectionConfig_FeatureConfig) Descriptor() ([]byte, []int) {
   486  	return file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDescGZIP(), []int{2, 0}
   487  }
   488  
   489  func (x *FeatureSelectionConfig_FeatureConfig) GetFeatureId() string {
   490  	if x != nil {
   491  		return x.FeatureId
   492  	}
   493  	return ""
   494  }
   495  
   496  func (x *FeatureSelectionConfig_FeatureConfig) GetDriftThreshold() float64 {
   497  	if x != nil {
   498  		return x.DriftThreshold
   499  	}
   500  	return 0
   501  }
   502  
   503  var File_google_cloud_aiplatform_v1beta1_feature_monitor_proto protoreflect.FileDescriptor
   504  
   505  var file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDesc = []byte{
   506  	0x0a, 0x35, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61,
   507  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
   508  	0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f,
   509  	0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
   510  	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
   511  	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
   512  	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76,
   513  	0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
   514  	0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70,
   515  	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f,
   516  	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f,
   517  	0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
   518  	0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72,
   519  	0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65,
   520  	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
   521  	0x94, 0x06, 0x0a, 0x0e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74,
   522  	0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
   523  	0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63,
   524  	0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
   525  	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
   526  	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41,
   527  	0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a,
   528  	0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
   529  	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
   530  	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03,
   531  	0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12,
   532  	0x17, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
   533  	0x41, 0x01, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x58, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65,
   534  	0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
   535  	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
   536  	0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75,
   537  	0x72, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73,
   538  	0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65,
   539  	0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
   540  	0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65,
   541  	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5d, 0x0a, 0x0f, 0x73, 0x63, 0x68,
   542  	0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01,
   543  	0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
   544  	0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62,
   545  	0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x6e,
   546  	0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75,
   547  	0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x76, 0x0a, 0x18, 0x66, 0x65, 0x61, 0x74,
   548  	0x75, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f,
   549  	0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f,
   550  	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
   551  	0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61,
   552  	0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e,
   553  	0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
   554  	0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
   555  	0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
   556  	0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
   557  	0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
   558  	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0xb8, 0x01, 0xea, 0x41,
   559  	0xb4, 0x01, 0x0a, 0x28, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67,
   560  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65,
   561  	0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x67, 0x70, 0x72,
   562  	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d,
   563  	0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61,
   564  	0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f,
   565  	0x75, 0x70, 0x73, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x67, 0x72, 0x6f,
   566  	0x75, 0x70, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74,
   567  	0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6d, 0x6f, 0x6e,
   568  	0x69, 0x74, 0x6f, 0x72, 0x7d, 0x2a, 0x0f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x6f,
   569  	0x6e, 0x69, 0x74, 0x6f, 0x72, 0x73, 0x32, 0x0e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d,
   570  	0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x22, 0x24, 0x0a, 0x0e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75,
   571  	0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x72, 0x6f, 0x6e,
   572  	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x72, 0x6f, 0x6e, 0x22, 0xf0, 0x01, 0x0a,
   573  	0x16, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
   574  	0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x73, 0x0a, 0x0f, 0x66, 0x65, 0x61, 0x74, 0x75,
   575  	0x72, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
   576  	0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
   577  	0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
   578  	0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
   579  	0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
   580  	0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x66, 0x65,
   581  	0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x1a, 0x61, 0x0a, 0x0d,
   582  	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22, 0x0a,
   583  	0x0a, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
   584  	0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x49,
   585  	0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73,
   586  	0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52,
   587  	0x0e, 0x64, 0x72, 0x69, 0x66, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22,
   588  	0xac, 0x03, 0x0a, 0x16, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73,
   589  	0x41, 0x6e, 0x64, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x65,
   590  	0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
   591  	0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x0d, 0x66, 0x65, 0x61,
   592  	0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
   593  	0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
   594  	0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
   595  	0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x35, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69,
   596  	0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e,
   597  	0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75,
   598  	0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a,
   599  	0x19, 0x64, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
   600  	0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01,
   601  	0x52, 0x17, 0x64, 0x72, 0x69, 0x66, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
   602  	0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x72, 0x69,
   603  	0x66, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28,
   604  	0x08, 0x52, 0x0d, 0x64, 0x72, 0x69, 0x66, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64,
   605  	0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06,
   606  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
   607  	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
   608  	0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x66,
   609  	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x5f, 0x6a,
   610  	0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x66, 0x65, 0x61,
   611  	0x74, 0x75, 0x72, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x4a, 0x6f, 0x62, 0x49, 0x64,
   612  	0x12, 0x2c, 0x0a, 0x12, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6d, 0x6f, 0x6e, 0x69,
   613  	0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x66, 0x65,
   614  	0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0xb1,
   615  	0x01, 0x0a, 0x1a, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41,
   616  	0x6e, 0x64, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x36, 0x0a,
   617  	0x12, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f,
   618  	0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00,
   619  	0x52, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x75,
   620  	0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x74,
   621  	0x69, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
   622  	0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x49, 0x6e,
   623  	0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x74, 0x61,
   624  	0x74, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f,
   625  	0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75,
   626  	0x6e, 0x74, 0x42, 0xea, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
   627  	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
   628  	0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x13, 0x46, 0x65, 0x61, 0x74,
   629  	0x75, 0x72, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50,
   630  	0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
   631  	0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
   632  	0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70,
   633  	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
   634  	0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
   635  	0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
   636  	0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
   637  	0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
   638  	0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f,
   639  	0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c,
   640  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62,
   641  	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
   642  }
   643  
   644  var (
   645  	file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDescOnce sync.Once
   646  	file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDescData = file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDesc
   647  )
   648  
   649  func file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDescGZIP() []byte {
   650  	file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDescOnce.Do(func() {
   651  		file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDescData)
   652  	})
   653  	return file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDescData
   654  }
   655  
   656  var file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
   657  var file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_goTypes = []any{
   658  	(*FeatureMonitor)(nil),                       // 0: google.cloud.aiplatform.v1beta1.FeatureMonitor
   659  	(*ScheduleConfig)(nil),                       // 1: google.cloud.aiplatform.v1beta1.ScheduleConfig
   660  	(*FeatureSelectionConfig)(nil),               // 2: google.cloud.aiplatform.v1beta1.FeatureSelectionConfig
   661  	(*FeatureStatsAndAnomaly)(nil),               // 3: google.cloud.aiplatform.v1beta1.FeatureStatsAndAnomaly
   662  	(*FeatureStatsAndAnomalySpec)(nil),           // 4: google.cloud.aiplatform.v1beta1.FeatureStatsAndAnomalySpec
   663  	nil,                                          // 5: google.cloud.aiplatform.v1beta1.FeatureMonitor.LabelsEntry
   664  	(*FeatureSelectionConfig_FeatureConfig)(nil), // 6: google.cloud.aiplatform.v1beta1.FeatureSelectionConfig.FeatureConfig
   665  	(*timestamppb.Timestamp)(nil),                // 7: google.protobuf.Timestamp
   666  	(*structpb.Value)(nil),                       // 8: google.protobuf.Value
   667  	(*interval.Interval)(nil),                    // 9: google.type.Interval
   668  }
   669  var file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_depIdxs = []int32{
   670  	7, // 0: google.cloud.aiplatform.v1beta1.FeatureMonitor.create_time:type_name -> google.protobuf.Timestamp
   671  	7, // 1: google.cloud.aiplatform.v1beta1.FeatureMonitor.update_time:type_name -> google.protobuf.Timestamp
   672  	5, // 2: google.cloud.aiplatform.v1beta1.FeatureMonitor.labels:type_name -> google.cloud.aiplatform.v1beta1.FeatureMonitor.LabelsEntry
   673  	1, // 3: google.cloud.aiplatform.v1beta1.FeatureMonitor.schedule_config:type_name -> google.cloud.aiplatform.v1beta1.ScheduleConfig
   674  	2, // 4: google.cloud.aiplatform.v1beta1.FeatureMonitor.feature_selection_config:type_name -> google.cloud.aiplatform.v1beta1.FeatureSelectionConfig
   675  	6, // 5: google.cloud.aiplatform.v1beta1.FeatureSelectionConfig.feature_configs:type_name -> google.cloud.aiplatform.v1beta1.FeatureSelectionConfig.FeatureConfig
   676  	8, // 6: google.cloud.aiplatform.v1beta1.FeatureStatsAndAnomaly.feature_stats:type_name -> google.protobuf.Value
   677  	7, // 7: google.cloud.aiplatform.v1beta1.FeatureStatsAndAnomaly.stats_time:type_name -> google.protobuf.Timestamp
   678  	9, // 8: google.cloud.aiplatform.v1beta1.FeatureStatsAndAnomalySpec.stats_time_range:type_name -> google.type.Interval
   679  	9, // [9:9] is the sub-list for method output_type
   680  	9, // [9:9] is the sub-list for method input_type
   681  	9, // [9:9] is the sub-list for extension type_name
   682  	9, // [9:9] is the sub-list for extension extendee
   683  	0, // [0:9] is the sub-list for field type_name
   684  }
   685  
   686  func init() { file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_init() }
   687  func file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_init() {
   688  	if File_google_cloud_aiplatform_v1beta1_feature_monitor_proto != nil {
   689  		return
   690  	}
   691  	file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_msgTypes[4].OneofWrappers = []any{}
   692  	type x struct{}
   693  	out := protoimpl.TypeBuilder{
   694  		File: protoimpl.DescBuilder{
   695  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
   696  			RawDescriptor: file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDesc,
   697  			NumEnums:      0,
   698  			NumMessages:   7,
   699  			NumExtensions: 0,
   700  			NumServices:   0,
   701  		},
   702  		GoTypes:           file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_goTypes,
   703  		DependencyIndexes: file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_depIdxs,
   704  		MessageInfos:      file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_msgTypes,
   705  	}.Build()
   706  	File_google_cloud_aiplatform_v1beta1_feature_monitor_proto = out.File
   707  	file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_rawDesc = nil
   708  	file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_goTypes = nil
   709  	file_google_cloud_aiplatform_v1beta1_feature_monitor_proto_depIdxs = nil
   710  }