cloud.google.com/go/aiplatform@v1.106.0/apiv1beta1/aiplatformpb/study.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/study.proto
    20  
    21  package aiplatformpb
    22  
    23  import (
    24  	_ "google.golang.org/genproto/googleapis/api/annotations"
    25  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    26  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    27  	durationpb "google.golang.org/protobuf/types/known/durationpb"
    28  	structpb "google.golang.org/protobuf/types/known/structpb"
    29  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    30  	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
    31  	reflect "reflect"
    32  	sync "sync"
    33  )
    34  
    35  const (
    36  	// Verify that this generated code is sufficiently up-to-date.
    37  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    38  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    39  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    40  )
    41  
    42  // Describes the Study state.
    43  type Study_State int32
    44  
    45  const (
    46  	// The study state is unspecified.
    47  	Study_STATE_UNSPECIFIED Study_State = 0
    48  	// The study is active.
    49  	Study_ACTIVE Study_State = 1
    50  	// The study is stopped due to an internal error.
    51  	Study_INACTIVE Study_State = 2
    52  	// The study is done when the service exhausts the parameter search space
    53  	// or max_trial_count is reached.
    54  	Study_COMPLETED Study_State = 3
    55  )
    56  
    57  // Enum value maps for Study_State.
    58  var (
    59  	Study_State_name = map[int32]string{
    60  		0: "STATE_UNSPECIFIED",
    61  		1: "ACTIVE",
    62  		2: "INACTIVE",
    63  		3: "COMPLETED",
    64  	}
    65  	Study_State_value = map[string]int32{
    66  		"STATE_UNSPECIFIED": 0,
    67  		"ACTIVE":            1,
    68  		"INACTIVE":          2,
    69  		"COMPLETED":         3,
    70  	}
    71  )
    72  
    73  func (x Study_State) Enum() *Study_State {
    74  	p := new(Study_State)
    75  	*p = x
    76  	return p
    77  }
    78  
    79  func (x Study_State) String() string {
    80  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    81  }
    82  
    83  func (Study_State) Descriptor() protoreflect.EnumDescriptor {
    84  	return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[0].Descriptor()
    85  }
    86  
    87  func (Study_State) Type() protoreflect.EnumType {
    88  	return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[0]
    89  }
    90  
    91  func (x Study_State) Number() protoreflect.EnumNumber {
    92  	return protoreflect.EnumNumber(x)
    93  }
    94  
    95  // Deprecated: Use Study_State.Descriptor instead.
    96  func (Study_State) EnumDescriptor() ([]byte, []int) {
    97  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{0, 0}
    98  }
    99  
   100  // Describes a Trial state.
   101  type Trial_State int32
   102  
   103  const (
   104  	// The Trial state is unspecified.
   105  	Trial_STATE_UNSPECIFIED Trial_State = 0
   106  	// Indicates that a specific Trial has been requested, but it has not yet
   107  	// been suggested by the service.
   108  	Trial_REQUESTED Trial_State = 1
   109  	// Indicates that the Trial has been suggested.
   110  	Trial_ACTIVE Trial_State = 2
   111  	// Indicates that the Trial should stop according to the service.
   112  	Trial_STOPPING Trial_State = 3
   113  	// Indicates that the Trial is completed successfully.
   114  	Trial_SUCCEEDED Trial_State = 4
   115  	// Indicates that the Trial should not be attempted again.
   116  	// The service will set a Trial to INFEASIBLE when it's done but missing
   117  	// the final_measurement.
   118  	Trial_INFEASIBLE Trial_State = 5
   119  )
   120  
   121  // Enum value maps for Trial_State.
   122  var (
   123  	Trial_State_name = map[int32]string{
   124  		0: "STATE_UNSPECIFIED",
   125  		1: "REQUESTED",
   126  		2: "ACTIVE",
   127  		3: "STOPPING",
   128  		4: "SUCCEEDED",
   129  		5: "INFEASIBLE",
   130  	}
   131  	Trial_State_value = map[string]int32{
   132  		"STATE_UNSPECIFIED": 0,
   133  		"REQUESTED":         1,
   134  		"ACTIVE":            2,
   135  		"STOPPING":          3,
   136  		"SUCCEEDED":         4,
   137  		"INFEASIBLE":        5,
   138  	}
   139  )
   140  
   141  func (x Trial_State) Enum() *Trial_State {
   142  	p := new(Trial_State)
   143  	*p = x
   144  	return p
   145  }
   146  
   147  func (x Trial_State) String() string {
   148  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   149  }
   150  
   151  func (Trial_State) Descriptor() protoreflect.EnumDescriptor {
   152  	return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[1].Descriptor()
   153  }
   154  
   155  func (Trial_State) Type() protoreflect.EnumType {
   156  	return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[1]
   157  }
   158  
   159  func (x Trial_State) Number() protoreflect.EnumNumber {
   160  	return protoreflect.EnumNumber(x)
   161  }
   162  
   163  // Deprecated: Use Trial_State.Descriptor instead.
   164  func (Trial_State) EnumDescriptor() ([]byte, []int) {
   165  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{1, 0}
   166  }
   167  
   168  // The available search algorithms for the Study.
   169  type StudySpec_Algorithm int32
   170  
   171  const (
   172  	// The default algorithm used by Vertex AI for [hyperparameter
   173  	// tuning](https://cloud.google.com/vertex-ai/docs/training/hyperparameter-tuning-overview)
   174  	// and [Vertex AI Vizier](https://cloud.google.com/vertex-ai/docs/vizier).
   175  	StudySpec_ALGORITHM_UNSPECIFIED StudySpec_Algorithm = 0
   176  	// Simple grid search within the feasible space. To use grid search,
   177  	// all parameters must be `INTEGER`, `CATEGORICAL`, or `DISCRETE`.
   178  	StudySpec_GRID_SEARCH StudySpec_Algorithm = 2
   179  	// Simple random search within the feasible space.
   180  	StudySpec_RANDOM_SEARCH StudySpec_Algorithm = 3
   181  )
   182  
   183  // Enum value maps for StudySpec_Algorithm.
   184  var (
   185  	StudySpec_Algorithm_name = map[int32]string{
   186  		0: "ALGORITHM_UNSPECIFIED",
   187  		2: "GRID_SEARCH",
   188  		3: "RANDOM_SEARCH",
   189  	}
   190  	StudySpec_Algorithm_value = map[string]int32{
   191  		"ALGORITHM_UNSPECIFIED": 0,
   192  		"GRID_SEARCH":           2,
   193  		"RANDOM_SEARCH":         3,
   194  	}
   195  )
   196  
   197  func (x StudySpec_Algorithm) Enum() *StudySpec_Algorithm {
   198  	p := new(StudySpec_Algorithm)
   199  	*p = x
   200  	return p
   201  }
   202  
   203  func (x StudySpec_Algorithm) String() string {
   204  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   205  }
   206  
   207  func (StudySpec_Algorithm) Descriptor() protoreflect.EnumDescriptor {
   208  	return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[2].Descriptor()
   209  }
   210  
   211  func (StudySpec_Algorithm) Type() protoreflect.EnumType {
   212  	return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[2]
   213  }
   214  
   215  func (x StudySpec_Algorithm) Number() protoreflect.EnumNumber {
   216  	return protoreflect.EnumNumber(x)
   217  }
   218  
   219  // Deprecated: Use StudySpec_Algorithm.Descriptor instead.
   220  func (StudySpec_Algorithm) EnumDescriptor() ([]byte, []int) {
   221  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 0}
   222  }
   223  
   224  // Describes the noise level of the repeated observations.
   225  //
   226  // "Noisy" means that the repeated observations with the same Trial parameters
   227  // may lead to different metric evaluations.
   228  type StudySpec_ObservationNoise int32
   229  
   230  const (
   231  	// The default noise level chosen by Vertex AI.
   232  	StudySpec_OBSERVATION_NOISE_UNSPECIFIED StudySpec_ObservationNoise = 0
   233  	// Vertex AI assumes that the objective function is (nearly)
   234  	// perfectly reproducible, and will never repeat the same Trial
   235  	// parameters.
   236  	StudySpec_LOW StudySpec_ObservationNoise = 1
   237  	// Vertex AI will estimate the amount of noise in metric
   238  	// evaluations, it may repeat the same Trial parameters more than once.
   239  	StudySpec_HIGH StudySpec_ObservationNoise = 2
   240  )
   241  
   242  // Enum value maps for StudySpec_ObservationNoise.
   243  var (
   244  	StudySpec_ObservationNoise_name = map[int32]string{
   245  		0: "OBSERVATION_NOISE_UNSPECIFIED",
   246  		1: "LOW",
   247  		2: "HIGH",
   248  	}
   249  	StudySpec_ObservationNoise_value = map[string]int32{
   250  		"OBSERVATION_NOISE_UNSPECIFIED": 0,
   251  		"LOW":                           1,
   252  		"HIGH":                          2,
   253  	}
   254  )
   255  
   256  func (x StudySpec_ObservationNoise) Enum() *StudySpec_ObservationNoise {
   257  	p := new(StudySpec_ObservationNoise)
   258  	*p = x
   259  	return p
   260  }
   261  
   262  func (x StudySpec_ObservationNoise) String() string {
   263  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   264  }
   265  
   266  func (StudySpec_ObservationNoise) Descriptor() protoreflect.EnumDescriptor {
   267  	return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[3].Descriptor()
   268  }
   269  
   270  func (StudySpec_ObservationNoise) Type() protoreflect.EnumType {
   271  	return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[3]
   272  }
   273  
   274  func (x StudySpec_ObservationNoise) Number() protoreflect.EnumNumber {
   275  	return protoreflect.EnumNumber(x)
   276  }
   277  
   278  // Deprecated: Use StudySpec_ObservationNoise.Descriptor instead.
   279  func (StudySpec_ObservationNoise) EnumDescriptor() ([]byte, []int) {
   280  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1}
   281  }
   282  
   283  // This indicates which measurement to use if/when the service automatically
   284  // selects the final measurement from previously reported intermediate
   285  // measurements. Choose this based on two considerations:
   286  //
   287  //	A) Do you expect your measurements to monotonically improve?
   288  //	   If so, choose LAST_MEASUREMENT. On the other hand, if you're in a
   289  //	   situation where your system can "over-train" and you expect the
   290  //	   performance to get better for a while but then start declining,
   291  //	   choose BEST_MEASUREMENT.
   292  //	B) Are your measurements significantly noisy and/or irreproducible?
   293  //	   If so, BEST_MEASUREMENT will tend to be over-optimistic, and it
   294  //	   may be better to choose LAST_MEASUREMENT.
   295  //	If both or neither of (A) and (B) apply, it doesn't matter which
   296  //	selection type is chosen.
   297  type StudySpec_MeasurementSelectionType int32
   298  
   299  const (
   300  	// Will be treated as LAST_MEASUREMENT.
   301  	StudySpec_MEASUREMENT_SELECTION_TYPE_UNSPECIFIED StudySpec_MeasurementSelectionType = 0
   302  	// Use the last measurement reported.
   303  	StudySpec_LAST_MEASUREMENT StudySpec_MeasurementSelectionType = 1
   304  	// Use the best measurement reported.
   305  	StudySpec_BEST_MEASUREMENT StudySpec_MeasurementSelectionType = 2
   306  )
   307  
   308  // Enum value maps for StudySpec_MeasurementSelectionType.
   309  var (
   310  	StudySpec_MeasurementSelectionType_name = map[int32]string{
   311  		0: "MEASUREMENT_SELECTION_TYPE_UNSPECIFIED",
   312  		1: "LAST_MEASUREMENT",
   313  		2: "BEST_MEASUREMENT",
   314  	}
   315  	StudySpec_MeasurementSelectionType_value = map[string]int32{
   316  		"MEASUREMENT_SELECTION_TYPE_UNSPECIFIED": 0,
   317  		"LAST_MEASUREMENT":                       1,
   318  		"BEST_MEASUREMENT":                       2,
   319  	}
   320  )
   321  
   322  func (x StudySpec_MeasurementSelectionType) Enum() *StudySpec_MeasurementSelectionType {
   323  	p := new(StudySpec_MeasurementSelectionType)
   324  	*p = x
   325  	return p
   326  }
   327  
   328  func (x StudySpec_MeasurementSelectionType) String() string {
   329  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   330  }
   331  
   332  func (StudySpec_MeasurementSelectionType) Descriptor() protoreflect.EnumDescriptor {
   333  	return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[4].Descriptor()
   334  }
   335  
   336  func (StudySpec_MeasurementSelectionType) Type() protoreflect.EnumType {
   337  	return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[4]
   338  }
   339  
   340  func (x StudySpec_MeasurementSelectionType) Number() protoreflect.EnumNumber {
   341  	return protoreflect.EnumNumber(x)
   342  }
   343  
   344  // Deprecated: Use StudySpec_MeasurementSelectionType.Descriptor instead.
   345  func (StudySpec_MeasurementSelectionType) EnumDescriptor() ([]byte, []int) {
   346  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 2}
   347  }
   348  
   349  // The available types of optimization goals.
   350  type StudySpec_MetricSpec_GoalType int32
   351  
   352  const (
   353  	// Goal Type will default to maximize.
   354  	StudySpec_MetricSpec_GOAL_TYPE_UNSPECIFIED StudySpec_MetricSpec_GoalType = 0
   355  	// Maximize the goal metric.
   356  	StudySpec_MetricSpec_MAXIMIZE StudySpec_MetricSpec_GoalType = 1
   357  	// Minimize the goal metric.
   358  	StudySpec_MetricSpec_MINIMIZE StudySpec_MetricSpec_GoalType = 2
   359  )
   360  
   361  // Enum value maps for StudySpec_MetricSpec_GoalType.
   362  var (
   363  	StudySpec_MetricSpec_GoalType_name = map[int32]string{
   364  		0: "GOAL_TYPE_UNSPECIFIED",
   365  		1: "MAXIMIZE",
   366  		2: "MINIMIZE",
   367  	}
   368  	StudySpec_MetricSpec_GoalType_value = map[string]int32{
   369  		"GOAL_TYPE_UNSPECIFIED": 0,
   370  		"MAXIMIZE":              1,
   371  		"MINIMIZE":              2,
   372  	}
   373  )
   374  
   375  func (x StudySpec_MetricSpec_GoalType) Enum() *StudySpec_MetricSpec_GoalType {
   376  	p := new(StudySpec_MetricSpec_GoalType)
   377  	*p = x
   378  	return p
   379  }
   380  
   381  func (x StudySpec_MetricSpec_GoalType) String() string {
   382  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   383  }
   384  
   385  func (StudySpec_MetricSpec_GoalType) Descriptor() protoreflect.EnumDescriptor {
   386  	return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[5].Descriptor()
   387  }
   388  
   389  func (StudySpec_MetricSpec_GoalType) Type() protoreflect.EnumType {
   390  	return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[5]
   391  }
   392  
   393  func (x StudySpec_MetricSpec_GoalType) Number() protoreflect.EnumNumber {
   394  	return protoreflect.EnumNumber(x)
   395  }
   396  
   397  // Deprecated: Use StudySpec_MetricSpec_GoalType.Descriptor instead.
   398  func (StudySpec_MetricSpec_GoalType) EnumDescriptor() ([]byte, []int) {
   399  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 0, 0}
   400  }
   401  
   402  // The type of scaling that should be applied to this parameter.
   403  type StudySpec_ParameterSpec_ScaleType int32
   404  
   405  const (
   406  	// By default, no scaling is applied.
   407  	StudySpec_ParameterSpec_SCALE_TYPE_UNSPECIFIED StudySpec_ParameterSpec_ScaleType = 0
   408  	// Scales the feasible space to (0, 1) linearly.
   409  	StudySpec_ParameterSpec_UNIT_LINEAR_SCALE StudySpec_ParameterSpec_ScaleType = 1
   410  	// Scales the feasible space logarithmically to (0, 1). The entire
   411  	// feasible space must be strictly positive.
   412  	StudySpec_ParameterSpec_UNIT_LOG_SCALE StudySpec_ParameterSpec_ScaleType = 2
   413  	// Scales the feasible space "reverse" logarithmically to (0, 1). The
   414  	// result is that values close to the top of the feasible space are spread
   415  	// out more than points near the bottom. The entire feasible space must be
   416  	// strictly positive.
   417  	StudySpec_ParameterSpec_UNIT_REVERSE_LOG_SCALE StudySpec_ParameterSpec_ScaleType = 3
   418  )
   419  
   420  // Enum value maps for StudySpec_ParameterSpec_ScaleType.
   421  var (
   422  	StudySpec_ParameterSpec_ScaleType_name = map[int32]string{
   423  		0: "SCALE_TYPE_UNSPECIFIED",
   424  		1: "UNIT_LINEAR_SCALE",
   425  		2: "UNIT_LOG_SCALE",
   426  		3: "UNIT_REVERSE_LOG_SCALE",
   427  	}
   428  	StudySpec_ParameterSpec_ScaleType_value = map[string]int32{
   429  		"SCALE_TYPE_UNSPECIFIED": 0,
   430  		"UNIT_LINEAR_SCALE":      1,
   431  		"UNIT_LOG_SCALE":         2,
   432  		"UNIT_REVERSE_LOG_SCALE": 3,
   433  	}
   434  )
   435  
   436  func (x StudySpec_ParameterSpec_ScaleType) Enum() *StudySpec_ParameterSpec_ScaleType {
   437  	p := new(StudySpec_ParameterSpec_ScaleType)
   438  	*p = x
   439  	return p
   440  }
   441  
   442  func (x StudySpec_ParameterSpec_ScaleType) String() string {
   443  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   444  }
   445  
   446  func (StudySpec_ParameterSpec_ScaleType) Descriptor() protoreflect.EnumDescriptor {
   447  	return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[6].Descriptor()
   448  }
   449  
   450  func (StudySpec_ParameterSpec_ScaleType) Type() protoreflect.EnumType {
   451  	return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[6]
   452  }
   453  
   454  func (x StudySpec_ParameterSpec_ScaleType) Number() protoreflect.EnumNumber {
   455  	return protoreflect.EnumNumber(x)
   456  }
   457  
   458  // Deprecated: Use StudySpec_ParameterSpec_ScaleType.Descriptor instead.
   459  func (StudySpec_ParameterSpec_ScaleType) EnumDescriptor() ([]byte, []int) {
   460  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 0}
   461  }
   462  
   463  // A message representing a Study.
   464  type Study struct {
   465  	state         protoimpl.MessageState
   466  	sizeCache     protoimpl.SizeCache
   467  	unknownFields protoimpl.UnknownFields
   468  
   469  	// Output only. The name of a study. The study's globally unique identifier.
   470  	// Format: `projects/{project}/locations/{location}/studies/{study}`
   471  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   472  	// Required. Describes the Study, default value is empty string.
   473  	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
   474  	// Required. Configuration of the Study.
   475  	StudySpec *StudySpec `protobuf:"bytes,3,opt,name=study_spec,json=studySpec,proto3" json:"study_spec,omitempty"`
   476  	// Output only. The detailed state of a Study.
   477  	State Study_State `protobuf:"varint,4,opt,name=state,proto3,enum=google.cloud.aiplatform.v1beta1.Study_State" json:"state,omitempty"`
   478  	// Output only. Time at which the study was created.
   479  	CreateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
   480  	// Output only. A human readable reason why the Study is inactive.
   481  	// This should be empty if a study is ACTIVE or COMPLETED.
   482  	InactiveReason string `protobuf:"bytes,6,opt,name=inactive_reason,json=inactiveReason,proto3" json:"inactive_reason,omitempty"`
   483  }
   484  
   485  func (x *Study) Reset() {
   486  	*x = Study{}
   487  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[0]
   488  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   489  	ms.StoreMessageInfo(mi)
   490  }
   491  
   492  func (x *Study) String() string {
   493  	return protoimpl.X.MessageStringOf(x)
   494  }
   495  
   496  func (*Study) ProtoMessage() {}
   497  
   498  func (x *Study) ProtoReflect() protoreflect.Message {
   499  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[0]
   500  	if x != nil {
   501  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   502  		if ms.LoadMessageInfo() == nil {
   503  			ms.StoreMessageInfo(mi)
   504  		}
   505  		return ms
   506  	}
   507  	return mi.MessageOf(x)
   508  }
   509  
   510  // Deprecated: Use Study.ProtoReflect.Descriptor instead.
   511  func (*Study) Descriptor() ([]byte, []int) {
   512  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{0}
   513  }
   514  
   515  func (x *Study) GetName() string {
   516  	if x != nil {
   517  		return x.Name
   518  	}
   519  	return ""
   520  }
   521  
   522  func (x *Study) GetDisplayName() string {
   523  	if x != nil {
   524  		return x.DisplayName
   525  	}
   526  	return ""
   527  }
   528  
   529  func (x *Study) GetStudySpec() *StudySpec {
   530  	if x != nil {
   531  		return x.StudySpec
   532  	}
   533  	return nil
   534  }
   535  
   536  func (x *Study) GetState() Study_State {
   537  	if x != nil {
   538  		return x.State
   539  	}
   540  	return Study_STATE_UNSPECIFIED
   541  }
   542  
   543  func (x *Study) GetCreateTime() *timestamppb.Timestamp {
   544  	if x != nil {
   545  		return x.CreateTime
   546  	}
   547  	return nil
   548  }
   549  
   550  func (x *Study) GetInactiveReason() string {
   551  	if x != nil {
   552  		return x.InactiveReason
   553  	}
   554  	return ""
   555  }
   556  
   557  // A message representing a Trial. A Trial contains a unique set of Parameters
   558  // that has been or will be evaluated, along with the objective metrics got by
   559  // running the Trial.
   560  type Trial struct {
   561  	state         protoimpl.MessageState
   562  	sizeCache     protoimpl.SizeCache
   563  	unknownFields protoimpl.UnknownFields
   564  
   565  	// Output only. Resource name of the Trial assigned by the service.
   566  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   567  	// Output only. The identifier of the Trial assigned by the service.
   568  	Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
   569  	// Output only. The detailed state of the Trial.
   570  	State Trial_State `protobuf:"varint,3,opt,name=state,proto3,enum=google.cloud.aiplatform.v1beta1.Trial_State" json:"state,omitempty"`
   571  	// Output only. The parameters of the Trial.
   572  	Parameters []*Trial_Parameter `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty"`
   573  	// Output only. The final measurement containing the objective value.
   574  	FinalMeasurement *Measurement `protobuf:"bytes,5,opt,name=final_measurement,json=finalMeasurement,proto3" json:"final_measurement,omitempty"`
   575  	// Output only. A list of measurements that are strictly lexicographically
   576  	// ordered by their induced tuples (steps, elapsed_duration).
   577  	// These are used for early stopping computations.
   578  	Measurements []*Measurement `protobuf:"bytes,6,rep,name=measurements,proto3" json:"measurements,omitempty"`
   579  	// Output only. Time when the Trial was started.
   580  	StartTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
   581  	// Output only. Time when the Trial's status changed to `SUCCEEDED` or
   582  	// `INFEASIBLE`.
   583  	EndTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
   584  	// Output only. The identifier of the client that originally requested this
   585  	// Trial. Each client is identified by a unique client_id. When a client asks
   586  	// for a suggestion, Vertex AI Vizier will assign it a Trial. The client
   587  	// should evaluate the Trial, complete it, and report back to Vertex AI
   588  	// Vizier. If suggestion is asked again by same client_id before the Trial is
   589  	// completed, the same Trial will be returned. Multiple clients with
   590  	// different client_ids can ask for suggestions simultaneously, each of them
   591  	// will get their own Trial.
   592  	ClientId string `protobuf:"bytes,9,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
   593  	// Output only. A human readable string describing why the Trial is
   594  	// infeasible. This is set only if Trial state is `INFEASIBLE`.
   595  	InfeasibleReason string `protobuf:"bytes,10,opt,name=infeasible_reason,json=infeasibleReason,proto3" json:"infeasible_reason,omitempty"`
   596  	// Output only. The CustomJob name linked to the Trial.
   597  	// It's set for a HyperparameterTuningJob's Trial.
   598  	CustomJob string `protobuf:"bytes,11,opt,name=custom_job,json=customJob,proto3" json:"custom_job,omitempty"`
   599  	// Output only. URIs for accessing [interactive
   600  	// shells](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell)
   601  	// (one URI for each training node). Only available if this trial is part of
   602  	// a
   603  	// [HyperparameterTuningJob][google.cloud.aiplatform.v1beta1.HyperparameterTuningJob]
   604  	// and the job's
   605  	// [trial_job_spec.enable_web_access][google.cloud.aiplatform.v1beta1.CustomJobSpec.enable_web_access]
   606  	// field is `true`.
   607  	//
   608  	// The keys are names of each node used for the trial; for example,
   609  	// `workerpool0-0` for the primary node, `workerpool1-0` for the first node in
   610  	// the second worker pool, and `workerpool1-1` for the second node in the
   611  	// second worker pool.
   612  	//
   613  	// The values are the URIs for each node's interactive shell.
   614  	WebAccessUris map[string]string `protobuf:"bytes,12,rep,name=web_access_uris,json=webAccessUris,proto3" json:"web_access_uris,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   615  }
   616  
   617  func (x *Trial) Reset() {
   618  	*x = Trial{}
   619  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[1]
   620  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   621  	ms.StoreMessageInfo(mi)
   622  }
   623  
   624  func (x *Trial) String() string {
   625  	return protoimpl.X.MessageStringOf(x)
   626  }
   627  
   628  func (*Trial) ProtoMessage() {}
   629  
   630  func (x *Trial) ProtoReflect() protoreflect.Message {
   631  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[1]
   632  	if x != nil {
   633  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   634  		if ms.LoadMessageInfo() == nil {
   635  			ms.StoreMessageInfo(mi)
   636  		}
   637  		return ms
   638  	}
   639  	return mi.MessageOf(x)
   640  }
   641  
   642  // Deprecated: Use Trial.ProtoReflect.Descriptor instead.
   643  func (*Trial) Descriptor() ([]byte, []int) {
   644  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{1}
   645  }
   646  
   647  func (x *Trial) GetName() string {
   648  	if x != nil {
   649  		return x.Name
   650  	}
   651  	return ""
   652  }
   653  
   654  func (x *Trial) GetId() string {
   655  	if x != nil {
   656  		return x.Id
   657  	}
   658  	return ""
   659  }
   660  
   661  func (x *Trial) GetState() Trial_State {
   662  	if x != nil {
   663  		return x.State
   664  	}
   665  	return Trial_STATE_UNSPECIFIED
   666  }
   667  
   668  func (x *Trial) GetParameters() []*Trial_Parameter {
   669  	if x != nil {
   670  		return x.Parameters
   671  	}
   672  	return nil
   673  }
   674  
   675  func (x *Trial) GetFinalMeasurement() *Measurement {
   676  	if x != nil {
   677  		return x.FinalMeasurement
   678  	}
   679  	return nil
   680  }
   681  
   682  func (x *Trial) GetMeasurements() []*Measurement {
   683  	if x != nil {
   684  		return x.Measurements
   685  	}
   686  	return nil
   687  }
   688  
   689  func (x *Trial) GetStartTime() *timestamppb.Timestamp {
   690  	if x != nil {
   691  		return x.StartTime
   692  	}
   693  	return nil
   694  }
   695  
   696  func (x *Trial) GetEndTime() *timestamppb.Timestamp {
   697  	if x != nil {
   698  		return x.EndTime
   699  	}
   700  	return nil
   701  }
   702  
   703  func (x *Trial) GetClientId() string {
   704  	if x != nil {
   705  		return x.ClientId
   706  	}
   707  	return ""
   708  }
   709  
   710  func (x *Trial) GetInfeasibleReason() string {
   711  	if x != nil {
   712  		return x.InfeasibleReason
   713  	}
   714  	return ""
   715  }
   716  
   717  func (x *Trial) GetCustomJob() string {
   718  	if x != nil {
   719  		return x.CustomJob
   720  	}
   721  	return ""
   722  }
   723  
   724  func (x *Trial) GetWebAccessUris() map[string]string {
   725  	if x != nil {
   726  		return x.WebAccessUris
   727  	}
   728  	return nil
   729  }
   730  
   731  type TrialContext struct {
   732  	state         protoimpl.MessageState
   733  	sizeCache     protoimpl.SizeCache
   734  	unknownFields protoimpl.UnknownFields
   735  
   736  	// A human-readable field which can store a description of this context.
   737  	// This will become part of the resulting Trial's description field.
   738  	Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
   739  	// If/when a Trial is generated or selected from this Context,
   740  	// its Parameters will match any parameters specified here.
   741  	// (I.e. if this context specifies parameter name:'a' int_value:3,
   742  	// then a resulting Trial will have int_value:3 for its parameter named
   743  	// 'a'.) Note that we first attempt to match existing REQUESTED Trials with
   744  	// contexts, and if there are no matches, we generate suggestions in the
   745  	// subspace defined by the parameters specified here.
   746  	// NOTE: a Context without any Parameters matches the entire feasible search
   747  	//
   748  	//	space.
   749  	Parameters []*Trial_Parameter `protobuf:"bytes,2,rep,name=parameters,proto3" json:"parameters,omitempty"`
   750  }
   751  
   752  func (x *TrialContext) Reset() {
   753  	*x = TrialContext{}
   754  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[2]
   755  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   756  	ms.StoreMessageInfo(mi)
   757  }
   758  
   759  func (x *TrialContext) String() string {
   760  	return protoimpl.X.MessageStringOf(x)
   761  }
   762  
   763  func (*TrialContext) ProtoMessage() {}
   764  
   765  func (x *TrialContext) ProtoReflect() protoreflect.Message {
   766  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[2]
   767  	if x != nil {
   768  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   769  		if ms.LoadMessageInfo() == nil {
   770  			ms.StoreMessageInfo(mi)
   771  		}
   772  		return ms
   773  	}
   774  	return mi.MessageOf(x)
   775  }
   776  
   777  // Deprecated: Use TrialContext.ProtoReflect.Descriptor instead.
   778  func (*TrialContext) Descriptor() ([]byte, []int) {
   779  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2}
   780  }
   781  
   782  func (x *TrialContext) GetDescription() string {
   783  	if x != nil {
   784  		return x.Description
   785  	}
   786  	return ""
   787  }
   788  
   789  func (x *TrialContext) GetParameters() []*Trial_Parameter {
   790  	if x != nil {
   791  		return x.Parameters
   792  	}
   793  	return nil
   794  }
   795  
   796  // Time-based Constraint for Study
   797  type StudyTimeConstraint struct {
   798  	state         protoimpl.MessageState
   799  	sizeCache     protoimpl.SizeCache
   800  	unknownFields protoimpl.UnknownFields
   801  
   802  	// Types that are assignable to Constraint:
   803  	//
   804  	//	*StudyTimeConstraint_MaxDuration
   805  	//	*StudyTimeConstraint_EndTime
   806  	Constraint isStudyTimeConstraint_Constraint `protobuf_oneof:"constraint"`
   807  }
   808  
   809  func (x *StudyTimeConstraint) Reset() {
   810  	*x = StudyTimeConstraint{}
   811  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3]
   812  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   813  	ms.StoreMessageInfo(mi)
   814  }
   815  
   816  func (x *StudyTimeConstraint) String() string {
   817  	return protoimpl.X.MessageStringOf(x)
   818  }
   819  
   820  func (*StudyTimeConstraint) ProtoMessage() {}
   821  
   822  func (x *StudyTimeConstraint) ProtoReflect() protoreflect.Message {
   823  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3]
   824  	if x != nil {
   825  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   826  		if ms.LoadMessageInfo() == nil {
   827  			ms.StoreMessageInfo(mi)
   828  		}
   829  		return ms
   830  	}
   831  	return mi.MessageOf(x)
   832  }
   833  
   834  // Deprecated: Use StudyTimeConstraint.ProtoReflect.Descriptor instead.
   835  func (*StudyTimeConstraint) Descriptor() ([]byte, []int) {
   836  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3}
   837  }
   838  
   839  func (m *StudyTimeConstraint) GetConstraint() isStudyTimeConstraint_Constraint {
   840  	if m != nil {
   841  		return m.Constraint
   842  	}
   843  	return nil
   844  }
   845  
   846  func (x *StudyTimeConstraint) GetMaxDuration() *durationpb.Duration {
   847  	if x, ok := x.GetConstraint().(*StudyTimeConstraint_MaxDuration); ok {
   848  		return x.MaxDuration
   849  	}
   850  	return nil
   851  }
   852  
   853  func (x *StudyTimeConstraint) GetEndTime() *timestamppb.Timestamp {
   854  	if x, ok := x.GetConstraint().(*StudyTimeConstraint_EndTime); ok {
   855  		return x.EndTime
   856  	}
   857  	return nil
   858  }
   859  
   860  type isStudyTimeConstraint_Constraint interface {
   861  	isStudyTimeConstraint_Constraint()
   862  }
   863  
   864  type StudyTimeConstraint_MaxDuration struct {
   865  	// Counts the wallclock time passed since the creation of this Study.
   866  	MaxDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=max_duration,json=maxDuration,proto3,oneof"`
   867  }
   868  
   869  type StudyTimeConstraint_EndTime struct {
   870  	// Compares the wallclock time to this time. Must use UTC timezone.
   871  	EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3,oneof"`
   872  }
   873  
   874  func (*StudyTimeConstraint_MaxDuration) isStudyTimeConstraint_Constraint() {}
   875  
   876  func (*StudyTimeConstraint_EndTime) isStudyTimeConstraint_Constraint() {}
   877  
   878  // Represents specification of a Study.
   879  type StudySpec struct {
   880  	state         protoimpl.MessageState
   881  	sizeCache     protoimpl.SizeCache
   882  	unknownFields protoimpl.UnknownFields
   883  
   884  	// Types that are assignable to AutomatedStoppingSpec:
   885  	//
   886  	//	*StudySpec_DecayCurveStoppingSpec
   887  	//	*StudySpec_MedianAutomatedStoppingSpec_
   888  	//	*StudySpec_ConvexStopConfig_
   889  	//	*StudySpec_ConvexAutomatedStoppingSpec_
   890  	AutomatedStoppingSpec isStudySpec_AutomatedStoppingSpec `protobuf_oneof:"automated_stopping_spec"`
   891  	// Required. Metric specs for the Study.
   892  	Metrics []*StudySpec_MetricSpec `protobuf:"bytes,1,rep,name=metrics,proto3" json:"metrics,omitempty"`
   893  	// Required. The set of parameters to tune.
   894  	Parameters []*StudySpec_ParameterSpec `protobuf:"bytes,2,rep,name=parameters,proto3" json:"parameters,omitempty"`
   895  	// The search algorithm specified for the Study.
   896  	Algorithm StudySpec_Algorithm `protobuf:"varint,3,opt,name=algorithm,proto3,enum=google.cloud.aiplatform.v1beta1.StudySpec_Algorithm" json:"algorithm,omitempty"`
   897  	// The observation noise level of the study.
   898  	// Currently only supported by the Vertex AI Vizier service. Not supported by
   899  	// HyperparameterTuningJob or TrainingPipeline.
   900  	ObservationNoise StudySpec_ObservationNoise `protobuf:"varint,6,opt,name=observation_noise,json=observationNoise,proto3,enum=google.cloud.aiplatform.v1beta1.StudySpec_ObservationNoise" json:"observation_noise,omitempty"`
   901  	// Describe which measurement selection type will be used
   902  	MeasurementSelectionType StudySpec_MeasurementSelectionType `protobuf:"varint,7,opt,name=measurement_selection_type,json=measurementSelectionType,proto3,enum=google.cloud.aiplatform.v1beta1.StudySpec_MeasurementSelectionType" json:"measurement_selection_type,omitempty"`
   903  	// The configuration info/options for transfer learning. Currently supported
   904  	// for Vertex AI Vizier service, not HyperParameterTuningJob
   905  	TransferLearningConfig *StudySpec_TransferLearningConfig `protobuf:"bytes,10,opt,name=transfer_learning_config,json=transferLearningConfig,proto3" json:"transfer_learning_config,omitempty"`
   906  	// Conditions for automated stopping of a Study. Enable automated stopping by
   907  	// configuring at least one condition.
   908  	StudyStoppingConfig *StudySpec_StudyStoppingConfig `protobuf:"bytes,11,opt,name=study_stopping_config,json=studyStoppingConfig,proto3,oneof" json:"study_stopping_config,omitempty"`
   909  }
   910  
   911  func (x *StudySpec) Reset() {
   912  	*x = StudySpec{}
   913  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4]
   914  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   915  	ms.StoreMessageInfo(mi)
   916  }
   917  
   918  func (x *StudySpec) String() string {
   919  	return protoimpl.X.MessageStringOf(x)
   920  }
   921  
   922  func (*StudySpec) ProtoMessage() {}
   923  
   924  func (x *StudySpec) ProtoReflect() protoreflect.Message {
   925  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4]
   926  	if x != nil {
   927  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   928  		if ms.LoadMessageInfo() == nil {
   929  			ms.StoreMessageInfo(mi)
   930  		}
   931  		return ms
   932  	}
   933  	return mi.MessageOf(x)
   934  }
   935  
   936  // Deprecated: Use StudySpec.ProtoReflect.Descriptor instead.
   937  func (*StudySpec) Descriptor() ([]byte, []int) {
   938  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4}
   939  }
   940  
   941  func (m *StudySpec) GetAutomatedStoppingSpec() isStudySpec_AutomatedStoppingSpec {
   942  	if m != nil {
   943  		return m.AutomatedStoppingSpec
   944  	}
   945  	return nil
   946  }
   947  
   948  func (x *StudySpec) GetDecayCurveStoppingSpec() *StudySpec_DecayCurveAutomatedStoppingSpec {
   949  	if x, ok := x.GetAutomatedStoppingSpec().(*StudySpec_DecayCurveStoppingSpec); ok {
   950  		return x.DecayCurveStoppingSpec
   951  	}
   952  	return nil
   953  }
   954  
   955  func (x *StudySpec) GetMedianAutomatedStoppingSpec() *StudySpec_MedianAutomatedStoppingSpec {
   956  	if x, ok := x.GetAutomatedStoppingSpec().(*StudySpec_MedianAutomatedStoppingSpec_); ok {
   957  		return x.MedianAutomatedStoppingSpec
   958  	}
   959  	return nil
   960  }
   961  
   962  // Deprecated: Marked as deprecated in google/cloud/aiplatform/v1beta1/study.proto.
   963  func (x *StudySpec) GetConvexStopConfig() *StudySpec_ConvexStopConfig {
   964  	if x, ok := x.GetAutomatedStoppingSpec().(*StudySpec_ConvexStopConfig_); ok {
   965  		return x.ConvexStopConfig
   966  	}
   967  	return nil
   968  }
   969  
   970  func (x *StudySpec) GetConvexAutomatedStoppingSpec() *StudySpec_ConvexAutomatedStoppingSpec {
   971  	if x, ok := x.GetAutomatedStoppingSpec().(*StudySpec_ConvexAutomatedStoppingSpec_); ok {
   972  		return x.ConvexAutomatedStoppingSpec
   973  	}
   974  	return nil
   975  }
   976  
   977  func (x *StudySpec) GetMetrics() []*StudySpec_MetricSpec {
   978  	if x != nil {
   979  		return x.Metrics
   980  	}
   981  	return nil
   982  }
   983  
   984  func (x *StudySpec) GetParameters() []*StudySpec_ParameterSpec {
   985  	if x != nil {
   986  		return x.Parameters
   987  	}
   988  	return nil
   989  }
   990  
   991  func (x *StudySpec) GetAlgorithm() StudySpec_Algorithm {
   992  	if x != nil {
   993  		return x.Algorithm
   994  	}
   995  	return StudySpec_ALGORITHM_UNSPECIFIED
   996  }
   997  
   998  func (x *StudySpec) GetObservationNoise() StudySpec_ObservationNoise {
   999  	if x != nil {
  1000  		return x.ObservationNoise
  1001  	}
  1002  	return StudySpec_OBSERVATION_NOISE_UNSPECIFIED
  1003  }
  1004  
  1005  func (x *StudySpec) GetMeasurementSelectionType() StudySpec_MeasurementSelectionType {
  1006  	if x != nil {
  1007  		return x.MeasurementSelectionType
  1008  	}
  1009  	return StudySpec_MEASUREMENT_SELECTION_TYPE_UNSPECIFIED
  1010  }
  1011  
  1012  func (x *StudySpec) GetTransferLearningConfig() *StudySpec_TransferLearningConfig {
  1013  	if x != nil {
  1014  		return x.TransferLearningConfig
  1015  	}
  1016  	return nil
  1017  }
  1018  
  1019  func (x *StudySpec) GetStudyStoppingConfig() *StudySpec_StudyStoppingConfig {
  1020  	if x != nil {
  1021  		return x.StudyStoppingConfig
  1022  	}
  1023  	return nil
  1024  }
  1025  
  1026  type isStudySpec_AutomatedStoppingSpec interface {
  1027  	isStudySpec_AutomatedStoppingSpec()
  1028  }
  1029  
  1030  type StudySpec_DecayCurveStoppingSpec struct {
  1031  	// The automated early stopping spec using decay curve rule.
  1032  	DecayCurveStoppingSpec *StudySpec_DecayCurveAutomatedStoppingSpec `protobuf:"bytes,4,opt,name=decay_curve_stopping_spec,json=decayCurveStoppingSpec,proto3,oneof"`
  1033  }
  1034  
  1035  type StudySpec_MedianAutomatedStoppingSpec_ struct {
  1036  	// The automated early stopping spec using median rule.
  1037  	MedianAutomatedStoppingSpec *StudySpec_MedianAutomatedStoppingSpec `protobuf:"bytes,5,opt,name=median_automated_stopping_spec,json=medianAutomatedStoppingSpec,proto3,oneof"`
  1038  }
  1039  
  1040  type StudySpec_ConvexStopConfig_ struct {
  1041  	// Deprecated.
  1042  	// The automated early stopping using convex stopping rule.
  1043  	//
  1044  	// Deprecated: Marked as deprecated in google/cloud/aiplatform/v1beta1/study.proto.
  1045  	ConvexStopConfig *StudySpec_ConvexStopConfig `protobuf:"bytes,8,opt,name=convex_stop_config,json=convexStopConfig,proto3,oneof"`
  1046  }
  1047  
  1048  type StudySpec_ConvexAutomatedStoppingSpec_ struct {
  1049  	// The automated early stopping spec using convex stopping rule.
  1050  	ConvexAutomatedStoppingSpec *StudySpec_ConvexAutomatedStoppingSpec `protobuf:"bytes,9,opt,name=convex_automated_stopping_spec,json=convexAutomatedStoppingSpec,proto3,oneof"`
  1051  }
  1052  
  1053  func (*StudySpec_DecayCurveStoppingSpec) isStudySpec_AutomatedStoppingSpec() {}
  1054  
  1055  func (*StudySpec_MedianAutomatedStoppingSpec_) isStudySpec_AutomatedStoppingSpec() {}
  1056  
  1057  func (*StudySpec_ConvexStopConfig_) isStudySpec_AutomatedStoppingSpec() {}
  1058  
  1059  func (*StudySpec_ConvexAutomatedStoppingSpec_) isStudySpec_AutomatedStoppingSpec() {}
  1060  
  1061  // A message representing a Measurement of a Trial. A Measurement contains
  1062  // the Metrics got by executing a Trial using suggested hyperparameter
  1063  // values.
  1064  type Measurement struct {
  1065  	state         protoimpl.MessageState
  1066  	sizeCache     protoimpl.SizeCache
  1067  	unknownFields protoimpl.UnknownFields
  1068  
  1069  	// Output only. Time that the Trial has been running at the point of this
  1070  	// Measurement.
  1071  	ElapsedDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=elapsed_duration,json=elapsedDuration,proto3" json:"elapsed_duration,omitempty"`
  1072  	// Output only. The number of steps the machine learning model has been
  1073  	// trained for. Must be non-negative.
  1074  	StepCount int64 `protobuf:"varint,2,opt,name=step_count,json=stepCount,proto3" json:"step_count,omitempty"`
  1075  	// Output only. A list of metrics got by evaluating the objective functions
  1076  	// using suggested Parameter values.
  1077  	Metrics []*Measurement_Metric `protobuf:"bytes,3,rep,name=metrics,proto3" json:"metrics,omitempty"`
  1078  }
  1079  
  1080  func (x *Measurement) Reset() {
  1081  	*x = Measurement{}
  1082  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[5]
  1083  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1084  	ms.StoreMessageInfo(mi)
  1085  }
  1086  
  1087  func (x *Measurement) String() string {
  1088  	return protoimpl.X.MessageStringOf(x)
  1089  }
  1090  
  1091  func (*Measurement) ProtoMessage() {}
  1092  
  1093  func (x *Measurement) ProtoReflect() protoreflect.Message {
  1094  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[5]
  1095  	if x != nil {
  1096  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1097  		if ms.LoadMessageInfo() == nil {
  1098  			ms.StoreMessageInfo(mi)
  1099  		}
  1100  		return ms
  1101  	}
  1102  	return mi.MessageOf(x)
  1103  }
  1104  
  1105  // Deprecated: Use Measurement.ProtoReflect.Descriptor instead.
  1106  func (*Measurement) Descriptor() ([]byte, []int) {
  1107  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{5}
  1108  }
  1109  
  1110  func (x *Measurement) GetElapsedDuration() *durationpb.Duration {
  1111  	if x != nil {
  1112  		return x.ElapsedDuration
  1113  	}
  1114  	return nil
  1115  }
  1116  
  1117  func (x *Measurement) GetStepCount() int64 {
  1118  	if x != nil {
  1119  		return x.StepCount
  1120  	}
  1121  	return 0
  1122  }
  1123  
  1124  func (x *Measurement) GetMetrics() []*Measurement_Metric {
  1125  	if x != nil {
  1126  		return x.Metrics
  1127  	}
  1128  	return nil
  1129  }
  1130  
  1131  // A message representing a parameter to be tuned.
  1132  type Trial_Parameter struct {
  1133  	state         protoimpl.MessageState
  1134  	sizeCache     protoimpl.SizeCache
  1135  	unknownFields protoimpl.UnknownFields
  1136  
  1137  	// Output only. The ID of the parameter. The parameter should be defined in
  1138  	// [StudySpec's
  1139  	// Parameters][google.cloud.aiplatform.v1beta1.StudySpec.parameters].
  1140  	ParameterId string `protobuf:"bytes,1,opt,name=parameter_id,json=parameterId,proto3" json:"parameter_id,omitempty"`
  1141  	// Output only. The value of the parameter.
  1142  	// `number_value` will be set if a parameter defined in StudySpec is
  1143  	// in type 'INTEGER', 'DOUBLE' or 'DISCRETE'.
  1144  	// `string_value` will be set if a parameter defined in StudySpec is
  1145  	// in type 'CATEGORICAL'.
  1146  	Value *structpb.Value `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
  1147  }
  1148  
  1149  func (x *Trial_Parameter) Reset() {
  1150  	*x = Trial_Parameter{}
  1151  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[6]
  1152  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1153  	ms.StoreMessageInfo(mi)
  1154  }
  1155  
  1156  func (x *Trial_Parameter) String() string {
  1157  	return protoimpl.X.MessageStringOf(x)
  1158  }
  1159  
  1160  func (*Trial_Parameter) ProtoMessage() {}
  1161  
  1162  func (x *Trial_Parameter) ProtoReflect() protoreflect.Message {
  1163  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[6]
  1164  	if x != nil {
  1165  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1166  		if ms.LoadMessageInfo() == nil {
  1167  			ms.StoreMessageInfo(mi)
  1168  		}
  1169  		return ms
  1170  	}
  1171  	return mi.MessageOf(x)
  1172  }
  1173  
  1174  // Deprecated: Use Trial_Parameter.ProtoReflect.Descriptor instead.
  1175  func (*Trial_Parameter) Descriptor() ([]byte, []int) {
  1176  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{1, 0}
  1177  }
  1178  
  1179  func (x *Trial_Parameter) GetParameterId() string {
  1180  	if x != nil {
  1181  		return x.ParameterId
  1182  	}
  1183  	return ""
  1184  }
  1185  
  1186  func (x *Trial_Parameter) GetValue() *structpb.Value {
  1187  	if x != nil {
  1188  		return x.Value
  1189  	}
  1190  	return nil
  1191  }
  1192  
  1193  // Represents a metric to optimize.
  1194  type StudySpec_MetricSpec struct {
  1195  	state         protoimpl.MessageState
  1196  	sizeCache     protoimpl.SizeCache
  1197  	unknownFields protoimpl.UnknownFields
  1198  
  1199  	// Required. The ID of the metric. Must not contain whitespaces and must be
  1200  	// unique amongst all MetricSpecs.
  1201  	MetricId string `protobuf:"bytes,1,opt,name=metric_id,json=metricId,proto3" json:"metric_id,omitempty"`
  1202  	// Required. The optimization goal of the metric.
  1203  	Goal StudySpec_MetricSpec_GoalType `protobuf:"varint,2,opt,name=goal,proto3,enum=google.cloud.aiplatform.v1beta1.StudySpec_MetricSpec_GoalType" json:"goal,omitempty"`
  1204  	// Used for safe search. In the case, the metric will be a safety
  1205  	// metric. You must provide a separate metric for objective metric.
  1206  	SafetyConfig *StudySpec_MetricSpec_SafetyMetricConfig `protobuf:"bytes,3,opt,name=safety_config,json=safetyConfig,proto3,oneof" json:"safety_config,omitempty"`
  1207  }
  1208  
  1209  func (x *StudySpec_MetricSpec) Reset() {
  1210  	*x = StudySpec_MetricSpec{}
  1211  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8]
  1212  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1213  	ms.StoreMessageInfo(mi)
  1214  }
  1215  
  1216  func (x *StudySpec_MetricSpec) String() string {
  1217  	return protoimpl.X.MessageStringOf(x)
  1218  }
  1219  
  1220  func (*StudySpec_MetricSpec) ProtoMessage() {}
  1221  
  1222  func (x *StudySpec_MetricSpec) ProtoReflect() protoreflect.Message {
  1223  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8]
  1224  	if x != nil {
  1225  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1226  		if ms.LoadMessageInfo() == nil {
  1227  			ms.StoreMessageInfo(mi)
  1228  		}
  1229  		return ms
  1230  	}
  1231  	return mi.MessageOf(x)
  1232  }
  1233  
  1234  // Deprecated: Use StudySpec_MetricSpec.ProtoReflect.Descriptor instead.
  1235  func (*StudySpec_MetricSpec) Descriptor() ([]byte, []int) {
  1236  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 0}
  1237  }
  1238  
  1239  func (x *StudySpec_MetricSpec) GetMetricId() string {
  1240  	if x != nil {
  1241  		return x.MetricId
  1242  	}
  1243  	return ""
  1244  }
  1245  
  1246  func (x *StudySpec_MetricSpec) GetGoal() StudySpec_MetricSpec_GoalType {
  1247  	if x != nil {
  1248  		return x.Goal
  1249  	}
  1250  	return StudySpec_MetricSpec_GOAL_TYPE_UNSPECIFIED
  1251  }
  1252  
  1253  func (x *StudySpec_MetricSpec) GetSafetyConfig() *StudySpec_MetricSpec_SafetyMetricConfig {
  1254  	if x != nil {
  1255  		return x.SafetyConfig
  1256  	}
  1257  	return nil
  1258  }
  1259  
  1260  // Represents a single parameter to optimize.
  1261  type StudySpec_ParameterSpec struct {
  1262  	state         protoimpl.MessageState
  1263  	sizeCache     protoimpl.SizeCache
  1264  	unknownFields protoimpl.UnknownFields
  1265  
  1266  	// Types that are assignable to ParameterValueSpec:
  1267  	//
  1268  	//	*StudySpec_ParameterSpec_DoubleValueSpec_
  1269  	//	*StudySpec_ParameterSpec_IntegerValueSpec_
  1270  	//	*StudySpec_ParameterSpec_CategoricalValueSpec_
  1271  	//	*StudySpec_ParameterSpec_DiscreteValueSpec_
  1272  	ParameterValueSpec isStudySpec_ParameterSpec_ParameterValueSpec `protobuf_oneof:"parameter_value_spec"`
  1273  	// Required. The ID of the parameter. Must not contain whitespaces and must
  1274  	// be unique amongst all ParameterSpecs.
  1275  	ParameterId string `protobuf:"bytes,1,opt,name=parameter_id,json=parameterId,proto3" json:"parameter_id,omitempty"`
  1276  	// How the parameter should be scaled.
  1277  	// Leave unset for `CATEGORICAL` parameters.
  1278  	ScaleType StudySpec_ParameterSpec_ScaleType `protobuf:"varint,6,opt,name=scale_type,json=scaleType,proto3,enum=google.cloud.aiplatform.v1beta1.StudySpec_ParameterSpec_ScaleType" json:"scale_type,omitempty"`
  1279  	// A conditional parameter node is active if the parameter's value matches
  1280  	// the conditional node's parent_value_condition.
  1281  	//
  1282  	// If two items in conditional_parameter_specs have the same name, they
  1283  	// must have disjoint parent_value_condition.
  1284  	ConditionalParameterSpecs []*StudySpec_ParameterSpec_ConditionalParameterSpec `protobuf:"bytes,10,rep,name=conditional_parameter_specs,json=conditionalParameterSpecs,proto3" json:"conditional_parameter_specs,omitempty"`
  1285  }
  1286  
  1287  func (x *StudySpec_ParameterSpec) Reset() {
  1288  	*x = StudySpec_ParameterSpec{}
  1289  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9]
  1290  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1291  	ms.StoreMessageInfo(mi)
  1292  }
  1293  
  1294  func (x *StudySpec_ParameterSpec) String() string {
  1295  	return protoimpl.X.MessageStringOf(x)
  1296  }
  1297  
  1298  func (*StudySpec_ParameterSpec) ProtoMessage() {}
  1299  
  1300  func (x *StudySpec_ParameterSpec) ProtoReflect() protoreflect.Message {
  1301  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9]
  1302  	if x != nil {
  1303  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1304  		if ms.LoadMessageInfo() == nil {
  1305  			ms.StoreMessageInfo(mi)
  1306  		}
  1307  		return ms
  1308  	}
  1309  	return mi.MessageOf(x)
  1310  }
  1311  
  1312  // Deprecated: Use StudySpec_ParameterSpec.ProtoReflect.Descriptor instead.
  1313  func (*StudySpec_ParameterSpec) Descriptor() ([]byte, []int) {
  1314  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1}
  1315  }
  1316  
  1317  func (m *StudySpec_ParameterSpec) GetParameterValueSpec() isStudySpec_ParameterSpec_ParameterValueSpec {
  1318  	if m != nil {
  1319  		return m.ParameterValueSpec
  1320  	}
  1321  	return nil
  1322  }
  1323  
  1324  func (x *StudySpec_ParameterSpec) GetDoubleValueSpec() *StudySpec_ParameterSpec_DoubleValueSpec {
  1325  	if x, ok := x.GetParameterValueSpec().(*StudySpec_ParameterSpec_DoubleValueSpec_); ok {
  1326  		return x.DoubleValueSpec
  1327  	}
  1328  	return nil
  1329  }
  1330  
  1331  func (x *StudySpec_ParameterSpec) GetIntegerValueSpec() *StudySpec_ParameterSpec_IntegerValueSpec {
  1332  	if x, ok := x.GetParameterValueSpec().(*StudySpec_ParameterSpec_IntegerValueSpec_); ok {
  1333  		return x.IntegerValueSpec
  1334  	}
  1335  	return nil
  1336  }
  1337  
  1338  func (x *StudySpec_ParameterSpec) GetCategoricalValueSpec() *StudySpec_ParameterSpec_CategoricalValueSpec {
  1339  	if x, ok := x.GetParameterValueSpec().(*StudySpec_ParameterSpec_CategoricalValueSpec_); ok {
  1340  		return x.CategoricalValueSpec
  1341  	}
  1342  	return nil
  1343  }
  1344  
  1345  func (x *StudySpec_ParameterSpec) GetDiscreteValueSpec() *StudySpec_ParameterSpec_DiscreteValueSpec {
  1346  	if x, ok := x.GetParameterValueSpec().(*StudySpec_ParameterSpec_DiscreteValueSpec_); ok {
  1347  		return x.DiscreteValueSpec
  1348  	}
  1349  	return nil
  1350  }
  1351  
  1352  func (x *StudySpec_ParameterSpec) GetParameterId() string {
  1353  	if x != nil {
  1354  		return x.ParameterId
  1355  	}
  1356  	return ""
  1357  }
  1358  
  1359  func (x *StudySpec_ParameterSpec) GetScaleType() StudySpec_ParameterSpec_ScaleType {
  1360  	if x != nil {
  1361  		return x.ScaleType
  1362  	}
  1363  	return StudySpec_ParameterSpec_SCALE_TYPE_UNSPECIFIED
  1364  }
  1365  
  1366  func (x *StudySpec_ParameterSpec) GetConditionalParameterSpecs() []*StudySpec_ParameterSpec_ConditionalParameterSpec {
  1367  	if x != nil {
  1368  		return x.ConditionalParameterSpecs
  1369  	}
  1370  	return nil
  1371  }
  1372  
  1373  type isStudySpec_ParameterSpec_ParameterValueSpec interface {
  1374  	isStudySpec_ParameterSpec_ParameterValueSpec()
  1375  }
  1376  
  1377  type StudySpec_ParameterSpec_DoubleValueSpec_ struct {
  1378  	// The value spec for a 'DOUBLE' parameter.
  1379  	DoubleValueSpec *StudySpec_ParameterSpec_DoubleValueSpec `protobuf:"bytes,2,opt,name=double_value_spec,json=doubleValueSpec,proto3,oneof"`
  1380  }
  1381  
  1382  type StudySpec_ParameterSpec_IntegerValueSpec_ struct {
  1383  	// The value spec for an 'INTEGER' parameter.
  1384  	IntegerValueSpec *StudySpec_ParameterSpec_IntegerValueSpec `protobuf:"bytes,3,opt,name=integer_value_spec,json=integerValueSpec,proto3,oneof"`
  1385  }
  1386  
  1387  type StudySpec_ParameterSpec_CategoricalValueSpec_ struct {
  1388  	// The value spec for a 'CATEGORICAL' parameter.
  1389  	CategoricalValueSpec *StudySpec_ParameterSpec_CategoricalValueSpec `protobuf:"bytes,4,opt,name=categorical_value_spec,json=categoricalValueSpec,proto3,oneof"`
  1390  }
  1391  
  1392  type StudySpec_ParameterSpec_DiscreteValueSpec_ struct {
  1393  	// The value spec for a 'DISCRETE' parameter.
  1394  	DiscreteValueSpec *StudySpec_ParameterSpec_DiscreteValueSpec `protobuf:"bytes,5,opt,name=discrete_value_spec,json=discreteValueSpec,proto3,oneof"`
  1395  }
  1396  
  1397  func (*StudySpec_ParameterSpec_DoubleValueSpec_) isStudySpec_ParameterSpec_ParameterValueSpec() {}
  1398  
  1399  func (*StudySpec_ParameterSpec_IntegerValueSpec_) isStudySpec_ParameterSpec_ParameterValueSpec() {}
  1400  
  1401  func (*StudySpec_ParameterSpec_CategoricalValueSpec_) isStudySpec_ParameterSpec_ParameterValueSpec() {
  1402  }
  1403  
  1404  func (*StudySpec_ParameterSpec_DiscreteValueSpec_) isStudySpec_ParameterSpec_ParameterValueSpec() {}
  1405  
  1406  // The decay curve automated stopping rule builds a Gaussian Process
  1407  // Regressor to predict the final objective value of a Trial based on the
  1408  // already completed Trials and the intermediate measurements of the current
  1409  // Trial. Early stopping is requested for the current Trial if there is very
  1410  // low probability to exceed the optimal value found so far.
  1411  type StudySpec_DecayCurveAutomatedStoppingSpec struct {
  1412  	state         protoimpl.MessageState
  1413  	sizeCache     protoimpl.SizeCache
  1414  	unknownFields protoimpl.UnknownFields
  1415  
  1416  	// True if
  1417  	// [Measurement.elapsed_duration][google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration]
  1418  	// is used as the x-axis of each Trials Decay Curve. Otherwise,
  1419  	// [Measurement.step_count][google.cloud.aiplatform.v1beta1.Measurement.step_count]
  1420  	// will be used as the x-axis.
  1421  	UseElapsedDuration bool `protobuf:"varint,1,opt,name=use_elapsed_duration,json=useElapsedDuration,proto3" json:"use_elapsed_duration,omitempty"`
  1422  }
  1423  
  1424  func (x *StudySpec_DecayCurveAutomatedStoppingSpec) Reset() {
  1425  	*x = StudySpec_DecayCurveAutomatedStoppingSpec{}
  1426  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[10]
  1427  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1428  	ms.StoreMessageInfo(mi)
  1429  }
  1430  
  1431  func (x *StudySpec_DecayCurveAutomatedStoppingSpec) String() string {
  1432  	return protoimpl.X.MessageStringOf(x)
  1433  }
  1434  
  1435  func (*StudySpec_DecayCurveAutomatedStoppingSpec) ProtoMessage() {}
  1436  
  1437  func (x *StudySpec_DecayCurveAutomatedStoppingSpec) ProtoReflect() protoreflect.Message {
  1438  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[10]
  1439  	if x != nil {
  1440  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1441  		if ms.LoadMessageInfo() == nil {
  1442  			ms.StoreMessageInfo(mi)
  1443  		}
  1444  		return ms
  1445  	}
  1446  	return mi.MessageOf(x)
  1447  }
  1448  
  1449  // Deprecated: Use StudySpec_DecayCurveAutomatedStoppingSpec.ProtoReflect.Descriptor instead.
  1450  func (*StudySpec_DecayCurveAutomatedStoppingSpec) Descriptor() ([]byte, []int) {
  1451  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 2}
  1452  }
  1453  
  1454  func (x *StudySpec_DecayCurveAutomatedStoppingSpec) GetUseElapsedDuration() bool {
  1455  	if x != nil {
  1456  		return x.UseElapsedDuration
  1457  	}
  1458  	return false
  1459  }
  1460  
  1461  // The median automated stopping rule stops a pending Trial if the Trial's
  1462  // best objective_value is strictly below the median 'performance' of all
  1463  // completed Trials reported up to the Trial's last measurement.
  1464  // Currently, 'performance' refers to the running average of the objective
  1465  // values reported by the Trial in each measurement.
  1466  type StudySpec_MedianAutomatedStoppingSpec struct {
  1467  	state         protoimpl.MessageState
  1468  	sizeCache     protoimpl.SizeCache
  1469  	unknownFields protoimpl.UnknownFields
  1470  
  1471  	// True if median automated stopping rule applies on
  1472  	// [Measurement.elapsed_duration][google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration].
  1473  	// It means that elapsed_duration field of latest measurement of current
  1474  	// Trial is used to compute median objective value for each completed
  1475  	// Trials.
  1476  	UseElapsedDuration bool `protobuf:"varint,1,opt,name=use_elapsed_duration,json=useElapsedDuration,proto3" json:"use_elapsed_duration,omitempty"`
  1477  }
  1478  
  1479  func (x *StudySpec_MedianAutomatedStoppingSpec) Reset() {
  1480  	*x = StudySpec_MedianAutomatedStoppingSpec{}
  1481  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[11]
  1482  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1483  	ms.StoreMessageInfo(mi)
  1484  }
  1485  
  1486  func (x *StudySpec_MedianAutomatedStoppingSpec) String() string {
  1487  	return protoimpl.X.MessageStringOf(x)
  1488  }
  1489  
  1490  func (*StudySpec_MedianAutomatedStoppingSpec) ProtoMessage() {}
  1491  
  1492  func (x *StudySpec_MedianAutomatedStoppingSpec) ProtoReflect() protoreflect.Message {
  1493  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[11]
  1494  	if x != nil {
  1495  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1496  		if ms.LoadMessageInfo() == nil {
  1497  			ms.StoreMessageInfo(mi)
  1498  		}
  1499  		return ms
  1500  	}
  1501  	return mi.MessageOf(x)
  1502  }
  1503  
  1504  // Deprecated: Use StudySpec_MedianAutomatedStoppingSpec.ProtoReflect.Descriptor instead.
  1505  func (*StudySpec_MedianAutomatedStoppingSpec) Descriptor() ([]byte, []int) {
  1506  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 3}
  1507  }
  1508  
  1509  func (x *StudySpec_MedianAutomatedStoppingSpec) GetUseElapsedDuration() bool {
  1510  	if x != nil {
  1511  		return x.UseElapsedDuration
  1512  	}
  1513  	return false
  1514  }
  1515  
  1516  // Configuration for ConvexAutomatedStoppingSpec.
  1517  // When there are enough completed trials (configured by
  1518  // min_measurement_count), for pending trials with enough measurements and
  1519  // steps, the policy first computes an overestimate of the objective value at
  1520  // max_num_steps according to the slope of the incomplete objective value
  1521  // curve. No prediction can be made if the curve is completely flat. If the
  1522  // overestimation is worse than the best objective value of the completed
  1523  // trials, this pending trial will be early-stopped, but a last measurement
  1524  // will be added to the pending trial with max_num_steps and predicted
  1525  // objective value from the autoregression model.
  1526  type StudySpec_ConvexAutomatedStoppingSpec struct {
  1527  	state         protoimpl.MessageState
  1528  	sizeCache     protoimpl.SizeCache
  1529  	unknownFields protoimpl.UnknownFields
  1530  
  1531  	// Steps used in predicting the final objective for early stopped trials. In
  1532  	// general, it's set to be the same as the defined steps in training /
  1533  	// tuning. If not defined, it will learn it from the completed trials. When
  1534  	// use_steps is false, this field is set to the maximum elapsed seconds.
  1535  	MaxStepCount int64 `protobuf:"varint,1,opt,name=max_step_count,json=maxStepCount,proto3" json:"max_step_count,omitempty"`
  1536  	// Minimum number of steps for a trial to complete. Trials which do not have
  1537  	// a measurement with step_count > min_step_count won't be considered for
  1538  	// early stopping. It's ok to set it to 0, and a trial can be early stopped
  1539  	// at any stage. By default, min_step_count is set to be one-tenth of the
  1540  	// max_step_count.
  1541  	// When use_elapsed_duration is true, this field is set to the minimum
  1542  	// elapsed seconds.
  1543  	MinStepCount int64 `protobuf:"varint,2,opt,name=min_step_count,json=minStepCount,proto3" json:"min_step_count,omitempty"`
  1544  	// The minimal number of measurements in a Trial.  Early-stopping checks
  1545  	// will not trigger if less than min_measurement_count+1 completed trials or
  1546  	// pending trials with less than min_measurement_count measurements. If not
  1547  	// defined, the default value is 5.
  1548  	MinMeasurementCount int64 `protobuf:"varint,3,opt,name=min_measurement_count,json=minMeasurementCount,proto3" json:"min_measurement_count,omitempty"`
  1549  	// The hyper-parameter name used in the tuning job that stands for learning
  1550  	// rate. Leave it blank if learning rate is not in a parameter in tuning.
  1551  	// The learning_rate is used to estimate the objective value of the ongoing
  1552  	// trial.
  1553  	LearningRateParameterName string `protobuf:"bytes,4,opt,name=learning_rate_parameter_name,json=learningRateParameterName,proto3" json:"learning_rate_parameter_name,omitempty"`
  1554  	// This bool determines whether or not the rule is applied based on
  1555  	// elapsed_secs or steps. If use_elapsed_duration==false, the early stopping
  1556  	// decision is made according to the predicted objective values according to
  1557  	// the target steps. If use_elapsed_duration==true, elapsed_secs is used
  1558  	// instead of steps. Also, in this case, the parameters max_num_steps and
  1559  	// min_num_steps are overloaded to contain max_elapsed_seconds and
  1560  	// min_elapsed_seconds.
  1561  	UseElapsedDuration bool `protobuf:"varint,5,opt,name=use_elapsed_duration,json=useElapsedDuration,proto3" json:"use_elapsed_duration,omitempty"`
  1562  	// ConvexAutomatedStoppingSpec by default only updates the trials that needs
  1563  	// to be early stopped using a newly trained auto-regressive model. When
  1564  	// this flag is set to True, all stopped trials from the beginning are
  1565  	// potentially updated in terms of their `final_measurement`. Also, note
  1566  	// that the training logic of autoregressive models is different in this
  1567  	// case. Enabling this option has shown better results and this may be the
  1568  	// default option in the future.
  1569  	UpdateAllStoppedTrials *bool `protobuf:"varint,6,opt,name=update_all_stopped_trials,json=updateAllStoppedTrials,proto3,oneof" json:"update_all_stopped_trials,omitempty"`
  1570  }
  1571  
  1572  func (x *StudySpec_ConvexAutomatedStoppingSpec) Reset() {
  1573  	*x = StudySpec_ConvexAutomatedStoppingSpec{}
  1574  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12]
  1575  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1576  	ms.StoreMessageInfo(mi)
  1577  }
  1578  
  1579  func (x *StudySpec_ConvexAutomatedStoppingSpec) String() string {
  1580  	return protoimpl.X.MessageStringOf(x)
  1581  }
  1582  
  1583  func (*StudySpec_ConvexAutomatedStoppingSpec) ProtoMessage() {}
  1584  
  1585  func (x *StudySpec_ConvexAutomatedStoppingSpec) ProtoReflect() protoreflect.Message {
  1586  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12]
  1587  	if x != nil {
  1588  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1589  		if ms.LoadMessageInfo() == nil {
  1590  			ms.StoreMessageInfo(mi)
  1591  		}
  1592  		return ms
  1593  	}
  1594  	return mi.MessageOf(x)
  1595  }
  1596  
  1597  // Deprecated: Use StudySpec_ConvexAutomatedStoppingSpec.ProtoReflect.Descriptor instead.
  1598  func (*StudySpec_ConvexAutomatedStoppingSpec) Descriptor() ([]byte, []int) {
  1599  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 4}
  1600  }
  1601  
  1602  func (x *StudySpec_ConvexAutomatedStoppingSpec) GetMaxStepCount() int64 {
  1603  	if x != nil {
  1604  		return x.MaxStepCount
  1605  	}
  1606  	return 0
  1607  }
  1608  
  1609  func (x *StudySpec_ConvexAutomatedStoppingSpec) GetMinStepCount() int64 {
  1610  	if x != nil {
  1611  		return x.MinStepCount
  1612  	}
  1613  	return 0
  1614  }
  1615  
  1616  func (x *StudySpec_ConvexAutomatedStoppingSpec) GetMinMeasurementCount() int64 {
  1617  	if x != nil {
  1618  		return x.MinMeasurementCount
  1619  	}
  1620  	return 0
  1621  }
  1622  
  1623  func (x *StudySpec_ConvexAutomatedStoppingSpec) GetLearningRateParameterName() string {
  1624  	if x != nil {
  1625  		return x.LearningRateParameterName
  1626  	}
  1627  	return ""
  1628  }
  1629  
  1630  func (x *StudySpec_ConvexAutomatedStoppingSpec) GetUseElapsedDuration() bool {
  1631  	if x != nil {
  1632  		return x.UseElapsedDuration
  1633  	}
  1634  	return false
  1635  }
  1636  
  1637  func (x *StudySpec_ConvexAutomatedStoppingSpec) GetUpdateAllStoppedTrials() bool {
  1638  	if x != nil && x.UpdateAllStoppedTrials != nil {
  1639  		return *x.UpdateAllStoppedTrials
  1640  	}
  1641  	return false
  1642  }
  1643  
  1644  // Configuration for ConvexStopPolicy.
  1645  //
  1646  // Deprecated: Marked as deprecated in google/cloud/aiplatform/v1beta1/study.proto.
  1647  type StudySpec_ConvexStopConfig struct {
  1648  	state         protoimpl.MessageState
  1649  	sizeCache     protoimpl.SizeCache
  1650  	unknownFields protoimpl.UnknownFields
  1651  
  1652  	// Steps used in predicting the final objective for early stopped trials. In
  1653  	// general, it's set to be the same as the defined steps in training /
  1654  	// tuning. When use_steps is false, this field is set to the maximum elapsed
  1655  	// seconds.
  1656  	MaxNumSteps int64 `protobuf:"varint,1,opt,name=max_num_steps,json=maxNumSteps,proto3" json:"max_num_steps,omitempty"`
  1657  	// Minimum number of steps for a trial to complete. Trials which do not have
  1658  	// a measurement with num_steps > min_num_steps won't be considered for
  1659  	// early stopping. It's ok to set it to 0, and a trial can be early stopped
  1660  	// at any stage. By default, min_num_steps is set to be one-tenth of the
  1661  	// max_num_steps.
  1662  	// When use_steps is false, this field is set to the minimum elapsed
  1663  	// seconds.
  1664  	MinNumSteps int64 `protobuf:"varint,2,opt,name=min_num_steps,json=minNumSteps,proto3" json:"min_num_steps,omitempty"`
  1665  	// The number of Trial measurements used in autoregressive model for
  1666  	// value prediction. A trial won't be considered early stopping if has fewer
  1667  	// measurement points.
  1668  	AutoregressiveOrder int64 `protobuf:"varint,3,opt,name=autoregressive_order,json=autoregressiveOrder,proto3" json:"autoregressive_order,omitempty"`
  1669  	// The hyper-parameter name used in the tuning job that stands for learning
  1670  	// rate. Leave it blank if learning rate is not in a parameter in tuning.
  1671  	// The learning_rate is used to estimate the objective value of the ongoing
  1672  	// trial.
  1673  	LearningRateParameterName string `protobuf:"bytes,4,opt,name=learning_rate_parameter_name,json=learningRateParameterName,proto3" json:"learning_rate_parameter_name,omitempty"`
  1674  	// This bool determines whether or not the rule is applied based on
  1675  	// elapsed_secs or steps. If use_seconds==false, the early stopping decision
  1676  	// is made according to the predicted objective values according to the
  1677  	// target steps. If use_seconds==true, elapsed_secs is used instead of
  1678  	// steps. Also, in this case, the parameters max_num_steps and min_num_steps
  1679  	// are overloaded to contain max_elapsed_seconds and min_elapsed_seconds.
  1680  	UseSeconds bool `protobuf:"varint,5,opt,name=use_seconds,json=useSeconds,proto3" json:"use_seconds,omitempty"`
  1681  }
  1682  
  1683  func (x *StudySpec_ConvexStopConfig) Reset() {
  1684  	*x = StudySpec_ConvexStopConfig{}
  1685  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[13]
  1686  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1687  	ms.StoreMessageInfo(mi)
  1688  }
  1689  
  1690  func (x *StudySpec_ConvexStopConfig) String() string {
  1691  	return protoimpl.X.MessageStringOf(x)
  1692  }
  1693  
  1694  func (*StudySpec_ConvexStopConfig) ProtoMessage() {}
  1695  
  1696  func (x *StudySpec_ConvexStopConfig) ProtoReflect() protoreflect.Message {
  1697  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[13]
  1698  	if x != nil {
  1699  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1700  		if ms.LoadMessageInfo() == nil {
  1701  			ms.StoreMessageInfo(mi)
  1702  		}
  1703  		return ms
  1704  	}
  1705  	return mi.MessageOf(x)
  1706  }
  1707  
  1708  // Deprecated: Use StudySpec_ConvexStopConfig.ProtoReflect.Descriptor instead.
  1709  func (*StudySpec_ConvexStopConfig) Descriptor() ([]byte, []int) {
  1710  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 5}
  1711  }
  1712  
  1713  func (x *StudySpec_ConvexStopConfig) GetMaxNumSteps() int64 {
  1714  	if x != nil {
  1715  		return x.MaxNumSteps
  1716  	}
  1717  	return 0
  1718  }
  1719  
  1720  func (x *StudySpec_ConvexStopConfig) GetMinNumSteps() int64 {
  1721  	if x != nil {
  1722  		return x.MinNumSteps
  1723  	}
  1724  	return 0
  1725  }
  1726  
  1727  func (x *StudySpec_ConvexStopConfig) GetAutoregressiveOrder() int64 {
  1728  	if x != nil {
  1729  		return x.AutoregressiveOrder
  1730  	}
  1731  	return 0
  1732  }
  1733  
  1734  func (x *StudySpec_ConvexStopConfig) GetLearningRateParameterName() string {
  1735  	if x != nil {
  1736  		return x.LearningRateParameterName
  1737  	}
  1738  	return ""
  1739  }
  1740  
  1741  func (x *StudySpec_ConvexStopConfig) GetUseSeconds() bool {
  1742  	if x != nil {
  1743  		return x.UseSeconds
  1744  	}
  1745  	return false
  1746  }
  1747  
  1748  // This contains flag for manually disabling transfer learning for a study.
  1749  // The names of prior studies being used for transfer learning (if any)
  1750  // are also listed here.
  1751  type StudySpec_TransferLearningConfig struct {
  1752  	state         protoimpl.MessageState
  1753  	sizeCache     protoimpl.SizeCache
  1754  	unknownFields protoimpl.UnknownFields
  1755  
  1756  	// Flag to to manually prevent vizier from using transfer learning on a
  1757  	// new study. Otherwise, vizier will automatically determine whether or not
  1758  	// to use transfer learning.
  1759  	DisableTransferLearning bool `protobuf:"varint,1,opt,name=disable_transfer_learning,json=disableTransferLearning,proto3" json:"disable_transfer_learning,omitempty"`
  1760  	// Output only. Names of previously completed studies
  1761  	PriorStudyNames []string `protobuf:"bytes,2,rep,name=prior_study_names,json=priorStudyNames,proto3" json:"prior_study_names,omitempty"`
  1762  }
  1763  
  1764  func (x *StudySpec_TransferLearningConfig) Reset() {
  1765  	*x = StudySpec_TransferLearningConfig{}
  1766  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[14]
  1767  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1768  	ms.StoreMessageInfo(mi)
  1769  }
  1770  
  1771  func (x *StudySpec_TransferLearningConfig) String() string {
  1772  	return protoimpl.X.MessageStringOf(x)
  1773  }
  1774  
  1775  func (*StudySpec_TransferLearningConfig) ProtoMessage() {}
  1776  
  1777  func (x *StudySpec_TransferLearningConfig) ProtoReflect() protoreflect.Message {
  1778  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[14]
  1779  	if x != nil {
  1780  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1781  		if ms.LoadMessageInfo() == nil {
  1782  			ms.StoreMessageInfo(mi)
  1783  		}
  1784  		return ms
  1785  	}
  1786  	return mi.MessageOf(x)
  1787  }
  1788  
  1789  // Deprecated: Use StudySpec_TransferLearningConfig.ProtoReflect.Descriptor instead.
  1790  func (*StudySpec_TransferLearningConfig) Descriptor() ([]byte, []int) {
  1791  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 6}
  1792  }
  1793  
  1794  func (x *StudySpec_TransferLearningConfig) GetDisableTransferLearning() bool {
  1795  	if x != nil {
  1796  		return x.DisableTransferLearning
  1797  	}
  1798  	return false
  1799  }
  1800  
  1801  func (x *StudySpec_TransferLearningConfig) GetPriorStudyNames() []string {
  1802  	if x != nil {
  1803  		return x.PriorStudyNames
  1804  	}
  1805  	return nil
  1806  }
  1807  
  1808  // The configuration (stopping conditions) for automated stopping of a Study.
  1809  // Conditions include trial budgets, time budgets, and convergence detection.
  1810  type StudySpec_StudyStoppingConfig struct {
  1811  	state         protoimpl.MessageState
  1812  	sizeCache     protoimpl.SizeCache
  1813  	unknownFields protoimpl.UnknownFields
  1814  
  1815  	// If true, a Study enters STOPPING_ASAP whenever it would normally enters
  1816  	// STOPPING state.
  1817  	//
  1818  	// The bottom line is: set to true if you want to interrupt on-going
  1819  	// evaluations of Trials as soon as the study stopping condition is met.
  1820  	// (Please see Study.State documentation for the source of truth).
  1821  	ShouldStopAsap *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=should_stop_asap,json=shouldStopAsap,proto3" json:"should_stop_asap,omitempty"`
  1822  	// Each "stopping rule" in this proto specifies an "if" condition. Before
  1823  	// Vizier would generate a new suggestion, it first checks each specified
  1824  	// stopping rule, from top to bottom in this list.
  1825  	// Note that the first few rules (e.g. minimum_runtime_constraint,
  1826  	// min_num_trials) will prevent other stopping rules from being evaluated
  1827  	// until they are met. For example, setting `min_num_trials=5` and
  1828  	// `always_stop_after= 1 hour` means that the Study will ONLY stop after it
  1829  	// has 5 COMPLETED trials, even if more than an hour has passed since its
  1830  	// creation. It follows the first applicable rule (whose "if" condition is
  1831  	// satisfied) to make a stopping decision. If none of the specified rules
  1832  	// are applicable, then Vizier decides that the study should not stop.
  1833  	// If Vizier decides that the study should stop, the study enters
  1834  	// STOPPING state (or STOPPING_ASAP if should_stop_asap = true).
  1835  	// IMPORTANT: The automatic study state transition happens precisely as
  1836  	// described above; that is, deleting trials or updating StudyConfig NEVER
  1837  	// automatically moves the study state back to ACTIVE. If you want to
  1838  	// _resume_ a Study that was stopped, 1) change the stopping conditions if
  1839  	// necessary, 2) activate the study, and then 3) ask for suggestions.
  1840  	// If the specified time or duration has not passed, do not stop the
  1841  	// study.
  1842  	MinimumRuntimeConstraint *StudyTimeConstraint `protobuf:"bytes,2,opt,name=minimum_runtime_constraint,json=minimumRuntimeConstraint,proto3" json:"minimum_runtime_constraint,omitempty"`
  1843  	// If the specified time or duration has passed, stop the study.
  1844  	MaximumRuntimeConstraint *StudyTimeConstraint `protobuf:"bytes,3,opt,name=maximum_runtime_constraint,json=maximumRuntimeConstraint,proto3" json:"maximum_runtime_constraint,omitempty"`
  1845  	// If there are fewer than this many COMPLETED trials, do not stop the
  1846  	// study.
  1847  	MinNumTrials *wrapperspb.Int32Value `protobuf:"bytes,4,opt,name=min_num_trials,json=minNumTrials,proto3" json:"min_num_trials,omitempty"`
  1848  	// If there are more than this many trials, stop the study.
  1849  	MaxNumTrials *wrapperspb.Int32Value `protobuf:"bytes,5,opt,name=max_num_trials,json=maxNumTrials,proto3" json:"max_num_trials,omitempty"`
  1850  	// If the objective value has not improved for this many consecutive
  1851  	// trials, stop the study.
  1852  	//
  1853  	// WARNING: Effective only for single-objective studies.
  1854  	MaxNumTrialsNoProgress *wrapperspb.Int32Value `protobuf:"bytes,6,opt,name=max_num_trials_no_progress,json=maxNumTrialsNoProgress,proto3" json:"max_num_trials_no_progress,omitempty"`
  1855  	// If the objective value has not improved for this much time, stop the
  1856  	// study.
  1857  	//
  1858  	// WARNING: Effective only for single-objective studies.
  1859  	MaxDurationNoProgress *durationpb.Duration `protobuf:"bytes,7,opt,name=max_duration_no_progress,json=maxDurationNoProgress,proto3" json:"max_duration_no_progress,omitempty"`
  1860  }
  1861  
  1862  func (x *StudySpec_StudyStoppingConfig) Reset() {
  1863  	*x = StudySpec_StudyStoppingConfig{}
  1864  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[15]
  1865  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1866  	ms.StoreMessageInfo(mi)
  1867  }
  1868  
  1869  func (x *StudySpec_StudyStoppingConfig) String() string {
  1870  	return protoimpl.X.MessageStringOf(x)
  1871  }
  1872  
  1873  func (*StudySpec_StudyStoppingConfig) ProtoMessage() {}
  1874  
  1875  func (x *StudySpec_StudyStoppingConfig) ProtoReflect() protoreflect.Message {
  1876  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[15]
  1877  	if x != nil {
  1878  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1879  		if ms.LoadMessageInfo() == nil {
  1880  			ms.StoreMessageInfo(mi)
  1881  		}
  1882  		return ms
  1883  	}
  1884  	return mi.MessageOf(x)
  1885  }
  1886  
  1887  // Deprecated: Use StudySpec_StudyStoppingConfig.ProtoReflect.Descriptor instead.
  1888  func (*StudySpec_StudyStoppingConfig) Descriptor() ([]byte, []int) {
  1889  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 7}
  1890  }
  1891  
  1892  func (x *StudySpec_StudyStoppingConfig) GetShouldStopAsap() *wrapperspb.BoolValue {
  1893  	if x != nil {
  1894  		return x.ShouldStopAsap
  1895  	}
  1896  	return nil
  1897  }
  1898  
  1899  func (x *StudySpec_StudyStoppingConfig) GetMinimumRuntimeConstraint() *StudyTimeConstraint {
  1900  	if x != nil {
  1901  		return x.MinimumRuntimeConstraint
  1902  	}
  1903  	return nil
  1904  }
  1905  
  1906  func (x *StudySpec_StudyStoppingConfig) GetMaximumRuntimeConstraint() *StudyTimeConstraint {
  1907  	if x != nil {
  1908  		return x.MaximumRuntimeConstraint
  1909  	}
  1910  	return nil
  1911  }
  1912  
  1913  func (x *StudySpec_StudyStoppingConfig) GetMinNumTrials() *wrapperspb.Int32Value {
  1914  	if x != nil {
  1915  		return x.MinNumTrials
  1916  	}
  1917  	return nil
  1918  }
  1919  
  1920  func (x *StudySpec_StudyStoppingConfig) GetMaxNumTrials() *wrapperspb.Int32Value {
  1921  	if x != nil {
  1922  		return x.MaxNumTrials
  1923  	}
  1924  	return nil
  1925  }
  1926  
  1927  func (x *StudySpec_StudyStoppingConfig) GetMaxNumTrialsNoProgress() *wrapperspb.Int32Value {
  1928  	if x != nil {
  1929  		return x.MaxNumTrialsNoProgress
  1930  	}
  1931  	return nil
  1932  }
  1933  
  1934  func (x *StudySpec_StudyStoppingConfig) GetMaxDurationNoProgress() *durationpb.Duration {
  1935  	if x != nil {
  1936  		return x.MaxDurationNoProgress
  1937  	}
  1938  	return nil
  1939  }
  1940  
  1941  // Used in safe optimization to specify threshold levels and risk tolerance.
  1942  type StudySpec_MetricSpec_SafetyMetricConfig struct {
  1943  	state         protoimpl.MessageState
  1944  	sizeCache     protoimpl.SizeCache
  1945  	unknownFields protoimpl.UnknownFields
  1946  
  1947  	// Safety threshold (boundary value between safe and unsafe). NOTE that if
  1948  	// you leave SafetyMetricConfig unset, a default value of 0 will be used.
  1949  	SafetyThreshold float64 `protobuf:"fixed64,1,opt,name=safety_threshold,json=safetyThreshold,proto3" json:"safety_threshold,omitempty"`
  1950  	// Desired minimum fraction of safe trials (over total number of trials)
  1951  	// that should be targeted by the algorithm at any time during the
  1952  	// study (best effort). This should be between 0.0 and 1.0 and a value of
  1953  	// 0.0 means that there is no minimum and an algorithm proceeds without
  1954  	// targeting any specific fraction. A value of 1.0 means that the
  1955  	// algorithm attempts to only Suggest safe Trials.
  1956  	DesiredMinSafeTrialsFraction *float64 `protobuf:"fixed64,2,opt,name=desired_min_safe_trials_fraction,json=desiredMinSafeTrialsFraction,proto3,oneof" json:"desired_min_safe_trials_fraction,omitempty"`
  1957  }
  1958  
  1959  func (x *StudySpec_MetricSpec_SafetyMetricConfig) Reset() {
  1960  	*x = StudySpec_MetricSpec_SafetyMetricConfig{}
  1961  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16]
  1962  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1963  	ms.StoreMessageInfo(mi)
  1964  }
  1965  
  1966  func (x *StudySpec_MetricSpec_SafetyMetricConfig) String() string {
  1967  	return protoimpl.X.MessageStringOf(x)
  1968  }
  1969  
  1970  func (*StudySpec_MetricSpec_SafetyMetricConfig) ProtoMessage() {}
  1971  
  1972  func (x *StudySpec_MetricSpec_SafetyMetricConfig) ProtoReflect() protoreflect.Message {
  1973  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16]
  1974  	if x != nil {
  1975  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1976  		if ms.LoadMessageInfo() == nil {
  1977  			ms.StoreMessageInfo(mi)
  1978  		}
  1979  		return ms
  1980  	}
  1981  	return mi.MessageOf(x)
  1982  }
  1983  
  1984  // Deprecated: Use StudySpec_MetricSpec_SafetyMetricConfig.ProtoReflect.Descriptor instead.
  1985  func (*StudySpec_MetricSpec_SafetyMetricConfig) Descriptor() ([]byte, []int) {
  1986  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 0, 0}
  1987  }
  1988  
  1989  func (x *StudySpec_MetricSpec_SafetyMetricConfig) GetSafetyThreshold() float64 {
  1990  	if x != nil {
  1991  		return x.SafetyThreshold
  1992  	}
  1993  	return 0
  1994  }
  1995  
  1996  func (x *StudySpec_MetricSpec_SafetyMetricConfig) GetDesiredMinSafeTrialsFraction() float64 {
  1997  	if x != nil && x.DesiredMinSafeTrialsFraction != nil {
  1998  		return *x.DesiredMinSafeTrialsFraction
  1999  	}
  2000  	return 0
  2001  }
  2002  
  2003  // Value specification for a parameter in `DOUBLE` type.
  2004  type StudySpec_ParameterSpec_DoubleValueSpec struct {
  2005  	state         protoimpl.MessageState
  2006  	sizeCache     protoimpl.SizeCache
  2007  	unknownFields protoimpl.UnknownFields
  2008  
  2009  	// Required. Inclusive minimum value of the parameter.
  2010  	MinValue float64 `protobuf:"fixed64,1,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"`
  2011  	// Required. Inclusive maximum value of the parameter.
  2012  	MaxValue float64 `protobuf:"fixed64,2,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"`
  2013  	// A default value for a `DOUBLE` parameter that is assumed to be a
  2014  	// relatively good starting point.  Unset value signals that there is no
  2015  	// offered starting point.
  2016  	//
  2017  	// Currently only supported by the Vertex AI Vizier service. Not supported
  2018  	// by HyperparameterTuningJob or TrainingPipeline.
  2019  	DefaultValue *float64 `protobuf:"fixed64,4,opt,name=default_value,json=defaultValue,proto3,oneof" json:"default_value,omitempty"`
  2020  }
  2021  
  2022  func (x *StudySpec_ParameterSpec_DoubleValueSpec) Reset() {
  2023  	*x = StudySpec_ParameterSpec_DoubleValueSpec{}
  2024  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17]
  2025  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2026  	ms.StoreMessageInfo(mi)
  2027  }
  2028  
  2029  func (x *StudySpec_ParameterSpec_DoubleValueSpec) String() string {
  2030  	return protoimpl.X.MessageStringOf(x)
  2031  }
  2032  
  2033  func (*StudySpec_ParameterSpec_DoubleValueSpec) ProtoMessage() {}
  2034  
  2035  func (x *StudySpec_ParameterSpec_DoubleValueSpec) ProtoReflect() protoreflect.Message {
  2036  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17]
  2037  	if x != nil {
  2038  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2039  		if ms.LoadMessageInfo() == nil {
  2040  			ms.StoreMessageInfo(mi)
  2041  		}
  2042  		return ms
  2043  	}
  2044  	return mi.MessageOf(x)
  2045  }
  2046  
  2047  // Deprecated: Use StudySpec_ParameterSpec_DoubleValueSpec.ProtoReflect.Descriptor instead.
  2048  func (*StudySpec_ParameterSpec_DoubleValueSpec) Descriptor() ([]byte, []int) {
  2049  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 0}
  2050  }
  2051  
  2052  func (x *StudySpec_ParameterSpec_DoubleValueSpec) GetMinValue() float64 {
  2053  	if x != nil {
  2054  		return x.MinValue
  2055  	}
  2056  	return 0
  2057  }
  2058  
  2059  func (x *StudySpec_ParameterSpec_DoubleValueSpec) GetMaxValue() float64 {
  2060  	if x != nil {
  2061  		return x.MaxValue
  2062  	}
  2063  	return 0
  2064  }
  2065  
  2066  func (x *StudySpec_ParameterSpec_DoubleValueSpec) GetDefaultValue() float64 {
  2067  	if x != nil && x.DefaultValue != nil {
  2068  		return *x.DefaultValue
  2069  	}
  2070  	return 0
  2071  }
  2072  
  2073  // Value specification for a parameter in `INTEGER` type.
  2074  type StudySpec_ParameterSpec_IntegerValueSpec struct {
  2075  	state         protoimpl.MessageState
  2076  	sizeCache     protoimpl.SizeCache
  2077  	unknownFields protoimpl.UnknownFields
  2078  
  2079  	// Required. Inclusive minimum value of the parameter.
  2080  	MinValue int64 `protobuf:"varint,1,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"`
  2081  	// Required. Inclusive maximum value of the parameter.
  2082  	MaxValue int64 `protobuf:"varint,2,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"`
  2083  	// A default value for an `INTEGER` parameter that is assumed to be a
  2084  	// relatively good starting point.  Unset value signals that there is no
  2085  	// offered starting point.
  2086  	//
  2087  	// Currently only supported by the Vertex AI Vizier service. Not supported
  2088  	// by HyperparameterTuningJob or TrainingPipeline.
  2089  	DefaultValue *int64 `protobuf:"varint,4,opt,name=default_value,json=defaultValue,proto3,oneof" json:"default_value,omitempty"`
  2090  }
  2091  
  2092  func (x *StudySpec_ParameterSpec_IntegerValueSpec) Reset() {
  2093  	*x = StudySpec_ParameterSpec_IntegerValueSpec{}
  2094  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18]
  2095  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2096  	ms.StoreMessageInfo(mi)
  2097  }
  2098  
  2099  func (x *StudySpec_ParameterSpec_IntegerValueSpec) String() string {
  2100  	return protoimpl.X.MessageStringOf(x)
  2101  }
  2102  
  2103  func (*StudySpec_ParameterSpec_IntegerValueSpec) ProtoMessage() {}
  2104  
  2105  func (x *StudySpec_ParameterSpec_IntegerValueSpec) ProtoReflect() protoreflect.Message {
  2106  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18]
  2107  	if x != nil {
  2108  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2109  		if ms.LoadMessageInfo() == nil {
  2110  			ms.StoreMessageInfo(mi)
  2111  		}
  2112  		return ms
  2113  	}
  2114  	return mi.MessageOf(x)
  2115  }
  2116  
  2117  // Deprecated: Use StudySpec_ParameterSpec_IntegerValueSpec.ProtoReflect.Descriptor instead.
  2118  func (*StudySpec_ParameterSpec_IntegerValueSpec) Descriptor() ([]byte, []int) {
  2119  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 1}
  2120  }
  2121  
  2122  func (x *StudySpec_ParameterSpec_IntegerValueSpec) GetMinValue() int64 {
  2123  	if x != nil {
  2124  		return x.MinValue
  2125  	}
  2126  	return 0
  2127  }
  2128  
  2129  func (x *StudySpec_ParameterSpec_IntegerValueSpec) GetMaxValue() int64 {
  2130  	if x != nil {
  2131  		return x.MaxValue
  2132  	}
  2133  	return 0
  2134  }
  2135  
  2136  func (x *StudySpec_ParameterSpec_IntegerValueSpec) GetDefaultValue() int64 {
  2137  	if x != nil && x.DefaultValue != nil {
  2138  		return *x.DefaultValue
  2139  	}
  2140  	return 0
  2141  }
  2142  
  2143  // Value specification for a parameter in `CATEGORICAL` type.
  2144  type StudySpec_ParameterSpec_CategoricalValueSpec struct {
  2145  	state         protoimpl.MessageState
  2146  	sizeCache     protoimpl.SizeCache
  2147  	unknownFields protoimpl.UnknownFields
  2148  
  2149  	// Required. The list of possible categories.
  2150  	Values []string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
  2151  	// A default value for a `CATEGORICAL` parameter that is assumed to be a
  2152  	// relatively good starting point.  Unset value signals that there is no
  2153  	// offered starting point.
  2154  	//
  2155  	// Currently only supported by the Vertex AI Vizier service. Not supported
  2156  	// by HyperparameterTuningJob or TrainingPipeline.
  2157  	DefaultValue *string `protobuf:"bytes,3,opt,name=default_value,json=defaultValue,proto3,oneof" json:"default_value,omitempty"`
  2158  }
  2159  
  2160  func (x *StudySpec_ParameterSpec_CategoricalValueSpec) Reset() {
  2161  	*x = StudySpec_ParameterSpec_CategoricalValueSpec{}
  2162  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19]
  2163  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2164  	ms.StoreMessageInfo(mi)
  2165  }
  2166  
  2167  func (x *StudySpec_ParameterSpec_CategoricalValueSpec) String() string {
  2168  	return protoimpl.X.MessageStringOf(x)
  2169  }
  2170  
  2171  func (*StudySpec_ParameterSpec_CategoricalValueSpec) ProtoMessage() {}
  2172  
  2173  func (x *StudySpec_ParameterSpec_CategoricalValueSpec) ProtoReflect() protoreflect.Message {
  2174  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19]
  2175  	if x != nil {
  2176  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2177  		if ms.LoadMessageInfo() == nil {
  2178  			ms.StoreMessageInfo(mi)
  2179  		}
  2180  		return ms
  2181  	}
  2182  	return mi.MessageOf(x)
  2183  }
  2184  
  2185  // Deprecated: Use StudySpec_ParameterSpec_CategoricalValueSpec.ProtoReflect.Descriptor instead.
  2186  func (*StudySpec_ParameterSpec_CategoricalValueSpec) Descriptor() ([]byte, []int) {
  2187  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 2}
  2188  }
  2189  
  2190  func (x *StudySpec_ParameterSpec_CategoricalValueSpec) GetValues() []string {
  2191  	if x != nil {
  2192  		return x.Values
  2193  	}
  2194  	return nil
  2195  }
  2196  
  2197  func (x *StudySpec_ParameterSpec_CategoricalValueSpec) GetDefaultValue() string {
  2198  	if x != nil && x.DefaultValue != nil {
  2199  		return *x.DefaultValue
  2200  	}
  2201  	return ""
  2202  }
  2203  
  2204  // Value specification for a parameter in `DISCRETE` type.
  2205  type StudySpec_ParameterSpec_DiscreteValueSpec struct {
  2206  	state         protoimpl.MessageState
  2207  	sizeCache     protoimpl.SizeCache
  2208  	unknownFields protoimpl.UnknownFields
  2209  
  2210  	// Required. A list of possible values.
  2211  	// The list should be in increasing order and at least 1e-10 apart.
  2212  	// For instance, this parameter might have possible settings of 1.5, 2.5,
  2213  	// and 4.0. This list should not contain more than 1,000 values.
  2214  	Values []float64 `protobuf:"fixed64,1,rep,packed,name=values,proto3" json:"values,omitempty"`
  2215  	// A default value for a `DISCRETE` parameter that is assumed to be a
  2216  	// relatively good starting point.  Unset value signals that there is no
  2217  	// offered starting point.  It automatically rounds to the
  2218  	// nearest feasible discrete point.
  2219  	//
  2220  	// Currently only supported by the Vertex AI Vizier service. Not supported
  2221  	// by HyperparameterTuningJob or TrainingPipeline.
  2222  	DefaultValue *float64 `protobuf:"fixed64,3,opt,name=default_value,json=defaultValue,proto3,oneof" json:"default_value,omitempty"`
  2223  }
  2224  
  2225  func (x *StudySpec_ParameterSpec_DiscreteValueSpec) Reset() {
  2226  	*x = StudySpec_ParameterSpec_DiscreteValueSpec{}
  2227  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[20]
  2228  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2229  	ms.StoreMessageInfo(mi)
  2230  }
  2231  
  2232  func (x *StudySpec_ParameterSpec_DiscreteValueSpec) String() string {
  2233  	return protoimpl.X.MessageStringOf(x)
  2234  }
  2235  
  2236  func (*StudySpec_ParameterSpec_DiscreteValueSpec) ProtoMessage() {}
  2237  
  2238  func (x *StudySpec_ParameterSpec_DiscreteValueSpec) ProtoReflect() protoreflect.Message {
  2239  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[20]
  2240  	if x != nil {
  2241  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2242  		if ms.LoadMessageInfo() == nil {
  2243  			ms.StoreMessageInfo(mi)
  2244  		}
  2245  		return ms
  2246  	}
  2247  	return mi.MessageOf(x)
  2248  }
  2249  
  2250  // Deprecated: Use StudySpec_ParameterSpec_DiscreteValueSpec.ProtoReflect.Descriptor instead.
  2251  func (*StudySpec_ParameterSpec_DiscreteValueSpec) Descriptor() ([]byte, []int) {
  2252  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 3}
  2253  }
  2254  
  2255  func (x *StudySpec_ParameterSpec_DiscreteValueSpec) GetValues() []float64 {
  2256  	if x != nil {
  2257  		return x.Values
  2258  	}
  2259  	return nil
  2260  }
  2261  
  2262  func (x *StudySpec_ParameterSpec_DiscreteValueSpec) GetDefaultValue() float64 {
  2263  	if x != nil && x.DefaultValue != nil {
  2264  		return *x.DefaultValue
  2265  	}
  2266  	return 0
  2267  }
  2268  
  2269  // Represents a parameter spec with condition from its parent parameter.
  2270  type StudySpec_ParameterSpec_ConditionalParameterSpec struct {
  2271  	state         protoimpl.MessageState
  2272  	sizeCache     protoimpl.SizeCache
  2273  	unknownFields protoimpl.UnknownFields
  2274  
  2275  	// A set of parameter values from the parent ParameterSpec's feasible
  2276  	// space.
  2277  	//
  2278  	// Types that are assignable to ParentValueCondition:
  2279  	//
  2280  	//	*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues
  2281  	//	*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues
  2282  	//	*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues
  2283  	ParentValueCondition isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition `protobuf_oneof:"parent_value_condition"`
  2284  	// Required. The spec for a conditional parameter.
  2285  	ParameterSpec *StudySpec_ParameterSpec `protobuf:"bytes,1,opt,name=parameter_spec,json=parameterSpec,proto3" json:"parameter_spec,omitempty"`
  2286  }
  2287  
  2288  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) Reset() {
  2289  	*x = StudySpec_ParameterSpec_ConditionalParameterSpec{}
  2290  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[21]
  2291  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2292  	ms.StoreMessageInfo(mi)
  2293  }
  2294  
  2295  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) String() string {
  2296  	return protoimpl.X.MessageStringOf(x)
  2297  }
  2298  
  2299  func (*StudySpec_ParameterSpec_ConditionalParameterSpec) ProtoMessage() {}
  2300  
  2301  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) ProtoReflect() protoreflect.Message {
  2302  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[21]
  2303  	if x != nil {
  2304  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2305  		if ms.LoadMessageInfo() == nil {
  2306  			ms.StoreMessageInfo(mi)
  2307  		}
  2308  		return ms
  2309  	}
  2310  	return mi.MessageOf(x)
  2311  }
  2312  
  2313  // Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec.ProtoReflect.Descriptor instead.
  2314  func (*StudySpec_ParameterSpec_ConditionalParameterSpec) Descriptor() ([]byte, []int) {
  2315  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 4}
  2316  }
  2317  
  2318  func (m *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentValueCondition() isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition {
  2319  	if m != nil {
  2320  		return m.ParentValueCondition
  2321  	}
  2322  	return nil
  2323  }
  2324  
  2325  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentDiscreteValues() *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition {
  2326  	if x, ok := x.GetParentValueCondition().(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues); ok {
  2327  		return x.ParentDiscreteValues
  2328  	}
  2329  	return nil
  2330  }
  2331  
  2332  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentIntValues() *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition {
  2333  	if x, ok := x.GetParentValueCondition().(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues); ok {
  2334  		return x.ParentIntValues
  2335  	}
  2336  	return nil
  2337  }
  2338  
  2339  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentCategoricalValues() *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition {
  2340  	if x, ok := x.GetParentValueCondition().(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues); ok {
  2341  		return x.ParentCategoricalValues
  2342  	}
  2343  	return nil
  2344  }
  2345  
  2346  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParameterSpec() *StudySpec_ParameterSpec {
  2347  	if x != nil {
  2348  		return x.ParameterSpec
  2349  	}
  2350  	return nil
  2351  }
  2352  
  2353  type isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition interface {
  2354  	isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition()
  2355  }
  2356  
  2357  type StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues struct {
  2358  	// The spec for matching values from a parent parameter of
  2359  	// `DISCRETE` type.
  2360  	ParentDiscreteValues *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition `protobuf:"bytes,2,opt,name=parent_discrete_values,json=parentDiscreteValues,proto3,oneof"`
  2361  }
  2362  
  2363  type StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues struct {
  2364  	// The spec for matching values from a parent parameter of `INTEGER`
  2365  	// type.
  2366  	ParentIntValues *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition `protobuf:"bytes,3,opt,name=parent_int_values,json=parentIntValues,proto3,oneof"`
  2367  }
  2368  
  2369  type StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues struct {
  2370  	// The spec for matching values from a parent parameter of
  2371  	// `CATEGORICAL` type.
  2372  	ParentCategoricalValues *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition `protobuf:"bytes,4,opt,name=parent_categorical_values,json=parentCategoricalValues,proto3,oneof"`
  2373  }
  2374  
  2375  func (*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues) isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition() {
  2376  }
  2377  
  2378  func (*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues) isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition() {
  2379  }
  2380  
  2381  func (*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues) isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition() {
  2382  }
  2383  
  2384  // Represents the spec to match discrete values from parent parameter.
  2385  type StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition struct {
  2386  	state         protoimpl.MessageState
  2387  	sizeCache     protoimpl.SizeCache
  2388  	unknownFields protoimpl.UnknownFields
  2389  
  2390  	// Required. Matches values of the parent parameter of 'DISCRETE' type.
  2391  	// All values must exist in `discrete_value_spec` of parent parameter.
  2392  	//
  2393  	// The Epsilon of the value matching is 1e-10.
  2394  	Values []float64 `protobuf:"fixed64,1,rep,packed,name=values,proto3" json:"values,omitempty"`
  2395  }
  2396  
  2397  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) Reset() {
  2398  	*x = StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition{}
  2399  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[22]
  2400  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2401  	ms.StoreMessageInfo(mi)
  2402  }
  2403  
  2404  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) String() string {
  2405  	return protoimpl.X.MessageStringOf(x)
  2406  }
  2407  
  2408  func (*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) ProtoMessage() {}
  2409  
  2410  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) ProtoReflect() protoreflect.Message {
  2411  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[22]
  2412  	if x != nil {
  2413  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2414  		if ms.LoadMessageInfo() == nil {
  2415  			ms.StoreMessageInfo(mi)
  2416  		}
  2417  		return ms
  2418  	}
  2419  	return mi.MessageOf(x)
  2420  }
  2421  
  2422  // Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition.ProtoReflect.Descriptor instead.
  2423  func (*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) Descriptor() ([]byte, []int) {
  2424  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 4, 0}
  2425  }
  2426  
  2427  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) GetValues() []float64 {
  2428  	if x != nil {
  2429  		return x.Values
  2430  	}
  2431  	return nil
  2432  }
  2433  
  2434  // Represents the spec to match integer values from parent parameter.
  2435  type StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition struct {
  2436  	state         protoimpl.MessageState
  2437  	sizeCache     protoimpl.SizeCache
  2438  	unknownFields protoimpl.UnknownFields
  2439  
  2440  	// Required. Matches values of the parent parameter of 'INTEGER' type.
  2441  	// All values must lie in `integer_value_spec` of parent parameter.
  2442  	Values []int64 `protobuf:"varint,1,rep,packed,name=values,proto3" json:"values,omitempty"`
  2443  }
  2444  
  2445  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) Reset() {
  2446  	*x = StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition{}
  2447  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[23]
  2448  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2449  	ms.StoreMessageInfo(mi)
  2450  }
  2451  
  2452  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) String() string {
  2453  	return protoimpl.X.MessageStringOf(x)
  2454  }
  2455  
  2456  func (*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) ProtoMessage() {}
  2457  
  2458  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) ProtoReflect() protoreflect.Message {
  2459  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[23]
  2460  	if x != nil {
  2461  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2462  		if ms.LoadMessageInfo() == nil {
  2463  			ms.StoreMessageInfo(mi)
  2464  		}
  2465  		return ms
  2466  	}
  2467  	return mi.MessageOf(x)
  2468  }
  2469  
  2470  // Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition.ProtoReflect.Descriptor instead.
  2471  func (*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) Descriptor() ([]byte, []int) {
  2472  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 4, 1}
  2473  }
  2474  
  2475  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) GetValues() []int64 {
  2476  	if x != nil {
  2477  		return x.Values
  2478  	}
  2479  	return nil
  2480  }
  2481  
  2482  // Represents the spec to match categorical values from parent parameter.
  2483  type StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition struct {
  2484  	state         protoimpl.MessageState
  2485  	sizeCache     protoimpl.SizeCache
  2486  	unknownFields protoimpl.UnknownFields
  2487  
  2488  	// Required. Matches values of the parent parameter of 'CATEGORICAL'
  2489  	// type. All values must exist in `categorical_value_spec` of parent
  2490  	// parameter.
  2491  	Values []string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
  2492  }
  2493  
  2494  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) Reset() {
  2495  	*x = StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition{}
  2496  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[24]
  2497  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2498  	ms.StoreMessageInfo(mi)
  2499  }
  2500  
  2501  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) String() string {
  2502  	return protoimpl.X.MessageStringOf(x)
  2503  }
  2504  
  2505  func (*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) ProtoMessage() {}
  2506  
  2507  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) ProtoReflect() protoreflect.Message {
  2508  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[24]
  2509  	if x != nil {
  2510  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2511  		if ms.LoadMessageInfo() == nil {
  2512  			ms.StoreMessageInfo(mi)
  2513  		}
  2514  		return ms
  2515  	}
  2516  	return mi.MessageOf(x)
  2517  }
  2518  
  2519  // Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition.ProtoReflect.Descriptor instead.
  2520  func (*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) Descriptor() ([]byte, []int) {
  2521  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 4, 2}
  2522  }
  2523  
  2524  func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) GetValues() []string {
  2525  	if x != nil {
  2526  		return x.Values
  2527  	}
  2528  	return nil
  2529  }
  2530  
  2531  // A message representing a metric in the measurement.
  2532  type Measurement_Metric struct {
  2533  	state         protoimpl.MessageState
  2534  	sizeCache     protoimpl.SizeCache
  2535  	unknownFields protoimpl.UnknownFields
  2536  
  2537  	// Output only. The ID of the Metric. The Metric should be defined in
  2538  	// [StudySpec's Metrics][google.cloud.aiplatform.v1beta1.StudySpec.metrics].
  2539  	MetricId string `protobuf:"bytes,1,opt,name=metric_id,json=metricId,proto3" json:"metric_id,omitempty"`
  2540  	// Output only. The value for this metric.
  2541  	Value float64 `protobuf:"fixed64,2,opt,name=value,proto3" json:"value,omitempty"`
  2542  }
  2543  
  2544  func (x *Measurement_Metric) Reset() {
  2545  	*x = Measurement_Metric{}
  2546  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[25]
  2547  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2548  	ms.StoreMessageInfo(mi)
  2549  }
  2550  
  2551  func (x *Measurement_Metric) String() string {
  2552  	return protoimpl.X.MessageStringOf(x)
  2553  }
  2554  
  2555  func (*Measurement_Metric) ProtoMessage() {}
  2556  
  2557  func (x *Measurement_Metric) ProtoReflect() protoreflect.Message {
  2558  	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[25]
  2559  	if x != nil {
  2560  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2561  		if ms.LoadMessageInfo() == nil {
  2562  			ms.StoreMessageInfo(mi)
  2563  		}
  2564  		return ms
  2565  	}
  2566  	return mi.MessageOf(x)
  2567  }
  2568  
  2569  // Deprecated: Use Measurement_Metric.ProtoReflect.Descriptor instead.
  2570  func (*Measurement_Metric) Descriptor() ([]byte, []int) {
  2571  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{5, 0}
  2572  }
  2573  
  2574  func (x *Measurement_Metric) GetMetricId() string {
  2575  	if x != nil {
  2576  		return x.MetricId
  2577  	}
  2578  	return ""
  2579  }
  2580  
  2581  func (x *Measurement_Metric) GetValue() float64 {
  2582  	if x != nil {
  2583  		return x.Value
  2584  	}
  2585  	return 0
  2586  }
  2587  
  2588  var File_google_cloud_aiplatform_v1beta1_study_proto protoreflect.FileDescriptor
  2589  
  2590  var file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc = []byte{
  2591  	0x0a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61,
  2592  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
  2593  	0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67,
  2594  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
  2595  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1f,
  2596  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64,
  2597  	0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
  2598  	0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f,
  2599  	0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67,
  2600  	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61,
  2601  	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67,
  2602  	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75,
  2603  	0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  2604  	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
  2605  	0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2606  	0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70,
  2607  	0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf9, 0x03, 0x0a, 0x05, 0x53, 0x74,
  2608  	0x75, 0x64, 0x79, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
  2609  	0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c,
  2610  	0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
  2611  	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
  2612  	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x0a, 0x73, 0x74, 0x75, 0x64, 0x79, 0x5f, 0x73, 0x70,
  2613  	0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2614  	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
  2615  	0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79,
  2616  	0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x75, 0x64, 0x79,
  2617  	0x53, 0x70, 0x65, 0x63, 0x12, 0x47, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20,
  2618  	0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
  2619  	0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
  2620  	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x2e, 0x53, 0x74, 0x61, 0x74,
  2621  	0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a,
  2622  	0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01,
  2623  	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  2624  	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03,
  2625  	0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12,
  2626  	0x2c, 0x0a, 0x0f, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73,
  2627  	0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x69,
  2628  	0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x47, 0x0a,
  2629  	0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f,
  2630  	0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a,
  2631  	0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x41,
  2632  	0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c,
  2633  	0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x3a, 0x5d, 0xea, 0x41, 0x5a, 0x0a, 0x1f, 0x61, 0x69, 0x70,
  2634  	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
  2635  	0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x75, 0x64, 0x79, 0x12, 0x37, 0x70, 0x72,
  2636  	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d,
  2637  	0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61,
  2638  	0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x73,
  2639  	0x74, 0x75, 0x64, 0x79, 0x7d, 0x22, 0x90, 0x09, 0x0a, 0x05, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x12,
  2640  	0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
  2641  	0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02,
  2642  	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x47, 0x0a,
  2643  	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67,
  2644  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
  2645  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54,
  2646  	0x72, 0x69, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
  2647  	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65,
  2648  	0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f,
  2649  	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
  2650  	0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x69,
  2651  	0x61, 0x6c, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41,
  2652  	0x03, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5e, 0x0a,
  2653  	0x11, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65,
  2654  	0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2655  	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
  2656  	0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75,
  2657  	0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x66, 0x69, 0x6e,
  2658  	0x61, 0x6c, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x55, 0x0a,
  2659  	0x0c, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20,
  2660  	0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
  2661  	0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
  2662  	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e,
  2663  	0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d,
  2664  	0x65, 0x6e, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69,
  2665  	0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2666  	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
  2667  	0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74,
  2668  	0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65,
  2669  	0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  2670  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
  2671  	0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65,
  2672  	0x12, 0x20, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20,
  2673  	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
  2674  	0x49, 0x64, 0x12, 0x30, 0x0a, 0x11, 0x69, 0x6e, 0x66, 0x65, 0x61, 0x73, 0x69, 0x62, 0x6c, 0x65,
  2675  	0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
  2676  	0x41, 0x03, 0x52, 0x10, 0x69, 0x6e, 0x66, 0x65, 0x61, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x52, 0x65,
  2677  	0x61, 0x73, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6a,
  2678  	0x6f, 0x62, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x25,
  2679  	0x0a, 0x23, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f,
  2680  	0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x75, 0x73, 0x74,
  2681  	0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x52, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62,
  2682  	0x12, 0x66, 0x0a, 0x0f, 0x77, 0x65, 0x62, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x75,
  2683  	0x72, 0x69, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  2684  	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
  2685  	0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x61,
  2686  	0x6c, 0x2e, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x69, 0x73, 0x45,
  2687  	0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x77, 0x65, 0x62, 0x41, 0x63,
  2688  	0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x69, 0x73, 0x1a, 0x66, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61,
  2689  	0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
  2690  	0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03,
  2691  	0x52, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x31, 0x0a,
  2692  	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67,
  2693  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56,
  2694  	0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
  2695  	0x1a, 0x40, 0x0a, 0x12, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x69,
  2696  	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
  2697  	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
  2698  	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
  2699  	0x38, 0x01, 0x22, 0x66, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53,
  2700  	0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
  2701  	0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x45, 0x44, 0x10,
  2702  	0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0c, 0x0a,
  2703  	0x08, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x53,
  2704  	0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4e,
  2705  	0x46, 0x45, 0x41, 0x53, 0x49, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x3a, 0x6c, 0xea, 0x41, 0x69, 0x0a,
  2706  	0x1f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  2707  	0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x72, 0x69, 0x61, 0x6c,
  2708  	0x12, 0x46, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a,
  2709  	0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b,
  2710  	0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x69, 0x65,
  2711  	0x73, 0x2f, 0x7b, 0x73, 0x74, 0x75, 0x64, 0x79, 0x7d, 0x2f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73,
  2712  	0x2f, 0x7b, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x7d, 0x22, 0x82, 0x01, 0x0a, 0x0c, 0x54, 0x72, 0x69,
  2713  	0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73,
  2714  	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
  2715  	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0a, 0x70,
  2716  	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
  2717  	0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61,
  2718  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
  2719  	0x31, 0x2e, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
  2720  	0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x9c, 0x01,
  2721  	0x0a, 0x13, 0x53, 0x74, 0x75, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74,
  2722  	0x72, 0x61, 0x69, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x75, 0x72,
  2723  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
  2724  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
  2725  	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x44, 0x75, 0x72,
  2726  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d,
  2727  	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  2728  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
  2729  	0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0c,
  2730  	0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x22, 0xc4, 0x2e, 0x0a,
  2731  	0x09, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x87, 0x01, 0x0a, 0x19, 0x64,
  2732  	0x65, 0x63, 0x61, 0x79, 0x5f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70,
  2733  	0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a,
  2734  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
  2735  	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
  2736  	0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x61, 0x79,
  2737  	0x43, 0x75, 0x72, 0x76, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74,
  2738  	0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x16, 0x64, 0x65,
  2739  	0x63, 0x61, 0x79, 0x43, 0x75, 0x72, 0x76, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67,
  2740  	0x53, 0x70, 0x65, 0x63, 0x12, 0x8d, 0x01, 0x0a, 0x1e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x5f,
  2741  	0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69,
  2742  	0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e,
  2743  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
  2744  	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
  2745  	0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x6e,
  2746  	0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e,
  2747  	0x67, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x1b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x41,
  2748  	0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67,
  2749  	0x53, 0x70, 0x65, 0x63, 0x12, 0x6f, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x5f, 0x73,
  2750  	0x74, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,
  2751  	0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
  2752  	0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
  2753  	0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e,
  2754  	0x76, 0x65, 0x78, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x02, 0x18,
  2755  	0x01, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x53, 0x74, 0x6f, 0x70, 0x43,
  2756  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x8d, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78,
  2757  	0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70,
  2758  	0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46,
  2759  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
  2760  	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
  2761  	0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65,
  2762  	0x78, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69,
  2763  	0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x1b, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78,
  2764  	0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e,
  2765  	0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x54, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
  2766  	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  2767  	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
  2768  	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70,
  2769  	0x65, 0x63, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0,
  2770  	0x41, 0x02, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x5d, 0x0a, 0x0a, 0x70,
  2771  	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
  2772  	0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61,
  2773  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
  2774  	0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61,
  2775  	0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a,
  2776  	0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x09, 0x61, 0x6c,
  2777  	0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e,
  2778  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
  2779  	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
  2780  	0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69,
  2781  	0x74, 0x68, 0x6d, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x68,
  2782  	0x0a, 0x11, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f,
  2783  	0x69, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  2784  	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
  2785  	0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64,
  2786  	0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f,
  2787  	0x6e, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x52, 0x10, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74,
  2788  	0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x1a, 0x6d, 0x65, 0x61,
  2789  	0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69,
  2790  	0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x43, 0x2e,
  2791  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
  2792  	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
  2793  	0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72,
  2794  	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79,
  2795  	0x70, 0x65, 0x52, 0x18, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53,
  2796  	0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x7b, 0x0a, 0x18,
  2797  	0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e,
  2798  	0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41,
  2799  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
  2800  	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
  2801  	0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73,
  2802  	0x66, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  2803  	0x67, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x72, 0x6e,
  2804  	0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x77, 0x0a, 0x15, 0x73, 0x74, 0x75,
  2805  	0x64, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
  2806  	0x69, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2807  	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
  2808  	0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79,
  2809  	0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69,
  2810  	0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x01, 0x52, 0x13, 0x73, 0x74, 0x75, 0x64,
  2811  	0x79, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88,
  2812  	0x01, 0x01, 0x1a, 0x84, 0x04, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65,
  2813  	0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01,
  2814  	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x72, 0x69,
  2815  	0x63, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,
  2816  	0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
  2817  	0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
  2818  	0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65,
  2819  	0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x47, 0x6f, 0x61, 0x6c, 0x54, 0x79, 0x70,
  2820  	0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x12, 0x72, 0x0a, 0x0d,
  2821  	0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20,
  2822  	0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
  2823  	0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
  2824  	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e,
  2825  	0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74,
  2826  	0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52,
  2827  	0x0c, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01,
  2828  	0x1a, 0xb1, 0x01, 0x0a, 0x12, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69,
  2829  	0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x61, 0x66, 0x65, 0x74,
  2830  	0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
  2831  	0x01, 0x52, 0x0f, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
  2832  	0x6c, 0x64, 0x12, 0x4b, 0x0a, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69,
  2833  	0x6e, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x66, 0x72,
  2834  	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x1c,
  2835  	0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x61, 0x66, 0x65, 0x54, 0x72,
  2836  	0x69, 0x61, 0x6c, 0x73, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42,
  2837  	0x23, 0x0a, 0x21, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f,
  2838  	0x73, 0x61, 0x66, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x66, 0x72, 0x61, 0x63,
  2839  	0x74, 0x69, 0x6f, 0x6e, 0x22, 0x41, 0x0a, 0x08, 0x47, 0x6f, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65,
  2840  	0x12, 0x19, 0x0a, 0x15, 0x47, 0x4f, 0x41, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e,
  2841  	0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4d,
  2842  	0x41, 0x58, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x49, 0x4e,
  2843  	0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x61, 0x66, 0x65,
  2844  	0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0xda, 0x11, 0x0a, 0x0d, 0x50, 0x61,
  2845  	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x76, 0x0a, 0x11, 0x64,
  2846  	0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63,
  2847  	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  2848  	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
  2849  	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70,
  2850  	0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63,
  2851  	0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63,
  2852  	0x48, 0x00, 0x52, 0x0f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53,
  2853  	0x70, 0x65, 0x63, 0x12, 0x79, 0x0a, 0x12, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x76,
  2854  	0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
  2855  	0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61,
  2856  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
  2857  	0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61,
  2858  	0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65,
  2859  	0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e,
  2860  	0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x85,
  2861  	0x01, 0x0a, 0x16, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x76,
  2862  	0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
  2863  	0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61,
  2864  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
  2865  	0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61,
  2866  	0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f,
  2867  	0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00,
  2868  	0x52, 0x14, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c,
  2869  	0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x7c, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, 0x72, 0x65,
  2870  	0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20,
  2871  	0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
  2872  	0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
  2873  	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e,
  2874  	0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x69,
  2875  	0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48,
  2876  	0x00, 0x52, 0x11, 0x64, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65,
  2877  	0x53, 0x70, 0x65, 0x63, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
  2878  	0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
  2879  	0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x61, 0x0a, 0x0a,
  2880  	0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e,
  2881  	0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
  2882  	0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
  2883  	0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72,
  2884  	0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x65,
  2885  	0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
  2886  	0x91, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,
  2887  	0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18,
  2888  	0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
  2889  	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e,
  2890  	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65,
  2891  	0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e,
  2892  	0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d,
  2893  	0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x52, 0x19, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74,
  2894  	0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70,
  2895  	0x65, 0x63, 0x73, 0x1a, 0x91, 0x01, 0x0a, 0x0f, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61,
  2896  	0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76,
  2897  	0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
  2898  	0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x61, 0x78,
  2899  	0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41,
  2900  	0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x64,
  2901  	0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01,
  2902  	0x28, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c,
  2903  	0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
  2904  	0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x92, 0x01, 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65,
  2905  	0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09,
  2906  	0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42,
  2907  	0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20,
  2908  	0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
  2909  	0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65,
  2910  	0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75,
  2911  	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75,
  2912  	0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64,
  2913  	0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x6f, 0x0a, 0x14,
  2914  	0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
  2915  	0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01,
  2916  	0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65,
  2917  	0x73, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c,
  2918  	0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61,
  2919  	0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f,
  2920  	0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x6c, 0x0a,
  2921  	0x11, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70,
  2922  	0x65, 0x63, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
  2923  	0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12,
  2924  	0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,
  2925  	0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
  2926  	0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65,
  2927  	0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xa0, 0x06, 0x0a, 0x18,
  2928  	0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d,
  2929  	0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0xa0, 0x01, 0x0a, 0x16, 0x70, 0x61, 0x72,
  2930  	0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c,
  2931  	0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  2932  	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
  2933  	0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64,
  2934  	0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53,
  2935  	0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50,
  2936  	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x69, 0x73,
  2937  	0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74,
  2938  	0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x14, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73,
  2939  	0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x91, 0x01, 0x0a, 0x11,
  2940  	0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,
  2941  	0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x63, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  2942  	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
  2943  	0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53,
  2944  	0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65,
  2945  	0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72,
  2946  	0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x56, 0x61,
  2947  	0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f,
  2948  	0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12,
  2949  	0xa9, 0x01, 0x0a, 0x19, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67,
  2950  	0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20,
  2951  	0x01, 0x28, 0x0b, 0x32, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
  2952  	0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
  2953  	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e,
  2954  	0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f,
  2955  	0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
  2956  	0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63,
  2957  	0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
  2958  	0x48, 0x00, 0x52, 0x17, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f,
  2959  	0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x64, 0x0a, 0x0e, 0x70,
  2960  	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20,
  2961  	0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
  2962  	0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
  2963  	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e,
  2964  	0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0,
  2965  	0x41, 0x02, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65,
  2966  	0x63, 0x1a, 0x35, 0x0a, 0x16, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c,
  2967  	0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x76,
  2968  	0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02,
  2969  	0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x30, 0x0a, 0x11, 0x49, 0x6e, 0x74, 0x56,
  2970  	0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a,
  2971  	0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x42, 0x03, 0xe0,
  2972  	0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x38, 0x0a, 0x19, 0x43, 0x61,
  2973  	0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f,
  2974  	0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65,
  2975  	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61,
  2976  	0x6c, 0x75, 0x65, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76,
  2977  	0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e,
  2978  	0x0a, 0x09, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x53,
  2979  	0x43, 0x41, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
  2980  	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x4e, 0x49, 0x54, 0x5f,
  2981  	0x4c, 0x49, 0x4e, 0x45, 0x41, 0x52, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x12,
  2982  	0x0a, 0x0e, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45,
  2983  	0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52,
  2984  	0x53, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x10, 0x03, 0x42, 0x16,
  2985  	0x0a, 0x14, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75,
  2986  	0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x1a, 0x53, 0x0a, 0x1f, 0x44, 0x65, 0x63, 0x61, 0x79, 0x43,
  2987  	0x75, 0x72, 0x76, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f,
  2988  	0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x73, 0x65,
  2989  	0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
  2990  	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x73, 0x65, 0x45, 0x6c, 0x61, 0x70,
  2991  	0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x4f, 0x0a, 0x1b, 0x4d,
  2992  	0x65, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74,
  2993  	0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x73,
  2994  	0x65, 0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69,
  2995  	0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x73, 0x65, 0x45, 0x6c, 0x61,
  2996  	0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xee, 0x02, 0x0a,
  2997  	0x1b, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64,
  2998  	0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x24, 0x0a, 0x0e,
  2999  	0x6d, 0x61, 0x78, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01,
  3000  	0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x53, 0x74, 0x65, 0x70, 0x43, 0x6f, 0x75,
  3001  	0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63,
  3002  	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x53,
  3003  	0x74, 0x65, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x5f,
  3004  	0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
  3005  	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x4d, 0x65, 0x61, 0x73,
  3006  	0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x1c,
  3007  	0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61,
  3008  	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01,
  3009  	0x28, 0x09, 0x52, 0x19, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65,
  3010  	0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a,
  3011  	0x14, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72,
  3012  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x73, 0x65,
  3013  	0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
  3014  	0x3e, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x74,
  3015  	0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01,
  3016  	0x28, 0x08, 0x48, 0x00, 0x52, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x53,
  3017  	0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x42,
  3018  	0x1c, 0x0a, 0x1a, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x73,
  3019  	0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x1a, 0xf3, 0x01,
  3020  	0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x66,
  3021  	0x69, 0x67, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x74,
  3022  	0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x4e, 0x75,
  3023  	0x6d, 0x53, 0x74, 0x65, 0x70, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x75,
  3024  	0x6d, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d,
  3025  	0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x53, 0x74, 0x65, 0x70, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x61, 0x75,
  3026  	0x74, 0x6f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64,
  3027  	0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65,
  3028  	0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x3f, 0x0a,
  3029  	0x1c, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70,
  3030  	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20,
  3031  	0x01, 0x28, 0x09, 0x52, 0x19, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74,
  3032  	0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f,
  3033  	0x0a, 0x0b, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20,
  3034  	0x01, 0x28, 0x08, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x3a,
  3035  	0x02, 0x18, 0x01, 0x1a, 0x85, 0x01, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
  3036  	0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a,
  3037  	0x0a, 0x19, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66,
  3038  	0x65, 0x72, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28,
  3039  	0x08, 0x52, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66,
  3040  	0x65, 0x72, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x11, 0x70, 0x72,
  3041  	0x69, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x75, 0x64, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18,
  3042  	0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x6f,
  3043  	0x72, 0x53, 0x74, 0x75, 0x64, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xf6, 0x04, 0x0a, 0x13,
  3044  	0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e,
  3045  	0x66, 0x69, 0x67, 0x12, 0x44, 0x0a, 0x10, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x73, 0x74,
  3046  	0x6f, 0x70, 0x5f, 0x61, 0x73, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
  3047  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
  3048  	0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x75, 0x6c,
  3049  	0x64, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x73, 0x61, 0x70, 0x12, 0x72, 0x0a, 0x1a, 0x6d, 0x69, 0x6e,
  3050  	0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e,
  3051  	0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e,
  3052  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
  3053  	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
  3054  	0x53, 0x74, 0x75, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61,
  3055  	0x69, 0x6e, 0x74, 0x52, 0x18, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x75, 0x6e, 0x74,
  3056  	0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x12, 0x72, 0x0a,
  3057  	0x1a, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65,
  3058  	0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
  3059  	0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
  3060  	0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
  3061  	0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e,
  3062  	0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x52, 0x18, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d,
  3063  	0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e,
  3064  	0x74, 0x12, 0x41, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x72, 0x69,
  3065  	0x61, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  3066  	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33,
  3067  	0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x54, 0x72,
  3068  	0x69, 0x61, 0x6c, 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x5f,
  3069  	0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67,
  3070  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49,
  3071  	0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x4e, 0x75,
  3072  	0x6d, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x57, 0x0a, 0x1a, 0x6d, 0x61, 0x78, 0x5f, 0x6e,
  3073  	0x75, 0x6d, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x6e, 0x6f, 0x5f, 0x70, 0x72, 0x6f,
  3074  	0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f,
  3075  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e,
  3076  	0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d,
  3077  	0x54, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73,
  3078  	0x12, 0x52, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  3079  	0x5f, 0x6e, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01,
  3080  	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  3081  	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x6d,
  3082  	0x61, 0x78, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x67,
  3083  	0x72, 0x65, 0x73, 0x73, 0x22, 0x4a, 0x0a, 0x09, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68,
  3084  	0x6d, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x55,
  3085  	0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b,
  3086  	0x47, 0x52, 0x49, 0x44, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x02, 0x12, 0x11, 0x0a,
  3087  	0x0d, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x03,
  3088  	0x22, 0x48, 0x0a, 0x10, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e,
  3089  	0x6f, 0x69, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x41, 0x54,
  3090  	0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
  3091  	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4f, 0x57, 0x10, 0x01,
  3092  	0x12, 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, 0x48, 0x10, 0x02, 0x22, 0x72, 0x0a, 0x18, 0x4d, 0x65,
  3093  	0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69,
  3094  	0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52,
  3095  	0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
  3096  	0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
  3097  	0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x41, 0x53, 0x55,
  3098  	0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x45, 0x53, 0x54,
  3099  	0x5f, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x42, 0x19,
  3100  	0x0a, 0x17, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70,
  3101  	0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x74,
  3102  	0x75, 0x64, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e,
  3103  	0x66, 0x69, 0x67, 0x22, 0x97, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d,
  3104  	0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64,
  3105  	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
  3106  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
  3107  	0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x65,
  3108  	0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22,
  3109  	0x0a, 0x0a, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
  3110  	0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x65, 0x70, 0x43, 0x6f, 0x75,
  3111  	0x6e, 0x74, 0x12, 0x52, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20,
  3112  	0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
  3113  	0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
  3114  	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e,
  3115  	0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6d,
  3116  	0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0x45, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
  3117  	0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
  3118  	0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
  3119  	0x49, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
  3120  	0x01, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0xe1, 0x01,
  3121  	0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
  3122  	0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
  3123  	0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x53, 0x74, 0x75, 0x64, 0x79, 0x50, 0x72, 0x6f, 0x74,
  3124  	0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  3125  	0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
  3126  	0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61,
  3127  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c,
  3128  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
  3129  	0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
  3130  	0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f,
  3131  	0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74,
  3132  	0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47,
  3133  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49,
  3134  	0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61,
  3135  	0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  3136  }
  3137  
  3138  var (
  3139  	file_google_cloud_aiplatform_v1beta1_study_proto_rawDescOnce sync.Once
  3140  	file_google_cloud_aiplatform_v1beta1_study_proto_rawDescData = file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc
  3141  )
  3142  
  3143  func file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP() []byte {
  3144  	file_google_cloud_aiplatform_v1beta1_study_proto_rawDescOnce.Do(func() {
  3145  		file_google_cloud_aiplatform_v1beta1_study_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1beta1_study_proto_rawDescData)
  3146  	})
  3147  	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescData
  3148  }
  3149  
  3150  var file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes = make([]protoimpl.EnumInfo, 7)
  3151  var file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
  3152  var file_google_cloud_aiplatform_v1beta1_study_proto_goTypes = []any{
  3153  	(Study_State)(0),                                         // 0: google.cloud.aiplatform.v1beta1.Study.State
  3154  	(Trial_State)(0),                                         // 1: google.cloud.aiplatform.v1beta1.Trial.State
  3155  	(StudySpec_Algorithm)(0),                                 // 2: google.cloud.aiplatform.v1beta1.StudySpec.Algorithm
  3156  	(StudySpec_ObservationNoise)(0),                          // 3: google.cloud.aiplatform.v1beta1.StudySpec.ObservationNoise
  3157  	(StudySpec_MeasurementSelectionType)(0),                  // 4: google.cloud.aiplatform.v1beta1.StudySpec.MeasurementSelectionType
  3158  	(StudySpec_MetricSpec_GoalType)(0),                       // 5: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.GoalType
  3159  	(StudySpec_ParameterSpec_ScaleType)(0),                   // 6: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ScaleType
  3160  	(*Study)(nil),                                            // 7: google.cloud.aiplatform.v1beta1.Study
  3161  	(*Trial)(nil),                                            // 8: google.cloud.aiplatform.v1beta1.Trial
  3162  	(*TrialContext)(nil),                                     // 9: google.cloud.aiplatform.v1beta1.TrialContext
  3163  	(*StudyTimeConstraint)(nil),                              // 10: google.cloud.aiplatform.v1beta1.StudyTimeConstraint
  3164  	(*StudySpec)(nil),                                        // 11: google.cloud.aiplatform.v1beta1.StudySpec
  3165  	(*Measurement)(nil),                                      // 12: google.cloud.aiplatform.v1beta1.Measurement
  3166  	(*Trial_Parameter)(nil),                                  // 13: google.cloud.aiplatform.v1beta1.Trial.Parameter
  3167  	nil,                                                      // 14: google.cloud.aiplatform.v1beta1.Trial.WebAccessUrisEntry
  3168  	(*StudySpec_MetricSpec)(nil),                             // 15: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec
  3169  	(*StudySpec_ParameterSpec)(nil),                          // 16: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec
  3170  	(*StudySpec_DecayCurveAutomatedStoppingSpec)(nil),        // 17: google.cloud.aiplatform.v1beta1.StudySpec.DecayCurveAutomatedStoppingSpec
  3171  	(*StudySpec_MedianAutomatedStoppingSpec)(nil),            // 18: google.cloud.aiplatform.v1beta1.StudySpec.MedianAutomatedStoppingSpec
  3172  	(*StudySpec_ConvexAutomatedStoppingSpec)(nil),            // 19: google.cloud.aiplatform.v1beta1.StudySpec.ConvexAutomatedStoppingSpec
  3173  	(*StudySpec_ConvexStopConfig)(nil),                       // 20: google.cloud.aiplatform.v1beta1.StudySpec.ConvexStopConfig
  3174  	(*StudySpec_TransferLearningConfig)(nil),                 // 21: google.cloud.aiplatform.v1beta1.StudySpec.TransferLearningConfig
  3175  	(*StudySpec_StudyStoppingConfig)(nil),                    // 22: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig
  3176  	(*StudySpec_MetricSpec_SafetyMetricConfig)(nil),          // 23: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.SafetyMetricConfig
  3177  	(*StudySpec_ParameterSpec_DoubleValueSpec)(nil),          // 24: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DoubleValueSpec
  3178  	(*StudySpec_ParameterSpec_IntegerValueSpec)(nil),         // 25: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.IntegerValueSpec
  3179  	(*StudySpec_ParameterSpec_CategoricalValueSpec)(nil),     // 26: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.CategoricalValueSpec
  3180  	(*StudySpec_ParameterSpec_DiscreteValueSpec)(nil),        // 27: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DiscreteValueSpec
  3181  	(*StudySpec_ParameterSpec_ConditionalParameterSpec)(nil), // 28: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec
  3182  	(*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition)(nil),    // 29: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition
  3183  	(*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition)(nil),         // 30: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition
  3184  	(*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition)(nil), // 31: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition
  3185  	(*Measurement_Metric)(nil),    // 32: google.cloud.aiplatform.v1beta1.Measurement.Metric
  3186  	(*timestamppb.Timestamp)(nil), // 33: google.protobuf.Timestamp
  3187  	(*durationpb.Duration)(nil),   // 34: google.protobuf.Duration
  3188  	(*structpb.Value)(nil),        // 35: google.protobuf.Value
  3189  	(*wrapperspb.BoolValue)(nil),  // 36: google.protobuf.BoolValue
  3190  	(*wrapperspb.Int32Value)(nil), // 37: google.protobuf.Int32Value
  3191  }
  3192  var file_google_cloud_aiplatform_v1beta1_study_proto_depIdxs = []int32{
  3193  	11, // 0: google.cloud.aiplatform.v1beta1.Study.study_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec
  3194  	0,  // 1: google.cloud.aiplatform.v1beta1.Study.state:type_name -> google.cloud.aiplatform.v1beta1.Study.State
  3195  	33, // 2: google.cloud.aiplatform.v1beta1.Study.create_time:type_name -> google.protobuf.Timestamp
  3196  	1,  // 3: google.cloud.aiplatform.v1beta1.Trial.state:type_name -> google.cloud.aiplatform.v1beta1.Trial.State
  3197  	13, // 4: google.cloud.aiplatform.v1beta1.Trial.parameters:type_name -> google.cloud.aiplatform.v1beta1.Trial.Parameter
  3198  	12, // 5: google.cloud.aiplatform.v1beta1.Trial.final_measurement:type_name -> google.cloud.aiplatform.v1beta1.Measurement
  3199  	12, // 6: google.cloud.aiplatform.v1beta1.Trial.measurements:type_name -> google.cloud.aiplatform.v1beta1.Measurement
  3200  	33, // 7: google.cloud.aiplatform.v1beta1.Trial.start_time:type_name -> google.protobuf.Timestamp
  3201  	33, // 8: google.cloud.aiplatform.v1beta1.Trial.end_time:type_name -> google.protobuf.Timestamp
  3202  	14, // 9: google.cloud.aiplatform.v1beta1.Trial.web_access_uris:type_name -> google.cloud.aiplatform.v1beta1.Trial.WebAccessUrisEntry
  3203  	13, // 10: google.cloud.aiplatform.v1beta1.TrialContext.parameters:type_name -> google.cloud.aiplatform.v1beta1.Trial.Parameter
  3204  	34, // 11: google.cloud.aiplatform.v1beta1.StudyTimeConstraint.max_duration:type_name -> google.protobuf.Duration
  3205  	33, // 12: google.cloud.aiplatform.v1beta1.StudyTimeConstraint.end_time:type_name -> google.protobuf.Timestamp
  3206  	17, // 13: google.cloud.aiplatform.v1beta1.StudySpec.decay_curve_stopping_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.DecayCurveAutomatedStoppingSpec
  3207  	18, // 14: google.cloud.aiplatform.v1beta1.StudySpec.median_automated_stopping_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MedianAutomatedStoppingSpec
  3208  	20, // 15: google.cloud.aiplatform.v1beta1.StudySpec.convex_stop_config:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ConvexStopConfig
  3209  	19, // 16: google.cloud.aiplatform.v1beta1.StudySpec.convex_automated_stopping_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ConvexAutomatedStoppingSpec
  3210  	15, // 17: google.cloud.aiplatform.v1beta1.StudySpec.metrics:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec
  3211  	16, // 18: google.cloud.aiplatform.v1beta1.StudySpec.parameters:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec
  3212  	2,  // 19: google.cloud.aiplatform.v1beta1.StudySpec.algorithm:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.Algorithm
  3213  	3,  // 20: google.cloud.aiplatform.v1beta1.StudySpec.observation_noise:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ObservationNoise
  3214  	4,  // 21: google.cloud.aiplatform.v1beta1.StudySpec.measurement_selection_type:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MeasurementSelectionType
  3215  	21, // 22: google.cloud.aiplatform.v1beta1.StudySpec.transfer_learning_config:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.TransferLearningConfig
  3216  	22, // 23: google.cloud.aiplatform.v1beta1.StudySpec.study_stopping_config:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig
  3217  	34, // 24: google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration:type_name -> google.protobuf.Duration
  3218  	32, // 25: google.cloud.aiplatform.v1beta1.Measurement.metrics:type_name -> google.cloud.aiplatform.v1beta1.Measurement.Metric
  3219  	35, // 26: google.cloud.aiplatform.v1beta1.Trial.Parameter.value:type_name -> google.protobuf.Value
  3220  	5,  // 27: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.goal:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.GoalType
  3221  	23, // 28: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.safety_config:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.SafetyMetricConfig
  3222  	24, // 29: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.double_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DoubleValueSpec
  3223  	25, // 30: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.integer_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.IntegerValueSpec
  3224  	26, // 31: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.categorical_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.CategoricalValueSpec
  3225  	27, // 32: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.discrete_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DiscreteValueSpec
  3226  	6,  // 33: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.scale_type:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ScaleType
  3227  	28, // 34: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.conditional_parameter_specs:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec
  3228  	36, // 35: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.should_stop_asap:type_name -> google.protobuf.BoolValue
  3229  	10, // 36: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.minimum_runtime_constraint:type_name -> google.cloud.aiplatform.v1beta1.StudyTimeConstraint
  3230  	10, // 37: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.maximum_runtime_constraint:type_name -> google.cloud.aiplatform.v1beta1.StudyTimeConstraint
  3231  	37, // 38: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.min_num_trials:type_name -> google.protobuf.Int32Value
  3232  	37, // 39: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.max_num_trials:type_name -> google.protobuf.Int32Value
  3233  	37, // 40: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.max_num_trials_no_progress:type_name -> google.protobuf.Int32Value
  3234  	34, // 41: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.max_duration_no_progress:type_name -> google.protobuf.Duration
  3235  	29, // 42: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_discrete_values:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition
  3236  	30, // 43: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_int_values:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition
  3237  	31, // 44: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_categorical_values:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition
  3238  	16, // 45: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parameter_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec
  3239  	46, // [46:46] is the sub-list for method output_type
  3240  	46, // [46:46] is the sub-list for method input_type
  3241  	46, // [46:46] is the sub-list for extension type_name
  3242  	46, // [46:46] is the sub-list for extension extendee
  3243  	0,  // [0:46] is the sub-list for field type_name
  3244  }
  3245  
  3246  func init() { file_google_cloud_aiplatform_v1beta1_study_proto_init() }
  3247  func file_google_cloud_aiplatform_v1beta1_study_proto_init() {
  3248  	if File_google_cloud_aiplatform_v1beta1_study_proto != nil {
  3249  		return
  3250  	}
  3251  	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3].OneofWrappers = []any{
  3252  		(*StudyTimeConstraint_MaxDuration)(nil),
  3253  		(*StudyTimeConstraint_EndTime)(nil),
  3254  	}
  3255  	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4].OneofWrappers = []any{
  3256  		(*StudySpec_DecayCurveStoppingSpec)(nil),
  3257  		(*StudySpec_MedianAutomatedStoppingSpec_)(nil),
  3258  		(*StudySpec_ConvexStopConfig_)(nil),
  3259  		(*StudySpec_ConvexAutomatedStoppingSpec_)(nil),
  3260  	}
  3261  	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8].OneofWrappers = []any{}
  3262  	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9].OneofWrappers = []any{
  3263  		(*StudySpec_ParameterSpec_DoubleValueSpec_)(nil),
  3264  		(*StudySpec_ParameterSpec_IntegerValueSpec_)(nil),
  3265  		(*StudySpec_ParameterSpec_CategoricalValueSpec_)(nil),
  3266  		(*StudySpec_ParameterSpec_DiscreteValueSpec_)(nil),
  3267  	}
  3268  	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12].OneofWrappers = []any{}
  3269  	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16].OneofWrappers = []any{}
  3270  	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17].OneofWrappers = []any{}
  3271  	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18].OneofWrappers = []any{}
  3272  	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19].OneofWrappers = []any{}
  3273  	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[20].OneofWrappers = []any{}
  3274  	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[21].OneofWrappers = []any{
  3275  		(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues)(nil),
  3276  		(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues)(nil),
  3277  		(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues)(nil),
  3278  	}
  3279  	type x struct{}
  3280  	out := protoimpl.TypeBuilder{
  3281  		File: protoimpl.DescBuilder{
  3282  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  3283  			RawDescriptor: file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc,
  3284  			NumEnums:      7,
  3285  			NumMessages:   26,
  3286  			NumExtensions: 0,
  3287  			NumServices:   0,
  3288  		},
  3289  		GoTypes:           file_google_cloud_aiplatform_v1beta1_study_proto_goTypes,
  3290  		DependencyIndexes: file_google_cloud_aiplatform_v1beta1_study_proto_depIdxs,
  3291  		EnumInfos:         file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes,
  3292  		MessageInfos:      file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes,
  3293  	}.Build()
  3294  	File_google_cloud_aiplatform_v1beta1_study_proto = out.File
  3295  	file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc = nil
  3296  	file_google_cloud_aiplatform_v1beta1_study_proto_goTypes = nil
  3297  	file_google_cloud_aiplatform_v1beta1_study_proto_depIdxs = nil
  3298  }