1// Copyright 2021 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.26.0
18// 	protoc        v3.12.2
19// source: google/cloud/aiplatform/v1beta1/study.proto
20
21package aiplatform
22
23import (
24	reflect "reflect"
25	sync "sync"
26
27	_ "google.golang.org/genproto/googleapis/api/annotations"
28	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
29	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
30	durationpb "google.golang.org/protobuf/types/known/durationpb"
31	structpb "google.golang.org/protobuf/types/known/structpb"
32	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
33)
34
35const (
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.
43type Study_State int32
44
45const (
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.
58var (
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
73func (x Study_State) Enum() *Study_State {
74	p := new(Study_State)
75	*p = x
76	return p
77}
78
79func (x Study_State) String() string {
80	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
81}
82
83func (Study_State) Descriptor() protoreflect.EnumDescriptor {
84	return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[0].Descriptor()
85}
86
87func (Study_State) Type() protoreflect.EnumType {
88	return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[0]
89}
90
91func (x Study_State) Number() protoreflect.EnumNumber {
92	return protoreflect.EnumNumber(x)
93}
94
95// Deprecated: Use Study_State.Descriptor instead.
96func (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.
101type Trial_State int32
102
103const (
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.
122var (
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
141func (x Trial_State) Enum() *Trial_State {
142	p := new(Trial_State)
143	*p = x
144	return p
145}
146
147func (x Trial_State) String() string {
148	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
149}
150
151func (Trial_State) Descriptor() protoreflect.EnumDescriptor {
152	return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[1].Descriptor()
153}
154
155func (Trial_State) Type() protoreflect.EnumType {
156	return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[1]
157}
158
159func (x Trial_State) Number() protoreflect.EnumNumber {
160	return protoreflect.EnumNumber(x)
161}
162
163// Deprecated: Use Trial_State.Descriptor instead.
164func (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.
169type StudySpec_Algorithm int32
170
171const (
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 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.
184var (
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
197func (x StudySpec_Algorithm) Enum() *StudySpec_Algorithm {
198	p := new(StudySpec_Algorithm)
199	*p = x
200	return p
201}
202
203func (x StudySpec_Algorithm) String() string {
204	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
205}
206
207func (StudySpec_Algorithm) Descriptor() protoreflect.EnumDescriptor {
208	return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[2].Descriptor()
209}
210
211func (StudySpec_Algorithm) Type() protoreflect.EnumType {
212	return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[2]
213}
214
215func (x StudySpec_Algorithm) Number() protoreflect.EnumNumber {
216	return protoreflect.EnumNumber(x)
217}
218
219// Deprecated: Use StudySpec_Algorithm.Descriptor instead.
220func (StudySpec_Algorithm) EnumDescriptor() ([]byte, []int) {
221	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 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.
228type StudySpec_ObservationNoise int32
229
230const (
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.
243var (
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
256func (x StudySpec_ObservationNoise) Enum() *StudySpec_ObservationNoise {
257	p := new(StudySpec_ObservationNoise)
258	*p = x
259	return p
260}
261
262func (x StudySpec_ObservationNoise) String() string {
263	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
264}
265
266func (StudySpec_ObservationNoise) Descriptor() protoreflect.EnumDescriptor {
267	return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[3].Descriptor()
268}
269
270func (StudySpec_ObservationNoise) Type() protoreflect.EnumType {
271	return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[3]
272}
273
274func (x StudySpec_ObservationNoise) Number() protoreflect.EnumNumber {
275	return protoreflect.EnumNumber(x)
276}
277
278// Deprecated: Use StudySpec_ObservationNoise.Descriptor instead.
279func (StudySpec_ObservationNoise) EnumDescriptor() ([]byte, []int) {
280	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 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//  A) Do you expect your measurements to monotonically improve?
287//     If so, choose LAST_MEASUREMENT. On the other hand, if you're in a
288//     situation where your system can "over-train" and you expect the
289//     performance to get better for a while but then start declining,
290//     choose BEST_MEASUREMENT.
291//  B) Are your measurements significantly noisy and/or irreproducible?
292//     If so, BEST_MEASUREMENT will tend to be over-optimistic, and it
293//     may be better to choose LAST_MEASUREMENT.
294//  If both or neither of (A) and (B) apply, it doesn't matter which
295//  selection type is chosen.
296type StudySpec_MeasurementSelectionType int32
297
298const (
299	// Will be treated as LAST_MEASUREMENT.
300	StudySpec_MEASUREMENT_SELECTION_TYPE_UNSPECIFIED StudySpec_MeasurementSelectionType = 0
301	// Use the last measurement reported.
302	StudySpec_LAST_MEASUREMENT StudySpec_MeasurementSelectionType = 1
303	// Use the best measurement reported.
304	StudySpec_BEST_MEASUREMENT StudySpec_MeasurementSelectionType = 2
305)
306
307// Enum value maps for StudySpec_MeasurementSelectionType.
308var (
309	StudySpec_MeasurementSelectionType_name = map[int32]string{
310		0: "MEASUREMENT_SELECTION_TYPE_UNSPECIFIED",
311		1: "LAST_MEASUREMENT",
312		2: "BEST_MEASUREMENT",
313	}
314	StudySpec_MeasurementSelectionType_value = map[string]int32{
315		"MEASUREMENT_SELECTION_TYPE_UNSPECIFIED": 0,
316		"LAST_MEASUREMENT":                       1,
317		"BEST_MEASUREMENT":                       2,
318	}
319)
320
321func (x StudySpec_MeasurementSelectionType) Enum() *StudySpec_MeasurementSelectionType {
322	p := new(StudySpec_MeasurementSelectionType)
323	*p = x
324	return p
325}
326
327func (x StudySpec_MeasurementSelectionType) String() string {
328	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
329}
330
331func (StudySpec_MeasurementSelectionType) Descriptor() protoreflect.EnumDescriptor {
332	return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[4].Descriptor()
333}
334
335func (StudySpec_MeasurementSelectionType) Type() protoreflect.EnumType {
336	return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[4]
337}
338
339func (x StudySpec_MeasurementSelectionType) Number() protoreflect.EnumNumber {
340	return protoreflect.EnumNumber(x)
341}
342
343// Deprecated: Use StudySpec_MeasurementSelectionType.Descriptor instead.
344func (StudySpec_MeasurementSelectionType) EnumDescriptor() ([]byte, []int) {
345	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 2}
346}
347
348// The available types of optimization goals.
349type StudySpec_MetricSpec_GoalType int32
350
351const (
352	// Goal Type will default to maximize.
353	StudySpec_MetricSpec_GOAL_TYPE_UNSPECIFIED StudySpec_MetricSpec_GoalType = 0
354	// Maximize the goal metric.
355	StudySpec_MetricSpec_MAXIMIZE StudySpec_MetricSpec_GoalType = 1
356	// Minimize the goal metric.
357	StudySpec_MetricSpec_MINIMIZE StudySpec_MetricSpec_GoalType = 2
358)
359
360// Enum value maps for StudySpec_MetricSpec_GoalType.
361var (
362	StudySpec_MetricSpec_GoalType_name = map[int32]string{
363		0: "GOAL_TYPE_UNSPECIFIED",
364		1: "MAXIMIZE",
365		2: "MINIMIZE",
366	}
367	StudySpec_MetricSpec_GoalType_value = map[string]int32{
368		"GOAL_TYPE_UNSPECIFIED": 0,
369		"MAXIMIZE":              1,
370		"MINIMIZE":              2,
371	}
372)
373
374func (x StudySpec_MetricSpec_GoalType) Enum() *StudySpec_MetricSpec_GoalType {
375	p := new(StudySpec_MetricSpec_GoalType)
376	*p = x
377	return p
378}
379
380func (x StudySpec_MetricSpec_GoalType) String() string {
381	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
382}
383
384func (StudySpec_MetricSpec_GoalType) Descriptor() protoreflect.EnumDescriptor {
385	return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[5].Descriptor()
386}
387
388func (StudySpec_MetricSpec_GoalType) Type() protoreflect.EnumType {
389	return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[5]
390}
391
392func (x StudySpec_MetricSpec_GoalType) Number() protoreflect.EnumNumber {
393	return protoreflect.EnumNumber(x)
394}
395
396// Deprecated: Use StudySpec_MetricSpec_GoalType.Descriptor instead.
397func (StudySpec_MetricSpec_GoalType) EnumDescriptor() ([]byte, []int) {
398	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 0, 0}
399}
400
401// The type of scaling that should be applied to this parameter.
402type StudySpec_ParameterSpec_ScaleType int32
403
404const (
405	// By default, no scaling is applied.
406	StudySpec_ParameterSpec_SCALE_TYPE_UNSPECIFIED StudySpec_ParameterSpec_ScaleType = 0
407	// Scales the feasible space to (0, 1) linearly.
408	StudySpec_ParameterSpec_UNIT_LINEAR_SCALE StudySpec_ParameterSpec_ScaleType = 1
409	// Scales the feasible space logarithmically to (0, 1). The entire
410	// feasible space must be strictly positive.
411	StudySpec_ParameterSpec_UNIT_LOG_SCALE StudySpec_ParameterSpec_ScaleType = 2
412	// Scales the feasible space "reverse" logarithmically to (0, 1). The
413	// result is that values close to the top of the feasible space are spread
414	// out more than points near the bottom. The entire feasible space must be
415	// strictly positive.
416	StudySpec_ParameterSpec_UNIT_REVERSE_LOG_SCALE StudySpec_ParameterSpec_ScaleType = 3
417)
418
419// Enum value maps for StudySpec_ParameterSpec_ScaleType.
420var (
421	StudySpec_ParameterSpec_ScaleType_name = map[int32]string{
422		0: "SCALE_TYPE_UNSPECIFIED",
423		1: "UNIT_LINEAR_SCALE",
424		2: "UNIT_LOG_SCALE",
425		3: "UNIT_REVERSE_LOG_SCALE",
426	}
427	StudySpec_ParameterSpec_ScaleType_value = map[string]int32{
428		"SCALE_TYPE_UNSPECIFIED": 0,
429		"UNIT_LINEAR_SCALE":      1,
430		"UNIT_LOG_SCALE":         2,
431		"UNIT_REVERSE_LOG_SCALE": 3,
432	}
433)
434
435func (x StudySpec_ParameterSpec_ScaleType) Enum() *StudySpec_ParameterSpec_ScaleType {
436	p := new(StudySpec_ParameterSpec_ScaleType)
437	*p = x
438	return p
439}
440
441func (x StudySpec_ParameterSpec_ScaleType) String() string {
442	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
443}
444
445func (StudySpec_ParameterSpec_ScaleType) Descriptor() protoreflect.EnumDescriptor {
446	return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[6].Descriptor()
447}
448
449func (StudySpec_ParameterSpec_ScaleType) Type() protoreflect.EnumType {
450	return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[6]
451}
452
453func (x StudySpec_ParameterSpec_ScaleType) Number() protoreflect.EnumNumber {
454	return protoreflect.EnumNumber(x)
455}
456
457// Deprecated: Use StudySpec_ParameterSpec_ScaleType.Descriptor instead.
458func (StudySpec_ParameterSpec_ScaleType) EnumDescriptor() ([]byte, []int) {
459	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 1, 0}
460}
461
462// A message representing a Study.
463type Study struct {
464	state         protoimpl.MessageState
465	sizeCache     protoimpl.SizeCache
466	unknownFields protoimpl.UnknownFields
467
468	// Output only. The name of a study. The study's globally unique identifier.
469	// Format: `projects/{project}/locations/{location}/studies/{study}`
470	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
471	// Required. Describes the Study, default value is empty string.
472	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
473	// Required. Configuration of the Study.
474	StudySpec *StudySpec `protobuf:"bytes,3,opt,name=study_spec,json=studySpec,proto3" json:"study_spec,omitempty"`
475	// Output only. The detailed state of a Study.
476	State Study_State `protobuf:"varint,4,opt,name=state,proto3,enum=google.cloud.aiplatform.v1beta1.Study_State" json:"state,omitempty"`
477	// Output only. Time at which the study was created.
478	CreateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
479	// Output only. A human readable reason why the Study is inactive.
480	// This should be empty if a study is ACTIVE or COMPLETED.
481	InactiveReason string `protobuf:"bytes,6,opt,name=inactive_reason,json=inactiveReason,proto3" json:"inactive_reason,omitempty"`
482}
483
484func (x *Study) Reset() {
485	*x = Study{}
486	if protoimpl.UnsafeEnabled {
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
493func (x *Study) String() string {
494	return protoimpl.X.MessageStringOf(x)
495}
496
497func (*Study) ProtoMessage() {}
498
499func (x *Study) ProtoReflect() protoreflect.Message {
500	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[0]
501	if protoimpl.UnsafeEnabled && x != nil {
502		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
503		if ms.LoadMessageInfo() == nil {
504			ms.StoreMessageInfo(mi)
505		}
506		return ms
507	}
508	return mi.MessageOf(x)
509}
510
511// Deprecated: Use Study.ProtoReflect.Descriptor instead.
512func (*Study) Descriptor() ([]byte, []int) {
513	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{0}
514}
515
516func (x *Study) GetName() string {
517	if x != nil {
518		return x.Name
519	}
520	return ""
521}
522
523func (x *Study) GetDisplayName() string {
524	if x != nil {
525		return x.DisplayName
526	}
527	return ""
528}
529
530func (x *Study) GetStudySpec() *StudySpec {
531	if x != nil {
532		return x.StudySpec
533	}
534	return nil
535}
536
537func (x *Study) GetState() Study_State {
538	if x != nil {
539		return x.State
540	}
541	return Study_STATE_UNSPECIFIED
542}
543
544func (x *Study) GetCreateTime() *timestamppb.Timestamp {
545	if x != nil {
546		return x.CreateTime
547	}
548	return nil
549}
550
551func (x *Study) GetInactiveReason() string {
552	if x != nil {
553		return x.InactiveReason
554	}
555	return ""
556}
557
558// A message representing a Trial. A Trial contains a unique set of Parameters
559// that has been or will be evaluated, along with the objective metrics got by
560// running the Trial.
561type Trial struct {
562	state         protoimpl.MessageState
563	sizeCache     protoimpl.SizeCache
564	unknownFields protoimpl.UnknownFields
565
566	// Output only. Resource name of the Trial assigned by the service.
567	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
568	// Output only. The identifier of the Trial assigned by the service.
569	Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
570	// Output only. The detailed state of the Trial.
571	State Trial_State `protobuf:"varint,3,opt,name=state,proto3,enum=google.cloud.aiplatform.v1beta1.Trial_State" json:"state,omitempty"`
572	// Output only. The parameters of the Trial.
573	Parameters []*Trial_Parameter `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty"`
574	// Output only. The final measurement containing the objective value.
575	FinalMeasurement *Measurement `protobuf:"bytes,5,opt,name=final_measurement,json=finalMeasurement,proto3" json:"final_measurement,omitempty"`
576	// Output only. A list of measurements that are strictly lexicographically
577	// ordered by their induced tuples (steps, elapsed_duration).
578	// These are used for early stopping computations.
579	Measurements []*Measurement `protobuf:"bytes,6,rep,name=measurements,proto3" json:"measurements,omitempty"`
580	// Output only. Time when the Trial was started.
581	StartTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
582	// Output only. Time when the Trial's status changed to `SUCCEEDED` or `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 Trial.
585	// Each client is identified by a unique client_id. When a client
586	// asks for a suggestion, Vizier will assign it a Trial. The client should
587	// evaluate the Trial, complete it, and report back to Vizier.
588	// 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 [HyperparameterTuningJob][google.cloud.aiplatform.v1beta1.HyperparameterTuningJob] and the job's
603	// [trial_job_spec.enable_web_access][google.cloud.aiplatform.v1beta1.CustomJobSpec.enable_web_access] field
604	// is `true`.
605	//
606	// The keys are names of each node used for the trial; for example,
607	// `workerpool0-0` for the primary node, `workerpool1-0` for the first node in
608	// the second worker pool, and `workerpool1-1` for the second node in the
609	// second worker pool.
610	//
611	// The values are the URIs for each node's interactive shell.
612	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"`
613}
614
615func (x *Trial) Reset() {
616	*x = Trial{}
617	if protoimpl.UnsafeEnabled {
618		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[1]
619		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
620		ms.StoreMessageInfo(mi)
621	}
622}
623
624func (x *Trial) String() string {
625	return protoimpl.X.MessageStringOf(x)
626}
627
628func (*Trial) ProtoMessage() {}
629
630func (x *Trial) ProtoReflect() protoreflect.Message {
631	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[1]
632	if protoimpl.UnsafeEnabled && 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.
643func (*Trial) Descriptor() ([]byte, []int) {
644	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{1}
645}
646
647func (x *Trial) GetName() string {
648	if x != nil {
649		return x.Name
650	}
651	return ""
652}
653
654func (x *Trial) GetId() string {
655	if x != nil {
656		return x.Id
657	}
658	return ""
659}
660
661func (x *Trial) GetState() Trial_State {
662	if x != nil {
663		return x.State
664	}
665	return Trial_STATE_UNSPECIFIED
666}
667
668func (x *Trial) GetParameters() []*Trial_Parameter {
669	if x != nil {
670		return x.Parameters
671	}
672	return nil
673}
674
675func (x *Trial) GetFinalMeasurement() *Measurement {
676	if x != nil {
677		return x.FinalMeasurement
678	}
679	return nil
680}
681
682func (x *Trial) GetMeasurements() []*Measurement {
683	if x != nil {
684		return x.Measurements
685	}
686	return nil
687}
688
689func (x *Trial) GetStartTime() *timestamppb.Timestamp {
690	if x != nil {
691		return x.StartTime
692	}
693	return nil
694}
695
696func (x *Trial) GetEndTime() *timestamppb.Timestamp {
697	if x != nil {
698		return x.EndTime
699	}
700	return nil
701}
702
703func (x *Trial) GetClientId() string {
704	if x != nil {
705		return x.ClientId
706	}
707	return ""
708}
709
710func (x *Trial) GetInfeasibleReason() string {
711	if x != nil {
712		return x.InfeasibleReason
713	}
714	return ""
715}
716
717func (x *Trial) GetCustomJob() string {
718	if x != nil {
719		return x.CustomJob
720	}
721	return ""
722}
723
724func (x *Trial) GetWebAccessUris() map[string]string {
725	if x != nil {
726		return x.WebAccessUris
727	}
728	return nil
729}
730
731// Represents specification of a Study.
732type StudySpec struct {
733	state         protoimpl.MessageState
734	sizeCache     protoimpl.SizeCache
735	unknownFields protoimpl.UnknownFields
736
737	// Types that are assignable to AutomatedStoppingSpec:
738	//	*StudySpec_DecayCurveStoppingSpec
739	//	*StudySpec_MedianAutomatedStoppingSpec_
740	//	*StudySpec_ConvexStopConfig_
741	AutomatedStoppingSpec isStudySpec_AutomatedStoppingSpec `protobuf_oneof:"automated_stopping_spec"`
742	// Required. Metric specs for the Study.
743	Metrics []*StudySpec_MetricSpec `protobuf:"bytes,1,rep,name=metrics,proto3" json:"metrics,omitempty"`
744	// Required. The set of parameters to tune.
745	Parameters []*StudySpec_ParameterSpec `protobuf:"bytes,2,rep,name=parameters,proto3" json:"parameters,omitempty"`
746	// The search algorithm specified for the Study.
747	Algorithm StudySpec_Algorithm `protobuf:"varint,3,opt,name=algorithm,proto3,enum=google.cloud.aiplatform.v1beta1.StudySpec_Algorithm" json:"algorithm,omitempty"`
748	// The observation noise level of the study.
749	// Currently only supported by the Vizier service. Not supported by
750	// HyperparamterTuningJob or TrainingPipeline.
751	ObservationNoise StudySpec_ObservationNoise `protobuf:"varint,6,opt,name=observation_noise,json=observationNoise,proto3,enum=google.cloud.aiplatform.v1beta1.StudySpec_ObservationNoise" json:"observation_noise,omitempty"`
752	// Describe which measurement selection type will be used
753	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"`
754}
755
756func (x *StudySpec) Reset() {
757	*x = StudySpec{}
758	if protoimpl.UnsafeEnabled {
759		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[2]
760		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
761		ms.StoreMessageInfo(mi)
762	}
763}
764
765func (x *StudySpec) String() string {
766	return protoimpl.X.MessageStringOf(x)
767}
768
769func (*StudySpec) ProtoMessage() {}
770
771func (x *StudySpec) ProtoReflect() protoreflect.Message {
772	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[2]
773	if protoimpl.UnsafeEnabled && x != nil {
774		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
775		if ms.LoadMessageInfo() == nil {
776			ms.StoreMessageInfo(mi)
777		}
778		return ms
779	}
780	return mi.MessageOf(x)
781}
782
783// Deprecated: Use StudySpec.ProtoReflect.Descriptor instead.
784func (*StudySpec) Descriptor() ([]byte, []int) {
785	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2}
786}
787
788func (m *StudySpec) GetAutomatedStoppingSpec() isStudySpec_AutomatedStoppingSpec {
789	if m != nil {
790		return m.AutomatedStoppingSpec
791	}
792	return nil
793}
794
795func (x *StudySpec) GetDecayCurveStoppingSpec() *StudySpec_DecayCurveAutomatedStoppingSpec {
796	if x, ok := x.GetAutomatedStoppingSpec().(*StudySpec_DecayCurveStoppingSpec); ok {
797		return x.DecayCurveStoppingSpec
798	}
799	return nil
800}
801
802func (x *StudySpec) GetMedianAutomatedStoppingSpec() *StudySpec_MedianAutomatedStoppingSpec {
803	if x, ok := x.GetAutomatedStoppingSpec().(*StudySpec_MedianAutomatedStoppingSpec_); ok {
804		return x.MedianAutomatedStoppingSpec
805	}
806	return nil
807}
808
809// Deprecated: Do not use.
810func (x *StudySpec) GetConvexStopConfig() *StudySpec_ConvexStopConfig {
811	if x, ok := x.GetAutomatedStoppingSpec().(*StudySpec_ConvexStopConfig_); ok {
812		return x.ConvexStopConfig
813	}
814	return nil
815}
816
817func (x *StudySpec) GetMetrics() []*StudySpec_MetricSpec {
818	if x != nil {
819		return x.Metrics
820	}
821	return nil
822}
823
824func (x *StudySpec) GetParameters() []*StudySpec_ParameterSpec {
825	if x != nil {
826		return x.Parameters
827	}
828	return nil
829}
830
831func (x *StudySpec) GetAlgorithm() StudySpec_Algorithm {
832	if x != nil {
833		return x.Algorithm
834	}
835	return StudySpec_ALGORITHM_UNSPECIFIED
836}
837
838func (x *StudySpec) GetObservationNoise() StudySpec_ObservationNoise {
839	if x != nil {
840		return x.ObservationNoise
841	}
842	return StudySpec_OBSERVATION_NOISE_UNSPECIFIED
843}
844
845func (x *StudySpec) GetMeasurementSelectionType() StudySpec_MeasurementSelectionType {
846	if x != nil {
847		return x.MeasurementSelectionType
848	}
849	return StudySpec_MEASUREMENT_SELECTION_TYPE_UNSPECIFIED
850}
851
852type isStudySpec_AutomatedStoppingSpec interface {
853	isStudySpec_AutomatedStoppingSpec()
854}
855
856type StudySpec_DecayCurveStoppingSpec struct {
857	// The automated early stopping spec using decay curve rule.
858	DecayCurveStoppingSpec *StudySpec_DecayCurveAutomatedStoppingSpec `protobuf:"bytes,4,opt,name=decay_curve_stopping_spec,json=decayCurveStoppingSpec,proto3,oneof"`
859}
860
861type StudySpec_MedianAutomatedStoppingSpec_ struct {
862	// The automated early stopping spec using median rule.
863	MedianAutomatedStoppingSpec *StudySpec_MedianAutomatedStoppingSpec `protobuf:"bytes,5,opt,name=median_automated_stopping_spec,json=medianAutomatedStoppingSpec,proto3,oneof"`
864}
865
866type StudySpec_ConvexStopConfig_ struct {
867	// Deprecated.
868	// The automated early stopping using convex stopping rule.
869	//
870	// Deprecated: Do not use.
871	ConvexStopConfig *StudySpec_ConvexStopConfig `protobuf:"bytes,8,opt,name=convex_stop_config,json=convexStopConfig,proto3,oneof"`
872}
873
874func (*StudySpec_DecayCurveStoppingSpec) isStudySpec_AutomatedStoppingSpec() {}
875
876func (*StudySpec_MedianAutomatedStoppingSpec_) isStudySpec_AutomatedStoppingSpec() {}
877
878func (*StudySpec_ConvexStopConfig_) isStudySpec_AutomatedStoppingSpec() {}
879
880// A message representing a Measurement of a Trial. A Measurement contains
881// the Metrics got by executing a Trial using suggested hyperparameter
882// values.
883type Measurement struct {
884	state         protoimpl.MessageState
885	sizeCache     protoimpl.SizeCache
886	unknownFields protoimpl.UnknownFields
887
888	// Output only. Time that the Trial has been running at the point of this Measurement.
889	ElapsedDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=elapsed_duration,json=elapsedDuration,proto3" json:"elapsed_duration,omitempty"`
890	// Output only. The number of steps the machine learning model has been trained for.
891	// Must be non-negative.
892	StepCount int64 `protobuf:"varint,2,opt,name=step_count,json=stepCount,proto3" json:"step_count,omitempty"`
893	// Output only. A list of metrics got by evaluating the objective functions using suggested
894	// Parameter values.
895	Metrics []*Measurement_Metric `protobuf:"bytes,3,rep,name=metrics,proto3" json:"metrics,omitempty"`
896}
897
898func (x *Measurement) Reset() {
899	*x = Measurement{}
900	if protoimpl.UnsafeEnabled {
901		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3]
902		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
903		ms.StoreMessageInfo(mi)
904	}
905}
906
907func (x *Measurement) String() string {
908	return protoimpl.X.MessageStringOf(x)
909}
910
911func (*Measurement) ProtoMessage() {}
912
913func (x *Measurement) ProtoReflect() protoreflect.Message {
914	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3]
915	if protoimpl.UnsafeEnabled && x != nil {
916		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
917		if ms.LoadMessageInfo() == nil {
918			ms.StoreMessageInfo(mi)
919		}
920		return ms
921	}
922	return mi.MessageOf(x)
923}
924
925// Deprecated: Use Measurement.ProtoReflect.Descriptor instead.
926func (*Measurement) Descriptor() ([]byte, []int) {
927	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3}
928}
929
930func (x *Measurement) GetElapsedDuration() *durationpb.Duration {
931	if x != nil {
932		return x.ElapsedDuration
933	}
934	return nil
935}
936
937func (x *Measurement) GetStepCount() int64 {
938	if x != nil {
939		return x.StepCount
940	}
941	return 0
942}
943
944func (x *Measurement) GetMetrics() []*Measurement_Metric {
945	if x != nil {
946		return x.Metrics
947	}
948	return nil
949}
950
951// A message representing a parameter to be tuned.
952type Trial_Parameter struct {
953	state         protoimpl.MessageState
954	sizeCache     protoimpl.SizeCache
955	unknownFields protoimpl.UnknownFields
956
957	// Output only. The ID of the parameter. The parameter should be defined in
958	// [StudySpec's Parameters][google.cloud.aiplatform.v1beta1.StudySpec.parameters].
959	ParameterId string `protobuf:"bytes,1,opt,name=parameter_id,json=parameterId,proto3" json:"parameter_id,omitempty"`
960	// Output only. The value of the parameter.
961	// `number_value` will be set if a parameter defined in StudySpec is
962	// in type 'INTEGER', 'DOUBLE' or 'DISCRETE'.
963	// `string_value` will be set if a parameter defined in StudySpec is
964	// in type 'CATEGORICAL'.
965	Value *structpb.Value `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
966}
967
968func (x *Trial_Parameter) Reset() {
969	*x = Trial_Parameter{}
970	if protoimpl.UnsafeEnabled {
971		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4]
972		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
973		ms.StoreMessageInfo(mi)
974	}
975}
976
977func (x *Trial_Parameter) String() string {
978	return protoimpl.X.MessageStringOf(x)
979}
980
981func (*Trial_Parameter) ProtoMessage() {}
982
983func (x *Trial_Parameter) ProtoReflect() protoreflect.Message {
984	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4]
985	if protoimpl.UnsafeEnabled && x != nil {
986		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
987		if ms.LoadMessageInfo() == nil {
988			ms.StoreMessageInfo(mi)
989		}
990		return ms
991	}
992	return mi.MessageOf(x)
993}
994
995// Deprecated: Use Trial_Parameter.ProtoReflect.Descriptor instead.
996func (*Trial_Parameter) Descriptor() ([]byte, []int) {
997	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{1, 0}
998}
999
1000func (x *Trial_Parameter) GetParameterId() string {
1001	if x != nil {
1002		return x.ParameterId
1003	}
1004	return ""
1005}
1006
1007func (x *Trial_Parameter) GetValue() *structpb.Value {
1008	if x != nil {
1009		return x.Value
1010	}
1011	return nil
1012}
1013
1014// Represents a metric to optimize.
1015type StudySpec_MetricSpec struct {
1016	state         protoimpl.MessageState
1017	sizeCache     protoimpl.SizeCache
1018	unknownFields protoimpl.UnknownFields
1019
1020	// Required. The ID of the metric. Must not contain whitespaces and must be unique
1021	// amongst all MetricSpecs.
1022	MetricId string `protobuf:"bytes,1,opt,name=metric_id,json=metricId,proto3" json:"metric_id,omitempty"`
1023	// Required. The optimization goal of the metric.
1024	Goal StudySpec_MetricSpec_GoalType `protobuf:"varint,2,opt,name=goal,proto3,enum=google.cloud.aiplatform.v1beta1.StudySpec_MetricSpec_GoalType" json:"goal,omitempty"`
1025}
1026
1027func (x *StudySpec_MetricSpec) Reset() {
1028	*x = StudySpec_MetricSpec{}
1029	if protoimpl.UnsafeEnabled {
1030		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[6]
1031		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1032		ms.StoreMessageInfo(mi)
1033	}
1034}
1035
1036func (x *StudySpec_MetricSpec) String() string {
1037	return protoimpl.X.MessageStringOf(x)
1038}
1039
1040func (*StudySpec_MetricSpec) ProtoMessage() {}
1041
1042func (x *StudySpec_MetricSpec) ProtoReflect() protoreflect.Message {
1043	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[6]
1044	if protoimpl.UnsafeEnabled && x != nil {
1045		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1046		if ms.LoadMessageInfo() == nil {
1047			ms.StoreMessageInfo(mi)
1048		}
1049		return ms
1050	}
1051	return mi.MessageOf(x)
1052}
1053
1054// Deprecated: Use StudySpec_MetricSpec.ProtoReflect.Descriptor instead.
1055func (*StudySpec_MetricSpec) Descriptor() ([]byte, []int) {
1056	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 0}
1057}
1058
1059func (x *StudySpec_MetricSpec) GetMetricId() string {
1060	if x != nil {
1061		return x.MetricId
1062	}
1063	return ""
1064}
1065
1066func (x *StudySpec_MetricSpec) GetGoal() StudySpec_MetricSpec_GoalType {
1067	if x != nil {
1068		return x.Goal
1069	}
1070	return StudySpec_MetricSpec_GOAL_TYPE_UNSPECIFIED
1071}
1072
1073// Represents a single parameter to optimize.
1074type StudySpec_ParameterSpec struct {
1075	state         protoimpl.MessageState
1076	sizeCache     protoimpl.SizeCache
1077	unknownFields protoimpl.UnknownFields
1078
1079	// Types that are assignable to ParameterValueSpec:
1080	//	*StudySpec_ParameterSpec_DoubleValueSpec_
1081	//	*StudySpec_ParameterSpec_IntegerValueSpec_
1082	//	*StudySpec_ParameterSpec_CategoricalValueSpec_
1083	//	*StudySpec_ParameterSpec_DiscreteValueSpec_
1084	ParameterValueSpec isStudySpec_ParameterSpec_ParameterValueSpec `protobuf_oneof:"parameter_value_spec"`
1085	// Required. The ID of the parameter. Must not contain whitespaces and must be unique
1086	// amongst all ParameterSpecs.
1087	ParameterId string `protobuf:"bytes,1,opt,name=parameter_id,json=parameterId,proto3" json:"parameter_id,omitempty"`
1088	// How the parameter should be scaled.
1089	// Leave unset for `CATEGORICAL` parameters.
1090	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"`
1091	// A conditional parameter node is active if the parameter's value matches
1092	// the conditional node's parent_value_condition.
1093	//
1094	// If two items in conditional_parameter_specs have the same name, they
1095	// must have disjoint parent_value_condition.
1096	ConditionalParameterSpecs []*StudySpec_ParameterSpec_ConditionalParameterSpec `protobuf:"bytes,10,rep,name=conditional_parameter_specs,json=conditionalParameterSpecs,proto3" json:"conditional_parameter_specs,omitempty"`
1097}
1098
1099func (x *StudySpec_ParameterSpec) Reset() {
1100	*x = StudySpec_ParameterSpec{}
1101	if protoimpl.UnsafeEnabled {
1102		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[7]
1103		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1104		ms.StoreMessageInfo(mi)
1105	}
1106}
1107
1108func (x *StudySpec_ParameterSpec) String() string {
1109	return protoimpl.X.MessageStringOf(x)
1110}
1111
1112func (*StudySpec_ParameterSpec) ProtoMessage() {}
1113
1114func (x *StudySpec_ParameterSpec) ProtoReflect() protoreflect.Message {
1115	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[7]
1116	if protoimpl.UnsafeEnabled && x != nil {
1117		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1118		if ms.LoadMessageInfo() == nil {
1119			ms.StoreMessageInfo(mi)
1120		}
1121		return ms
1122	}
1123	return mi.MessageOf(x)
1124}
1125
1126// Deprecated: Use StudySpec_ParameterSpec.ProtoReflect.Descriptor instead.
1127func (*StudySpec_ParameterSpec) Descriptor() ([]byte, []int) {
1128	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 1}
1129}
1130
1131func (m *StudySpec_ParameterSpec) GetParameterValueSpec() isStudySpec_ParameterSpec_ParameterValueSpec {
1132	if m != nil {
1133		return m.ParameterValueSpec
1134	}
1135	return nil
1136}
1137
1138func (x *StudySpec_ParameterSpec) GetDoubleValueSpec() *StudySpec_ParameterSpec_DoubleValueSpec {
1139	if x, ok := x.GetParameterValueSpec().(*StudySpec_ParameterSpec_DoubleValueSpec_); ok {
1140		return x.DoubleValueSpec
1141	}
1142	return nil
1143}
1144
1145func (x *StudySpec_ParameterSpec) GetIntegerValueSpec() *StudySpec_ParameterSpec_IntegerValueSpec {
1146	if x, ok := x.GetParameterValueSpec().(*StudySpec_ParameterSpec_IntegerValueSpec_); ok {
1147		return x.IntegerValueSpec
1148	}
1149	return nil
1150}
1151
1152func (x *StudySpec_ParameterSpec) GetCategoricalValueSpec() *StudySpec_ParameterSpec_CategoricalValueSpec {
1153	if x, ok := x.GetParameterValueSpec().(*StudySpec_ParameterSpec_CategoricalValueSpec_); ok {
1154		return x.CategoricalValueSpec
1155	}
1156	return nil
1157}
1158
1159func (x *StudySpec_ParameterSpec) GetDiscreteValueSpec() *StudySpec_ParameterSpec_DiscreteValueSpec {
1160	if x, ok := x.GetParameterValueSpec().(*StudySpec_ParameterSpec_DiscreteValueSpec_); ok {
1161		return x.DiscreteValueSpec
1162	}
1163	return nil
1164}
1165
1166func (x *StudySpec_ParameterSpec) GetParameterId() string {
1167	if x != nil {
1168		return x.ParameterId
1169	}
1170	return ""
1171}
1172
1173func (x *StudySpec_ParameterSpec) GetScaleType() StudySpec_ParameterSpec_ScaleType {
1174	if x != nil {
1175		return x.ScaleType
1176	}
1177	return StudySpec_ParameterSpec_SCALE_TYPE_UNSPECIFIED
1178}
1179
1180func (x *StudySpec_ParameterSpec) GetConditionalParameterSpecs() []*StudySpec_ParameterSpec_ConditionalParameterSpec {
1181	if x != nil {
1182		return x.ConditionalParameterSpecs
1183	}
1184	return nil
1185}
1186
1187type isStudySpec_ParameterSpec_ParameterValueSpec interface {
1188	isStudySpec_ParameterSpec_ParameterValueSpec()
1189}
1190
1191type StudySpec_ParameterSpec_DoubleValueSpec_ struct {
1192	// The value spec for a 'DOUBLE' parameter.
1193	DoubleValueSpec *StudySpec_ParameterSpec_DoubleValueSpec `protobuf:"bytes,2,opt,name=double_value_spec,json=doubleValueSpec,proto3,oneof"`
1194}
1195
1196type StudySpec_ParameterSpec_IntegerValueSpec_ struct {
1197	// The value spec for an 'INTEGER' parameter.
1198	IntegerValueSpec *StudySpec_ParameterSpec_IntegerValueSpec `protobuf:"bytes,3,opt,name=integer_value_spec,json=integerValueSpec,proto3,oneof"`
1199}
1200
1201type StudySpec_ParameterSpec_CategoricalValueSpec_ struct {
1202	// The value spec for a 'CATEGORICAL' parameter.
1203	CategoricalValueSpec *StudySpec_ParameterSpec_CategoricalValueSpec `protobuf:"bytes,4,opt,name=categorical_value_spec,json=categoricalValueSpec,proto3,oneof"`
1204}
1205
1206type StudySpec_ParameterSpec_DiscreteValueSpec_ struct {
1207	// The value spec for a 'DISCRETE' parameter.
1208	DiscreteValueSpec *StudySpec_ParameterSpec_DiscreteValueSpec `protobuf:"bytes,5,opt,name=discrete_value_spec,json=discreteValueSpec,proto3,oneof"`
1209}
1210
1211func (*StudySpec_ParameterSpec_DoubleValueSpec_) isStudySpec_ParameterSpec_ParameterValueSpec() {}
1212
1213func (*StudySpec_ParameterSpec_IntegerValueSpec_) isStudySpec_ParameterSpec_ParameterValueSpec() {}
1214
1215func (*StudySpec_ParameterSpec_CategoricalValueSpec_) isStudySpec_ParameterSpec_ParameterValueSpec() {
1216}
1217
1218func (*StudySpec_ParameterSpec_DiscreteValueSpec_) isStudySpec_ParameterSpec_ParameterValueSpec() {}
1219
1220// The decay curve automated stopping rule builds a Gaussian Process
1221// Regressor to predict the final objective value of a Trial based on the
1222// already completed Trials and the intermediate measurements of the current
1223// Trial. Early stopping is requested for the current Trial if there is very
1224// low probability to exceed the optimal value found so far.
1225type StudySpec_DecayCurveAutomatedStoppingSpec struct {
1226	state         protoimpl.MessageState
1227	sizeCache     protoimpl.SizeCache
1228	unknownFields protoimpl.UnknownFields
1229
1230	// True if [Measurement.elapsed_duration][google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration] is used as the x-axis of each
1231	// Trials Decay Curve. Otherwise, [Measurement.step_count][google.cloud.aiplatform.v1beta1.Measurement.step_count] will be used
1232	// as the x-axis.
1233	UseElapsedDuration bool `protobuf:"varint,1,opt,name=use_elapsed_duration,json=useElapsedDuration,proto3" json:"use_elapsed_duration,omitempty"`
1234}
1235
1236func (x *StudySpec_DecayCurveAutomatedStoppingSpec) Reset() {
1237	*x = StudySpec_DecayCurveAutomatedStoppingSpec{}
1238	if protoimpl.UnsafeEnabled {
1239		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8]
1240		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1241		ms.StoreMessageInfo(mi)
1242	}
1243}
1244
1245func (x *StudySpec_DecayCurveAutomatedStoppingSpec) String() string {
1246	return protoimpl.X.MessageStringOf(x)
1247}
1248
1249func (*StudySpec_DecayCurveAutomatedStoppingSpec) ProtoMessage() {}
1250
1251func (x *StudySpec_DecayCurveAutomatedStoppingSpec) ProtoReflect() protoreflect.Message {
1252	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8]
1253	if protoimpl.UnsafeEnabled && x != nil {
1254		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1255		if ms.LoadMessageInfo() == nil {
1256			ms.StoreMessageInfo(mi)
1257		}
1258		return ms
1259	}
1260	return mi.MessageOf(x)
1261}
1262
1263// Deprecated: Use StudySpec_DecayCurveAutomatedStoppingSpec.ProtoReflect.Descriptor instead.
1264func (*StudySpec_DecayCurveAutomatedStoppingSpec) Descriptor() ([]byte, []int) {
1265	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 2}
1266}
1267
1268func (x *StudySpec_DecayCurveAutomatedStoppingSpec) GetUseElapsedDuration() bool {
1269	if x != nil {
1270		return x.UseElapsedDuration
1271	}
1272	return false
1273}
1274
1275// The median automated stopping rule stops a pending Trial if the Trial's
1276// best objective_value is strictly below the median 'performance' of all
1277// completed Trials reported up to the Trial's last measurement.
1278// Currently, 'performance' refers to the running average of the objective
1279// values reported by the Trial in each measurement.
1280type StudySpec_MedianAutomatedStoppingSpec struct {
1281	state         protoimpl.MessageState
1282	sizeCache     protoimpl.SizeCache
1283	unknownFields protoimpl.UnknownFields
1284
1285	// True if median automated stopping rule applies on
1286	// [Measurement.elapsed_duration][google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration]. It means that elapsed_duration
1287	// field of latest measurement of current Trial is used to compute median
1288	// objective value for each completed Trials.
1289	UseElapsedDuration bool `protobuf:"varint,1,opt,name=use_elapsed_duration,json=useElapsedDuration,proto3" json:"use_elapsed_duration,omitempty"`
1290}
1291
1292func (x *StudySpec_MedianAutomatedStoppingSpec) Reset() {
1293	*x = StudySpec_MedianAutomatedStoppingSpec{}
1294	if protoimpl.UnsafeEnabled {
1295		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9]
1296		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1297		ms.StoreMessageInfo(mi)
1298	}
1299}
1300
1301func (x *StudySpec_MedianAutomatedStoppingSpec) String() string {
1302	return protoimpl.X.MessageStringOf(x)
1303}
1304
1305func (*StudySpec_MedianAutomatedStoppingSpec) ProtoMessage() {}
1306
1307func (x *StudySpec_MedianAutomatedStoppingSpec) ProtoReflect() protoreflect.Message {
1308	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9]
1309	if protoimpl.UnsafeEnabled && x != nil {
1310		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1311		if ms.LoadMessageInfo() == nil {
1312			ms.StoreMessageInfo(mi)
1313		}
1314		return ms
1315	}
1316	return mi.MessageOf(x)
1317}
1318
1319// Deprecated: Use StudySpec_MedianAutomatedStoppingSpec.ProtoReflect.Descriptor instead.
1320func (*StudySpec_MedianAutomatedStoppingSpec) Descriptor() ([]byte, []int) {
1321	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 3}
1322}
1323
1324func (x *StudySpec_MedianAutomatedStoppingSpec) GetUseElapsedDuration() bool {
1325	if x != nil {
1326		return x.UseElapsedDuration
1327	}
1328	return false
1329}
1330
1331// Configuration for ConvexStopPolicy.
1332//
1333// Deprecated: Do not use.
1334type StudySpec_ConvexStopConfig struct {
1335	state         protoimpl.MessageState
1336	sizeCache     protoimpl.SizeCache
1337	unknownFields protoimpl.UnknownFields
1338
1339	// Steps used in predicting the final objective for early stopped trials. In
1340	// general, it's set to be the same as the defined steps in training /
1341	// tuning. When use_steps is false, this field is set to the maximum elapsed
1342	// seconds.
1343	MaxNumSteps int64 `protobuf:"varint,1,opt,name=max_num_steps,json=maxNumSteps,proto3" json:"max_num_steps,omitempty"`
1344	// Minimum number of steps for a trial to complete. Trials which do not have
1345	// a measurement with num_steps > min_num_steps won't be considered for
1346	// early stopping. It's ok to set it to 0, and a trial can be early stopped
1347	// at any stage. By default, min_num_steps is set to be one-tenth of the
1348	// max_num_steps.
1349	// When use_steps is false, this field is set to the minimum elapsed
1350	// seconds.
1351	MinNumSteps int64 `protobuf:"varint,2,opt,name=min_num_steps,json=minNumSteps,proto3" json:"min_num_steps,omitempty"`
1352	// The number of Trial measurements used in autoregressive model for
1353	// value prediction. A trial won't be considered early stopping if has fewer
1354	// measurement points.
1355	AutoregressiveOrder int64 `protobuf:"varint,3,opt,name=autoregressive_order,json=autoregressiveOrder,proto3" json:"autoregressive_order,omitempty"`
1356	// The hyper-parameter name used in the tuning job that stands for learning
1357	// rate. Leave it blank if learning rate is not in a parameter in tuning.
1358	// The learning_rate is used to estimate the objective value of the ongoing
1359	// trial.
1360	LearningRateParameterName string `protobuf:"bytes,4,opt,name=learning_rate_parameter_name,json=learningRateParameterName,proto3" json:"learning_rate_parameter_name,omitempty"`
1361	// This bool determines whether or not the rule is applied based on
1362	// elapsed_secs or steps. If use_seconds==false, the early stopping decision
1363	// is made according to the predicted objective values according to the
1364	// target steps. If use_seconds==true, elapsed_secs is used instead of
1365	// steps. Also, in this case, the parameters max_num_steps and min_num_steps
1366	// are overloaded to contain max_elapsed_seconds and min_elapsed_seconds.
1367	UseSeconds bool `protobuf:"varint,5,opt,name=use_seconds,json=useSeconds,proto3" json:"use_seconds,omitempty"`
1368}
1369
1370func (x *StudySpec_ConvexStopConfig) Reset() {
1371	*x = StudySpec_ConvexStopConfig{}
1372	if protoimpl.UnsafeEnabled {
1373		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[10]
1374		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1375		ms.StoreMessageInfo(mi)
1376	}
1377}
1378
1379func (x *StudySpec_ConvexStopConfig) String() string {
1380	return protoimpl.X.MessageStringOf(x)
1381}
1382
1383func (*StudySpec_ConvexStopConfig) ProtoMessage() {}
1384
1385func (x *StudySpec_ConvexStopConfig) ProtoReflect() protoreflect.Message {
1386	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[10]
1387	if protoimpl.UnsafeEnabled && x != nil {
1388		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1389		if ms.LoadMessageInfo() == nil {
1390			ms.StoreMessageInfo(mi)
1391		}
1392		return ms
1393	}
1394	return mi.MessageOf(x)
1395}
1396
1397// Deprecated: Use StudySpec_ConvexStopConfig.ProtoReflect.Descriptor instead.
1398func (*StudySpec_ConvexStopConfig) Descriptor() ([]byte, []int) {
1399	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 4}
1400}
1401
1402func (x *StudySpec_ConvexStopConfig) GetMaxNumSteps() int64 {
1403	if x != nil {
1404		return x.MaxNumSteps
1405	}
1406	return 0
1407}
1408
1409func (x *StudySpec_ConvexStopConfig) GetMinNumSteps() int64 {
1410	if x != nil {
1411		return x.MinNumSteps
1412	}
1413	return 0
1414}
1415
1416func (x *StudySpec_ConvexStopConfig) GetAutoregressiveOrder() int64 {
1417	if x != nil {
1418		return x.AutoregressiveOrder
1419	}
1420	return 0
1421}
1422
1423func (x *StudySpec_ConvexStopConfig) GetLearningRateParameterName() string {
1424	if x != nil {
1425		return x.LearningRateParameterName
1426	}
1427	return ""
1428}
1429
1430func (x *StudySpec_ConvexStopConfig) GetUseSeconds() bool {
1431	if x != nil {
1432		return x.UseSeconds
1433	}
1434	return false
1435}
1436
1437// Value specification for a parameter in `DOUBLE` type.
1438type StudySpec_ParameterSpec_DoubleValueSpec struct {
1439	state         protoimpl.MessageState
1440	sizeCache     protoimpl.SizeCache
1441	unknownFields protoimpl.UnknownFields
1442
1443	// Required. Inclusive minimum value of the parameter.
1444	MinValue float64 `protobuf:"fixed64,1,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"`
1445	// Required. Inclusive maximum value of the parameter.
1446	MaxValue float64 `protobuf:"fixed64,2,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"`
1447	// A default value for a `DOUBLE` parameter that is assumed to be a
1448	// relatively good starting point.  Unset value signals that there is no
1449	// offered starting point.
1450	//
1451	// Currently only supported by the Vizier service. Not supported by
1452	// HyperparamterTuningJob or TrainingPipeline.
1453	DefaultValue *float64 `protobuf:"fixed64,4,opt,name=default_value,json=defaultValue,proto3,oneof" json:"default_value,omitempty"`
1454}
1455
1456func (x *StudySpec_ParameterSpec_DoubleValueSpec) Reset() {
1457	*x = StudySpec_ParameterSpec_DoubleValueSpec{}
1458	if protoimpl.UnsafeEnabled {
1459		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[11]
1460		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1461		ms.StoreMessageInfo(mi)
1462	}
1463}
1464
1465func (x *StudySpec_ParameterSpec_DoubleValueSpec) String() string {
1466	return protoimpl.X.MessageStringOf(x)
1467}
1468
1469func (*StudySpec_ParameterSpec_DoubleValueSpec) ProtoMessage() {}
1470
1471func (x *StudySpec_ParameterSpec_DoubleValueSpec) ProtoReflect() protoreflect.Message {
1472	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[11]
1473	if protoimpl.UnsafeEnabled && x != nil {
1474		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1475		if ms.LoadMessageInfo() == nil {
1476			ms.StoreMessageInfo(mi)
1477		}
1478		return ms
1479	}
1480	return mi.MessageOf(x)
1481}
1482
1483// Deprecated: Use StudySpec_ParameterSpec_DoubleValueSpec.ProtoReflect.Descriptor instead.
1484func (*StudySpec_ParameterSpec_DoubleValueSpec) Descriptor() ([]byte, []int) {
1485	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 1, 0}
1486}
1487
1488func (x *StudySpec_ParameterSpec_DoubleValueSpec) GetMinValue() float64 {
1489	if x != nil {
1490		return x.MinValue
1491	}
1492	return 0
1493}
1494
1495func (x *StudySpec_ParameterSpec_DoubleValueSpec) GetMaxValue() float64 {
1496	if x != nil {
1497		return x.MaxValue
1498	}
1499	return 0
1500}
1501
1502func (x *StudySpec_ParameterSpec_DoubleValueSpec) GetDefaultValue() float64 {
1503	if x != nil && x.DefaultValue != nil {
1504		return *x.DefaultValue
1505	}
1506	return 0
1507}
1508
1509// Value specification for a parameter in `INTEGER` type.
1510type StudySpec_ParameterSpec_IntegerValueSpec struct {
1511	state         protoimpl.MessageState
1512	sizeCache     protoimpl.SizeCache
1513	unknownFields protoimpl.UnknownFields
1514
1515	// Required. Inclusive minimum value of the parameter.
1516	MinValue int64 `protobuf:"varint,1,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"`
1517	// Required. Inclusive maximum value of the parameter.
1518	MaxValue int64 `protobuf:"varint,2,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"`
1519	// A default value for an `INTEGER` parameter that is assumed to be a
1520	// relatively good starting point.  Unset value signals that there is no
1521	// offered starting point.
1522	//
1523	// Currently only supported by the Vizier service. Not supported by
1524	// HyperparamterTuningJob or TrainingPipeline.
1525	DefaultValue *int64 `protobuf:"varint,4,opt,name=default_value,json=defaultValue,proto3,oneof" json:"default_value,omitempty"`
1526}
1527
1528func (x *StudySpec_ParameterSpec_IntegerValueSpec) Reset() {
1529	*x = StudySpec_ParameterSpec_IntegerValueSpec{}
1530	if protoimpl.UnsafeEnabled {
1531		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12]
1532		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1533		ms.StoreMessageInfo(mi)
1534	}
1535}
1536
1537func (x *StudySpec_ParameterSpec_IntegerValueSpec) String() string {
1538	return protoimpl.X.MessageStringOf(x)
1539}
1540
1541func (*StudySpec_ParameterSpec_IntegerValueSpec) ProtoMessage() {}
1542
1543func (x *StudySpec_ParameterSpec_IntegerValueSpec) ProtoReflect() protoreflect.Message {
1544	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12]
1545	if protoimpl.UnsafeEnabled && x != nil {
1546		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1547		if ms.LoadMessageInfo() == nil {
1548			ms.StoreMessageInfo(mi)
1549		}
1550		return ms
1551	}
1552	return mi.MessageOf(x)
1553}
1554
1555// Deprecated: Use StudySpec_ParameterSpec_IntegerValueSpec.ProtoReflect.Descriptor instead.
1556func (*StudySpec_ParameterSpec_IntegerValueSpec) Descriptor() ([]byte, []int) {
1557	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 1, 1}
1558}
1559
1560func (x *StudySpec_ParameterSpec_IntegerValueSpec) GetMinValue() int64 {
1561	if x != nil {
1562		return x.MinValue
1563	}
1564	return 0
1565}
1566
1567func (x *StudySpec_ParameterSpec_IntegerValueSpec) GetMaxValue() int64 {
1568	if x != nil {
1569		return x.MaxValue
1570	}
1571	return 0
1572}
1573
1574func (x *StudySpec_ParameterSpec_IntegerValueSpec) GetDefaultValue() int64 {
1575	if x != nil && x.DefaultValue != nil {
1576		return *x.DefaultValue
1577	}
1578	return 0
1579}
1580
1581// Value specification for a parameter in `CATEGORICAL` type.
1582type StudySpec_ParameterSpec_CategoricalValueSpec struct {
1583	state         protoimpl.MessageState
1584	sizeCache     protoimpl.SizeCache
1585	unknownFields protoimpl.UnknownFields
1586
1587	// Required. The list of possible categories.
1588	Values []string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
1589	// A default value for a `CATEGORICAL` parameter that is assumed to be a
1590	// relatively good starting point.  Unset value signals that there is no
1591	// offered starting point.
1592	//
1593	// Currently only supported by the Vizier service. Not supported by
1594	// HyperparamterTuningJob or TrainingPipeline.
1595	DefaultValue *string `protobuf:"bytes,3,opt,name=default_value,json=defaultValue,proto3,oneof" json:"default_value,omitempty"`
1596}
1597
1598func (x *StudySpec_ParameterSpec_CategoricalValueSpec) Reset() {
1599	*x = StudySpec_ParameterSpec_CategoricalValueSpec{}
1600	if protoimpl.UnsafeEnabled {
1601		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[13]
1602		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1603		ms.StoreMessageInfo(mi)
1604	}
1605}
1606
1607func (x *StudySpec_ParameterSpec_CategoricalValueSpec) String() string {
1608	return protoimpl.X.MessageStringOf(x)
1609}
1610
1611func (*StudySpec_ParameterSpec_CategoricalValueSpec) ProtoMessage() {}
1612
1613func (x *StudySpec_ParameterSpec_CategoricalValueSpec) ProtoReflect() protoreflect.Message {
1614	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[13]
1615	if protoimpl.UnsafeEnabled && x != nil {
1616		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1617		if ms.LoadMessageInfo() == nil {
1618			ms.StoreMessageInfo(mi)
1619		}
1620		return ms
1621	}
1622	return mi.MessageOf(x)
1623}
1624
1625// Deprecated: Use StudySpec_ParameterSpec_CategoricalValueSpec.ProtoReflect.Descriptor instead.
1626func (*StudySpec_ParameterSpec_CategoricalValueSpec) Descriptor() ([]byte, []int) {
1627	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 1, 2}
1628}
1629
1630func (x *StudySpec_ParameterSpec_CategoricalValueSpec) GetValues() []string {
1631	if x != nil {
1632		return x.Values
1633	}
1634	return nil
1635}
1636
1637func (x *StudySpec_ParameterSpec_CategoricalValueSpec) GetDefaultValue() string {
1638	if x != nil && x.DefaultValue != nil {
1639		return *x.DefaultValue
1640	}
1641	return ""
1642}
1643
1644// Value specification for a parameter in `DISCRETE` type.
1645type StudySpec_ParameterSpec_DiscreteValueSpec struct {
1646	state         protoimpl.MessageState
1647	sizeCache     protoimpl.SizeCache
1648	unknownFields protoimpl.UnknownFields
1649
1650	// Required. A list of possible values.
1651	// The list should be in increasing order and at least 1e-10 apart.
1652	// For instance, this parameter might have possible settings of 1.5, 2.5,
1653	// and 4.0. This list should not contain more than 1,000 values.
1654	Values []float64 `protobuf:"fixed64,1,rep,packed,name=values,proto3" json:"values,omitempty"`
1655	// A default value for a `DISCRETE` parameter that is assumed to be a
1656	// relatively good starting point.  Unset value signals that there is no
1657	// offered starting point.  It automatically rounds to the
1658	// nearest feasible discrete point.
1659	//
1660	// Currently only supported by the Vizier service. Not supported by
1661	// HyperparamterTuningJob or TrainingPipeline.
1662	DefaultValue *float64 `protobuf:"fixed64,3,opt,name=default_value,json=defaultValue,proto3,oneof" json:"default_value,omitempty"`
1663}
1664
1665func (x *StudySpec_ParameterSpec_DiscreteValueSpec) Reset() {
1666	*x = StudySpec_ParameterSpec_DiscreteValueSpec{}
1667	if protoimpl.UnsafeEnabled {
1668		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[14]
1669		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1670		ms.StoreMessageInfo(mi)
1671	}
1672}
1673
1674func (x *StudySpec_ParameterSpec_DiscreteValueSpec) String() string {
1675	return protoimpl.X.MessageStringOf(x)
1676}
1677
1678func (*StudySpec_ParameterSpec_DiscreteValueSpec) ProtoMessage() {}
1679
1680func (x *StudySpec_ParameterSpec_DiscreteValueSpec) ProtoReflect() protoreflect.Message {
1681	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[14]
1682	if protoimpl.UnsafeEnabled && x != nil {
1683		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1684		if ms.LoadMessageInfo() == nil {
1685			ms.StoreMessageInfo(mi)
1686		}
1687		return ms
1688	}
1689	return mi.MessageOf(x)
1690}
1691
1692// Deprecated: Use StudySpec_ParameterSpec_DiscreteValueSpec.ProtoReflect.Descriptor instead.
1693func (*StudySpec_ParameterSpec_DiscreteValueSpec) Descriptor() ([]byte, []int) {
1694	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 1, 3}
1695}
1696
1697func (x *StudySpec_ParameterSpec_DiscreteValueSpec) GetValues() []float64 {
1698	if x != nil {
1699		return x.Values
1700	}
1701	return nil
1702}
1703
1704func (x *StudySpec_ParameterSpec_DiscreteValueSpec) GetDefaultValue() float64 {
1705	if x != nil && x.DefaultValue != nil {
1706		return *x.DefaultValue
1707	}
1708	return 0
1709}
1710
1711// Represents a parameter spec with condition from its parent parameter.
1712type StudySpec_ParameterSpec_ConditionalParameterSpec struct {
1713	state         protoimpl.MessageState
1714	sizeCache     protoimpl.SizeCache
1715	unknownFields protoimpl.UnknownFields
1716
1717	// A set of parameter values from the parent ParameterSpec's feasible
1718	// space.
1719	//
1720	// Types that are assignable to ParentValueCondition:
1721	//	*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues
1722	//	*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues
1723	//	*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues
1724	ParentValueCondition isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition `protobuf_oneof:"parent_value_condition"`
1725	// Required. The spec for a conditional parameter.
1726	ParameterSpec *StudySpec_ParameterSpec `protobuf:"bytes,1,opt,name=parameter_spec,json=parameterSpec,proto3" json:"parameter_spec,omitempty"`
1727}
1728
1729func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) Reset() {
1730	*x = StudySpec_ParameterSpec_ConditionalParameterSpec{}
1731	if protoimpl.UnsafeEnabled {
1732		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[15]
1733		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1734		ms.StoreMessageInfo(mi)
1735	}
1736}
1737
1738func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) String() string {
1739	return protoimpl.X.MessageStringOf(x)
1740}
1741
1742func (*StudySpec_ParameterSpec_ConditionalParameterSpec) ProtoMessage() {}
1743
1744func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) ProtoReflect() protoreflect.Message {
1745	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[15]
1746	if protoimpl.UnsafeEnabled && x != nil {
1747		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1748		if ms.LoadMessageInfo() == nil {
1749			ms.StoreMessageInfo(mi)
1750		}
1751		return ms
1752	}
1753	return mi.MessageOf(x)
1754}
1755
1756// Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec.ProtoReflect.Descriptor instead.
1757func (*StudySpec_ParameterSpec_ConditionalParameterSpec) Descriptor() ([]byte, []int) {
1758	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 1, 4}
1759}
1760
1761func (m *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentValueCondition() isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition {
1762	if m != nil {
1763		return m.ParentValueCondition
1764	}
1765	return nil
1766}
1767
1768func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentDiscreteValues() *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition {
1769	if x, ok := x.GetParentValueCondition().(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues); ok {
1770		return x.ParentDiscreteValues
1771	}
1772	return nil
1773}
1774
1775func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentIntValues() *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition {
1776	if x, ok := x.GetParentValueCondition().(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues); ok {
1777		return x.ParentIntValues
1778	}
1779	return nil
1780}
1781
1782func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentCategoricalValues() *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition {
1783	if x, ok := x.GetParentValueCondition().(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues); ok {
1784		return x.ParentCategoricalValues
1785	}
1786	return nil
1787}
1788
1789func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParameterSpec() *StudySpec_ParameterSpec {
1790	if x != nil {
1791		return x.ParameterSpec
1792	}
1793	return nil
1794}
1795
1796type isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition interface {
1797	isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition()
1798}
1799
1800type StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues struct {
1801	// The spec for matching values from a parent parameter of
1802	// `DISCRETE` type.
1803	ParentDiscreteValues *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition `protobuf:"bytes,2,opt,name=parent_discrete_values,json=parentDiscreteValues,proto3,oneof"`
1804}
1805
1806type StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues struct {
1807	// The spec for matching values from a parent parameter of `INTEGER`
1808	// type.
1809	ParentIntValues *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition `protobuf:"bytes,3,opt,name=parent_int_values,json=parentIntValues,proto3,oneof"`
1810}
1811
1812type StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues struct {
1813	// The spec for matching values from a parent parameter of
1814	// `CATEGORICAL` type.
1815	ParentCategoricalValues *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition `protobuf:"bytes,4,opt,name=parent_categorical_values,json=parentCategoricalValues,proto3,oneof"`
1816}
1817
1818func (*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues) isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition() {
1819}
1820
1821func (*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues) isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition() {
1822}
1823
1824func (*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues) isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition() {
1825}
1826
1827// Represents the spec to match discrete values from parent parameter.
1828type StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition struct {
1829	state         protoimpl.MessageState
1830	sizeCache     protoimpl.SizeCache
1831	unknownFields protoimpl.UnknownFields
1832
1833	// Required. Matches values of the parent parameter of 'DISCRETE' type.
1834	// All values must exist in `discrete_value_spec` of parent parameter.
1835	//
1836	// The Epsilon of the value matching is 1e-10.
1837	Values []float64 `protobuf:"fixed64,1,rep,packed,name=values,proto3" json:"values,omitempty"`
1838}
1839
1840func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) Reset() {
1841	*x = StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition{}
1842	if protoimpl.UnsafeEnabled {
1843		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16]
1844		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1845		ms.StoreMessageInfo(mi)
1846	}
1847}
1848
1849func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) String() string {
1850	return protoimpl.X.MessageStringOf(x)
1851}
1852
1853func (*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) ProtoMessage() {}
1854
1855func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) ProtoReflect() protoreflect.Message {
1856	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16]
1857	if protoimpl.UnsafeEnabled && x != nil {
1858		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1859		if ms.LoadMessageInfo() == nil {
1860			ms.StoreMessageInfo(mi)
1861		}
1862		return ms
1863	}
1864	return mi.MessageOf(x)
1865}
1866
1867// Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition.ProtoReflect.Descriptor instead.
1868func (*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) Descriptor() ([]byte, []int) {
1869	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 1, 4, 0}
1870}
1871
1872func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) GetValues() []float64 {
1873	if x != nil {
1874		return x.Values
1875	}
1876	return nil
1877}
1878
1879// Represents the spec to match integer values from parent parameter.
1880type StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition struct {
1881	state         protoimpl.MessageState
1882	sizeCache     protoimpl.SizeCache
1883	unknownFields protoimpl.UnknownFields
1884
1885	// Required. Matches values of the parent parameter of 'INTEGER' type.
1886	// All values must lie in `integer_value_spec` of parent parameter.
1887	Values []int64 `protobuf:"varint,1,rep,packed,name=values,proto3" json:"values,omitempty"`
1888}
1889
1890func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) Reset() {
1891	*x = StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition{}
1892	if protoimpl.UnsafeEnabled {
1893		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17]
1894		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1895		ms.StoreMessageInfo(mi)
1896	}
1897}
1898
1899func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) String() string {
1900	return protoimpl.X.MessageStringOf(x)
1901}
1902
1903func (*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) ProtoMessage() {}
1904
1905func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) ProtoReflect() protoreflect.Message {
1906	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17]
1907	if protoimpl.UnsafeEnabled && x != nil {
1908		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1909		if ms.LoadMessageInfo() == nil {
1910			ms.StoreMessageInfo(mi)
1911		}
1912		return ms
1913	}
1914	return mi.MessageOf(x)
1915}
1916
1917// Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition.ProtoReflect.Descriptor instead.
1918func (*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) Descriptor() ([]byte, []int) {
1919	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 1, 4, 1}
1920}
1921
1922func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) GetValues() []int64 {
1923	if x != nil {
1924		return x.Values
1925	}
1926	return nil
1927}
1928
1929// Represents the spec to match categorical values from parent parameter.
1930type StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition struct {
1931	state         protoimpl.MessageState
1932	sizeCache     protoimpl.SizeCache
1933	unknownFields protoimpl.UnknownFields
1934
1935	// Required. Matches values of the parent parameter of 'CATEGORICAL' type.
1936	// All values must exist in `categorical_value_spec` of parent
1937	// parameter.
1938	Values []string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
1939}
1940
1941func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) Reset() {
1942	*x = StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition{}
1943	if protoimpl.UnsafeEnabled {
1944		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18]
1945		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1946		ms.StoreMessageInfo(mi)
1947	}
1948}
1949
1950func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) String() string {
1951	return protoimpl.X.MessageStringOf(x)
1952}
1953
1954func (*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) ProtoMessage() {}
1955
1956func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) ProtoReflect() protoreflect.Message {
1957	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18]
1958	if protoimpl.UnsafeEnabled && x != nil {
1959		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1960		if ms.LoadMessageInfo() == nil {
1961			ms.StoreMessageInfo(mi)
1962		}
1963		return ms
1964	}
1965	return mi.MessageOf(x)
1966}
1967
1968// Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition.ProtoReflect.Descriptor instead.
1969func (*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) Descriptor() ([]byte, []int) {
1970	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2, 1, 4, 2}
1971}
1972
1973func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) GetValues() []string {
1974	if x != nil {
1975		return x.Values
1976	}
1977	return nil
1978}
1979
1980// A message representing a metric in the measurement.
1981type Measurement_Metric struct {
1982	state         protoimpl.MessageState
1983	sizeCache     protoimpl.SizeCache
1984	unknownFields protoimpl.UnknownFields
1985
1986	// Output only. The ID of the Metric. The Metric should be defined in
1987	// [StudySpec's Metrics][google.cloud.aiplatform.v1beta1.StudySpec.metrics].
1988	MetricId string `protobuf:"bytes,1,opt,name=metric_id,json=metricId,proto3" json:"metric_id,omitempty"`
1989	// Output only. The value for this metric.
1990	Value float64 `protobuf:"fixed64,2,opt,name=value,proto3" json:"value,omitempty"`
1991}
1992
1993func (x *Measurement_Metric) Reset() {
1994	*x = Measurement_Metric{}
1995	if protoimpl.UnsafeEnabled {
1996		mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19]
1997		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1998		ms.StoreMessageInfo(mi)
1999	}
2000}
2001
2002func (x *Measurement_Metric) String() string {
2003	return protoimpl.X.MessageStringOf(x)
2004}
2005
2006func (*Measurement_Metric) ProtoMessage() {}
2007
2008func (x *Measurement_Metric) ProtoReflect() protoreflect.Message {
2009	mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19]
2010	if protoimpl.UnsafeEnabled && x != nil {
2011		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2012		if ms.LoadMessageInfo() == nil {
2013			ms.StoreMessageInfo(mi)
2014		}
2015		return ms
2016	}
2017	return mi.MessageOf(x)
2018}
2019
2020// Deprecated: Use Measurement_Metric.ProtoReflect.Descriptor instead.
2021func (*Measurement_Metric) Descriptor() ([]byte, []int) {
2022	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 0}
2023}
2024
2025func (x *Measurement_Metric) GetMetricId() string {
2026	if x != nil {
2027		return x.MetricId
2028	}
2029	return ""
2030}
2031
2032func (x *Measurement_Metric) GetValue() float64 {
2033	if x != nil {
2034		return x.Value
2035	}
2036	return 0
2037}
2038
2039var File_google_cloud_aiplatform_v1beta1_study_proto protoreflect.FileDescriptor
2040
2041var file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc = []byte{
2042	0x0a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61,
2043	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
2044	0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67,
2045	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
2046	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1f,
2047	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64,
2048	0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
2049	0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f,
2050	0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67,
2051	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61,
2052	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67,
2053	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75,
2054	0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2055	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
2056	0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
2057	0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
2058	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf9, 0x03, 0x0a, 0x05, 0x53, 0x74, 0x75, 0x64,
2059	0x79, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
2060	0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69,
2061	0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
2062	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61,
2063	0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x0a, 0x73, 0x74, 0x75, 0x64, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63,
2064	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
2065	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
2066	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70,
2067	0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70,
2068	0x65, 0x63, 0x12, 0x47, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
2069	0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
2070	0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
2071	0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42,
2072	0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63,
2073	0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
2074	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
2075	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41,
2076	0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a,
2077	0x0f, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e,
2078	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x69, 0x6e, 0x61,
2079	0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x47, 0x0a, 0x05, 0x53,
2080	0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e,
2081	0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41,
2082	0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x41, 0x43, 0x54,
2083	0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54,
2084	0x45, 0x44, 0x10, 0x03, 0x3a, 0x5d, 0xea, 0x41, 0x5a, 0x0a, 0x1f, 0x61, 0x69, 0x70, 0x6c, 0x61,
2085	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73,
2086	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x75, 0x64, 0x79, 0x12, 0x37, 0x70, 0x72, 0x6f, 0x6a,
2087	0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c,
2088	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
2089	0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x74, 0x75,
2090	0x64, 0x79, 0x7d, 0x22, 0x90, 0x09, 0x0a, 0x05, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x17, 0x0a,
2091	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03,
2092	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
2093	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x47, 0x0a, 0x05, 0x73,
2094	0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f,
2095	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
2096	0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x69,
2097	0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73,
2098	0x74, 0x61, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
2099	0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
2100	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
2101	0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x61, 0x6c,
2102	0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
2103	0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5e, 0x0a, 0x11, 0x66,
2104	0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74,
2105	0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
2106	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
2107	0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65,
2108	0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x66, 0x69, 0x6e, 0x61, 0x6c,
2109	0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x55, 0x0a, 0x0c, 0x6d,
2110	0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28,
2111	0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
2112	0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
2113	0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42,
2114	0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e,
2115	0x74, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65,
2116	0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
2117	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
2118	0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
2119	0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08,
2120	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
2121	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
2122	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20,
2123	0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28,
2124	0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64,
2125	0x12, 0x30, 0x0a, 0x11, 0x69, 0x6e, 0x66, 0x65, 0x61, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x72,
2126	0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03,
2127	0x52, 0x10, 0x69, 0x6e, 0x66, 0x65, 0x61, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x61, 0x73,
2128	0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6a, 0x6f, 0x62,
2129	0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x25, 0x0a, 0x23,
2130	0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
2131	0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d,
2132	0x4a, 0x6f, 0x62, 0x52, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x12, 0x66,
2133	0x0a, 0x0f, 0x77, 0x65, 0x62, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x75, 0x72, 0x69,
2134	0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2135	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
2136	0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x2e,
2137	0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x69, 0x73, 0x45, 0x6e, 0x74,
2138	0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x77, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65,
2139	0x73, 0x73, 0x55, 0x72, 0x69, 0x73, 0x1a, 0x66, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
2140	0x74, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
2141	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b,
2142	0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x05, 0x76,
2143	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
2144	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c,
2145	0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x40,
2146	0x0a, 0x12, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x69, 0x73, 0x45,
2147	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
2148	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
2149	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
2150	0x22, 0x66, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41,
2151	0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
2152	0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12,
2153	0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x53,
2154	0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43,
2155	0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4e, 0x46, 0x45,
2156	0x41, 0x53, 0x49, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x3a, 0x6c, 0xea, 0x41, 0x69, 0x0a, 0x1f, 0x61,
2157	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2158	0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x46,
2159	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
2160	0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f,
2161	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x69, 0x65, 0x73, 0x2f,
2162	0x7b, 0x73, 0x74, 0x75, 0x64, 0x79, 0x7d, 0x2f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x2f, 0x7b,
2163	0x74, 0x72, 0x69, 0x61, 0x6c, 0x7d, 0x22, 0xf8, 0x1f, 0x0a, 0x09, 0x53, 0x74, 0x75, 0x64, 0x79,
2164	0x53, 0x70, 0x65, 0x63, 0x12, 0x87, 0x01, 0x0a, 0x19, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, 0x63,
2165	0x75, 0x72, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70,
2166	0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
2167	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
2168	0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79,
2169	0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x61, 0x79, 0x43, 0x75, 0x72, 0x76, 0x65, 0x41,
2170	0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67,
2171	0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x16, 0x64, 0x65, 0x63, 0x61, 0x79, 0x43, 0x75, 0x72,
2172	0x76, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x8d,
2173	0x01, 0x0a, 0x1e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61,
2174	0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65,
2175	0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2176	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
2177	0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53,
2178	0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61,
2179	0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x48,
2180	0x00, 0x52, 0x1b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74,
2181	0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6f,
2182	0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x63, 0x6f,
2183	0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f,
2184	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
2185	0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75,
2186	0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x53, 0x74, 0x6f,
2187	0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x10, 0x63,
2188	0x6f, 0x6e, 0x76, 0x65, 0x78, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
2189	0x54, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
2190	0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
2191	0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
2192	0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x74,
2193	0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6d, 0x65,
2194	0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x5d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
2195	0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
2196	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
2197	0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64,
2198	0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53,
2199	0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65,
2200	0x74, 0x65, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68,
2201	0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2202	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
2203	0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53,
2204	0x70, 0x65, 0x63, 0x2e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x09, 0x61,
2205	0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x68, 0x0a, 0x11, 0x6f, 0x62, 0x73, 0x65,
2206	0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x18, 0x06, 0x20,
2207	0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
2208	0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
2209	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e,
2210	0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x69, 0x73, 0x65,
2211	0x52, 0x10, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x69,
2212	0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x1a, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65,
2213	0x6e, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70,
2214	0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
2215	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
2216	0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53,
2217	0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53,
2218	0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x18, 0x6d, 0x65,
2219	0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69,
2220	0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x1a, 0xca, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x72, 0x69,
2221	0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f,
2222	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d,
2223	0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x18,
2224	0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
2225	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e,
2226	0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65,
2227	0x63, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x47, 0x6f, 0x61,
2228	0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x67, 0x6f, 0x61, 0x6c,
2229	0x22, 0x41, 0x0a, 0x08, 0x47, 0x6f, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15,
2230	0x47, 0x4f, 0x41, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
2231	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x41, 0x58, 0x49, 0x4d,
2232	0x49, 0x5a, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x49, 0x5a,
2233	0x45, 0x10, 0x02, 0x1a, 0xda, 0x11, 0x0a, 0x0d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
2234	0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x76, 0x0a, 0x11, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f,
2235	0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
2236	0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
2237	0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
2238	0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72,
2239	0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c,
2240	0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x6f,
2241	0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x79, 0x0a,
2242	0x12, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73,
2243	0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
2244	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
2245	0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64,
2246	0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53,
2247	0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65,
2248	0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56,
2249	0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x85, 0x01, 0x0a, 0x16, 0x63, 0x61, 0x74,
2250	0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73,
2251	0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
2252	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
2253	0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64,
2254	0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53,
2255	0x70, 0x65, 0x63, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56,
2256	0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x14, 0x63, 0x61, 0x74, 0x65,
2257	0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63,
2258	0x12, 0x7c, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c,
2259	0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e,
2260	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
2261	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
2262	0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
2263	0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65,
2264	0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x11, 0x64, 0x69, 0x73,
2265	0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x26,
2266	0x0a, 0x0c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01,
2267	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d,
2268	0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x61, 0x0a, 0x0a, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f,
2269	0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f,
2270	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
2271	0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75,
2272	0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
2273	0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09,
2274	0x73, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x91, 0x01, 0x0a, 0x1b, 0x63, 0x6f,
2275	0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65,
2276	0x74, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32,
2277	0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61,
2278	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
2279	0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61,
2280	0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74,
2281	0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70,
2282	0x65, 0x63, 0x52, 0x19, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50,
2283	0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x73, 0x1a, 0x91, 0x01,
2284	0x0a, 0x0f, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65,
2285	0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01,
2286	0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61,
2287	0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,
2288	0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78,
2289	0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
2290	0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0c,
2291	0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42,
2292	0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75,
2293	0x65, 0x1a, 0x92, 0x01, 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c,
2294	0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61,
2295	0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08,
2296	0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f,
2297	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02,
2298	0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65,
2299	0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
2300	0x03, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75,
2301	0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
2302	0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x6f, 0x0a, 0x14, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f,
2303	0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1b,
2304	0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03,
2305	0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x64,
2306	0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01,
2307	0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c,
2308	0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
2309	0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x6c, 0x0a, 0x11, 0x44, 0x69, 0x73, 0x63, 0x72,
2310	0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x06,
2311	0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41,
2312	0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66,
2313	0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01,
2314	0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
2315	0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f,
2316	0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xa0, 0x06, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74,
2317	0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70,
2318	0x65, 0x63, 0x12, 0xa0, 0x01, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69,
2319	0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20,
2320	0x01, 0x28, 0x0b, 0x32, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
2321	0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
2322	0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e,
2323	0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f,
2324	0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
2325	0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56,
2326	0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52,
2327	0x14, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56,
2328	0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x91, 0x01, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
2329	0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
2330	0x0b, 0x32, 0x63, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
2331	0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
2332	0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61,
2333	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64,
2334	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
2335	0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e,
2336	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
2337	0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x19, 0x70, 0x61,
2338	0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c,
2339	0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x6b, 0x2e,
2340	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
2341	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
2342	0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
2343	0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,
2344	0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63,
2345	0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75,
2346	0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x17, 0x70, 0x61,
2347	0x72, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56,
2348	0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x64, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
2349	0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e,
2350	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
2351	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
2352	0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
2353	0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x70, 0x61,
2354	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x1a, 0x35, 0x0a, 0x16, 0x44,
2355	0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64,
2356	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18,
2357	0x01, 0x20, 0x03, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75,
2358	0x65, 0x73, 0x1a, 0x30, 0x0a, 0x11, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f,
2359	0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65,
2360	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61,
2361	0x6c, 0x75, 0x65, 0x73, 0x1a, 0x38, 0x0a, 0x19, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69,
2362	0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f,
2363	0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
2364	0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x18,
2365	0x0a, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63,
2366	0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e, 0x0a, 0x09, 0x53, 0x63, 0x61, 0x6c,
2367	0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x5f, 0x54,
2368	0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
2369	0x00, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4c, 0x49, 0x4e, 0x45, 0x41, 0x52,
2370	0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x49, 0x54,
2371	0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16,
2372	0x55, 0x4e, 0x49, 0x54, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4c, 0x4f, 0x47,
2373	0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x10, 0x03, 0x42, 0x16, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x61,
2374	0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63,
2375	0x1a, 0x53, 0x0a, 0x1f, 0x44, 0x65, 0x63, 0x61, 0x79, 0x43, 0x75, 0x72, 0x76, 0x65, 0x41, 0x75,
2376	0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53,
2377	0x70, 0x65, 0x63, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73,
2378	0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
2379	0x08, 0x52, 0x12, 0x75, 0x73, 0x65, 0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72,
2380	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x4f, 0x0a, 0x1b, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x41,
2381	0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67,
2382	0x53, 0x70, 0x65, 0x63, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x6c, 0x61, 0x70,
2383	0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
2384	0x28, 0x08, 0x52, 0x12, 0x75, 0x73, 0x65, 0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75,
2385	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xf3, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65,
2386	0x78, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22, 0x0a, 0x0d, 0x6d,
2387	0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01,
2388	0x28, 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x53, 0x74, 0x65, 0x70, 0x73, 0x12,
2389	0x22, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73,
2390	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x53, 0x74,
2391	0x65, 0x70, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x67, 0x72, 0x65,
2392	0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
2393	0x03, 0x52, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76,
2394	0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x1c, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69,
2395	0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
2396	0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x6c, 0x65,
2397	0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
2398	0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x5f, 0x73,
2399	0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x75, 0x73,
2400	0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x4a, 0x0a, 0x09,
2401	0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x4c, 0x47,
2402	0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
2403	0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x52, 0x49, 0x44, 0x5f, 0x53, 0x45, 0x41,
2404	0x52, 0x43, 0x48, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x5f,
2405	0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x03, 0x22, 0x48, 0x0a, 0x10, 0x4f, 0x62, 0x73, 0x65,
2406	0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x1d,
2407	0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x49, 0x53,
2408	0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
2409	0x07, 0x0a, 0x03, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, 0x48,
2410	0x10, 0x02, 0x22, 0x72, 0x0a, 0x18, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e,
2411	0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a,
2412	0x0a, 0x26, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45,
2413	0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53,
2414	0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x41,
2415	0x53, 0x54, 0x5f, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x01,
2416	0x12, 0x14, 0x0a, 0x10, 0x42, 0x45, 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45,
2417	0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x42, 0x19, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61,
2418	0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65,
2419	0x63, 0x22, 0x97, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e,
2420	0x74, 0x12, 0x49, 0x0a, 0x10, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72,
2421	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
2422	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
2423	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x65, 0x6c, 0x61,
2424	0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a,
2425	0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
2426	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x65, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74,
2427	0x12, 0x52, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
2428	0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
2429	0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
2430	0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
2431	0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x74,
2432	0x72, 0x69, 0x63, 0x73, 0x1a, 0x45, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x20,
2433	0x0a, 0x09, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
2434	0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x64,
2435	0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x42,
2436	0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0xe7, 0x01, 0x0a, 0x23,
2437	0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
2438	0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
2439	0x74, 0x61, 0x31, 0x42, 0x0a, 0x53, 0x74, 0x75, 0x64, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50,
2440	0x01, 0x5a, 0x49, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67,
2441	0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f,
2442	0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61,
2443	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
2444	0x31, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0xaa, 0x02, 0x1f, 0x47,
2445	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c,
2446	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02,
2447	0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49,
2448	0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
2449	0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64,
2450	0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31,
2451	0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
2452}
2453
2454var (
2455	file_google_cloud_aiplatform_v1beta1_study_proto_rawDescOnce sync.Once
2456	file_google_cloud_aiplatform_v1beta1_study_proto_rawDescData = file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc
2457)
2458
2459func file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP() []byte {
2460	file_google_cloud_aiplatform_v1beta1_study_proto_rawDescOnce.Do(func() {
2461		file_google_cloud_aiplatform_v1beta1_study_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1beta1_study_proto_rawDescData)
2462	})
2463	return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescData
2464}
2465
2466var file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes = make([]protoimpl.EnumInfo, 7)
2467var file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
2468var file_google_cloud_aiplatform_v1beta1_study_proto_goTypes = []interface{}{
2469	(Study_State)(0),                                         // 0: google.cloud.aiplatform.v1beta1.Study.State
2470	(Trial_State)(0),                                         // 1: google.cloud.aiplatform.v1beta1.Trial.State
2471	(StudySpec_Algorithm)(0),                                 // 2: google.cloud.aiplatform.v1beta1.StudySpec.Algorithm
2472	(StudySpec_ObservationNoise)(0),                          // 3: google.cloud.aiplatform.v1beta1.StudySpec.ObservationNoise
2473	(StudySpec_MeasurementSelectionType)(0),                  // 4: google.cloud.aiplatform.v1beta1.StudySpec.MeasurementSelectionType
2474	(StudySpec_MetricSpec_GoalType)(0),                       // 5: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.GoalType
2475	(StudySpec_ParameterSpec_ScaleType)(0),                   // 6: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ScaleType
2476	(*Study)(nil),                                            // 7: google.cloud.aiplatform.v1beta1.Study
2477	(*Trial)(nil),                                            // 8: google.cloud.aiplatform.v1beta1.Trial
2478	(*StudySpec)(nil),                                        // 9: google.cloud.aiplatform.v1beta1.StudySpec
2479	(*Measurement)(nil),                                      // 10: google.cloud.aiplatform.v1beta1.Measurement
2480	(*Trial_Parameter)(nil),                                  // 11: google.cloud.aiplatform.v1beta1.Trial.Parameter
2481	nil,                                                      // 12: google.cloud.aiplatform.v1beta1.Trial.WebAccessUrisEntry
2482	(*StudySpec_MetricSpec)(nil),                             // 13: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec
2483	(*StudySpec_ParameterSpec)(nil),                          // 14: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec
2484	(*StudySpec_DecayCurveAutomatedStoppingSpec)(nil),        // 15: google.cloud.aiplatform.v1beta1.StudySpec.DecayCurveAutomatedStoppingSpec
2485	(*StudySpec_MedianAutomatedStoppingSpec)(nil),            // 16: google.cloud.aiplatform.v1beta1.StudySpec.MedianAutomatedStoppingSpec
2486	(*StudySpec_ConvexStopConfig)(nil),                       // 17: google.cloud.aiplatform.v1beta1.StudySpec.ConvexStopConfig
2487	(*StudySpec_ParameterSpec_DoubleValueSpec)(nil),          // 18: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DoubleValueSpec
2488	(*StudySpec_ParameterSpec_IntegerValueSpec)(nil),         // 19: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.IntegerValueSpec
2489	(*StudySpec_ParameterSpec_CategoricalValueSpec)(nil),     // 20: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.CategoricalValueSpec
2490	(*StudySpec_ParameterSpec_DiscreteValueSpec)(nil),        // 21: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DiscreteValueSpec
2491	(*StudySpec_ParameterSpec_ConditionalParameterSpec)(nil), // 22: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec
2492	(*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition)(nil),    // 23: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition
2493	(*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition)(nil),         // 24: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition
2494	(*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition)(nil), // 25: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition
2495	(*Measurement_Metric)(nil),    // 26: google.cloud.aiplatform.v1beta1.Measurement.Metric
2496	(*timestamppb.Timestamp)(nil), // 27: google.protobuf.Timestamp
2497	(*durationpb.Duration)(nil),   // 28: google.protobuf.Duration
2498	(*structpb.Value)(nil),        // 29: google.protobuf.Value
2499}
2500var file_google_cloud_aiplatform_v1beta1_study_proto_depIdxs = []int32{
2501	9,  // 0: google.cloud.aiplatform.v1beta1.Study.study_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec
2502	0,  // 1: google.cloud.aiplatform.v1beta1.Study.state:type_name -> google.cloud.aiplatform.v1beta1.Study.State
2503	27, // 2: google.cloud.aiplatform.v1beta1.Study.create_time:type_name -> google.protobuf.Timestamp
2504	1,  // 3: google.cloud.aiplatform.v1beta1.Trial.state:type_name -> google.cloud.aiplatform.v1beta1.Trial.State
2505	11, // 4: google.cloud.aiplatform.v1beta1.Trial.parameters:type_name -> google.cloud.aiplatform.v1beta1.Trial.Parameter
2506	10, // 5: google.cloud.aiplatform.v1beta1.Trial.final_measurement:type_name -> google.cloud.aiplatform.v1beta1.Measurement
2507	10, // 6: google.cloud.aiplatform.v1beta1.Trial.measurements:type_name -> google.cloud.aiplatform.v1beta1.Measurement
2508	27, // 7: google.cloud.aiplatform.v1beta1.Trial.start_time:type_name -> google.protobuf.Timestamp
2509	27, // 8: google.cloud.aiplatform.v1beta1.Trial.end_time:type_name -> google.protobuf.Timestamp
2510	12, // 9: google.cloud.aiplatform.v1beta1.Trial.web_access_uris:type_name -> google.cloud.aiplatform.v1beta1.Trial.WebAccessUrisEntry
2511	15, // 10: google.cloud.aiplatform.v1beta1.StudySpec.decay_curve_stopping_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.DecayCurveAutomatedStoppingSpec
2512	16, // 11: google.cloud.aiplatform.v1beta1.StudySpec.median_automated_stopping_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MedianAutomatedStoppingSpec
2513	17, // 12: google.cloud.aiplatform.v1beta1.StudySpec.convex_stop_config:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ConvexStopConfig
2514	13, // 13: google.cloud.aiplatform.v1beta1.StudySpec.metrics:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec
2515	14, // 14: google.cloud.aiplatform.v1beta1.StudySpec.parameters:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec
2516	2,  // 15: google.cloud.aiplatform.v1beta1.StudySpec.algorithm:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.Algorithm
2517	3,  // 16: google.cloud.aiplatform.v1beta1.StudySpec.observation_noise:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ObservationNoise
2518	4,  // 17: google.cloud.aiplatform.v1beta1.StudySpec.measurement_selection_type:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MeasurementSelectionType
2519	28, // 18: google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration:type_name -> google.protobuf.Duration
2520	26, // 19: google.cloud.aiplatform.v1beta1.Measurement.metrics:type_name -> google.cloud.aiplatform.v1beta1.Measurement.Metric
2521	29, // 20: google.cloud.aiplatform.v1beta1.Trial.Parameter.value:type_name -> google.protobuf.Value
2522	5,  // 21: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.goal:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.GoalType
2523	18, // 22: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.double_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DoubleValueSpec
2524	19, // 23: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.integer_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.IntegerValueSpec
2525	20, // 24: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.categorical_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.CategoricalValueSpec
2526	21, // 25: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.discrete_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DiscreteValueSpec
2527	6,  // 26: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.scale_type:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ScaleType
2528	22, // 27: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.conditional_parameter_specs:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec
2529	23, // 28: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_discrete_values:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition
2530	24, // 29: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_int_values:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition
2531	25, // 30: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_categorical_values:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition
2532	14, // 31: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parameter_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec
2533	32, // [32:32] is the sub-list for method output_type
2534	32, // [32:32] is the sub-list for method input_type
2535	32, // [32:32] is the sub-list for extension type_name
2536	32, // [32:32] is the sub-list for extension extendee
2537	0,  // [0:32] is the sub-list for field type_name
2538}
2539
2540func init() { file_google_cloud_aiplatform_v1beta1_study_proto_init() }
2541func file_google_cloud_aiplatform_v1beta1_study_proto_init() {
2542	if File_google_cloud_aiplatform_v1beta1_study_proto != nil {
2543		return
2544	}
2545	if !protoimpl.UnsafeEnabled {
2546		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
2547			switch v := v.(*Study); i {
2548			case 0:
2549				return &v.state
2550			case 1:
2551				return &v.sizeCache
2552			case 2:
2553				return &v.unknownFields
2554			default:
2555				return nil
2556			}
2557		}
2558		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
2559			switch v := v.(*Trial); i {
2560			case 0:
2561				return &v.state
2562			case 1:
2563				return &v.sizeCache
2564			case 2:
2565				return &v.unknownFields
2566			default:
2567				return nil
2568			}
2569		}
2570		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
2571			switch v := v.(*StudySpec); i {
2572			case 0:
2573				return &v.state
2574			case 1:
2575				return &v.sizeCache
2576			case 2:
2577				return &v.unknownFields
2578			default:
2579				return nil
2580			}
2581		}
2582		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
2583			switch v := v.(*Measurement); i {
2584			case 0:
2585				return &v.state
2586			case 1:
2587				return &v.sizeCache
2588			case 2:
2589				return &v.unknownFields
2590			default:
2591				return nil
2592			}
2593		}
2594		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
2595			switch v := v.(*Trial_Parameter); i {
2596			case 0:
2597				return &v.state
2598			case 1:
2599				return &v.sizeCache
2600			case 2:
2601				return &v.unknownFields
2602			default:
2603				return nil
2604			}
2605		}
2606		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
2607			switch v := v.(*StudySpec_MetricSpec); i {
2608			case 0:
2609				return &v.state
2610			case 1:
2611				return &v.sizeCache
2612			case 2:
2613				return &v.unknownFields
2614			default:
2615				return nil
2616			}
2617		}
2618		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
2619			switch v := v.(*StudySpec_ParameterSpec); i {
2620			case 0:
2621				return &v.state
2622			case 1:
2623				return &v.sizeCache
2624			case 2:
2625				return &v.unknownFields
2626			default:
2627				return nil
2628			}
2629		}
2630		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
2631			switch v := v.(*StudySpec_DecayCurveAutomatedStoppingSpec); i {
2632			case 0:
2633				return &v.state
2634			case 1:
2635				return &v.sizeCache
2636			case 2:
2637				return &v.unknownFields
2638			default:
2639				return nil
2640			}
2641		}
2642		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
2643			switch v := v.(*StudySpec_MedianAutomatedStoppingSpec); i {
2644			case 0:
2645				return &v.state
2646			case 1:
2647				return &v.sizeCache
2648			case 2:
2649				return &v.unknownFields
2650			default:
2651				return nil
2652			}
2653		}
2654		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
2655			switch v := v.(*StudySpec_ConvexStopConfig); i {
2656			case 0:
2657				return &v.state
2658			case 1:
2659				return &v.sizeCache
2660			case 2:
2661				return &v.unknownFields
2662			default:
2663				return nil
2664			}
2665		}
2666		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
2667			switch v := v.(*StudySpec_ParameterSpec_DoubleValueSpec); i {
2668			case 0:
2669				return &v.state
2670			case 1:
2671				return &v.sizeCache
2672			case 2:
2673				return &v.unknownFields
2674			default:
2675				return nil
2676			}
2677		}
2678		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
2679			switch v := v.(*StudySpec_ParameterSpec_IntegerValueSpec); i {
2680			case 0:
2681				return &v.state
2682			case 1:
2683				return &v.sizeCache
2684			case 2:
2685				return &v.unknownFields
2686			default:
2687				return nil
2688			}
2689		}
2690		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
2691			switch v := v.(*StudySpec_ParameterSpec_CategoricalValueSpec); i {
2692			case 0:
2693				return &v.state
2694			case 1:
2695				return &v.sizeCache
2696			case 2:
2697				return &v.unknownFields
2698			default:
2699				return nil
2700			}
2701		}
2702		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
2703			switch v := v.(*StudySpec_ParameterSpec_DiscreteValueSpec); i {
2704			case 0:
2705				return &v.state
2706			case 1:
2707				return &v.sizeCache
2708			case 2:
2709				return &v.unknownFields
2710			default:
2711				return nil
2712			}
2713		}
2714		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
2715			switch v := v.(*StudySpec_ParameterSpec_ConditionalParameterSpec); i {
2716			case 0:
2717				return &v.state
2718			case 1:
2719				return &v.sizeCache
2720			case 2:
2721				return &v.unknownFields
2722			default:
2723				return nil
2724			}
2725		}
2726		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
2727			switch v := v.(*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition); i {
2728			case 0:
2729				return &v.state
2730			case 1:
2731				return &v.sizeCache
2732			case 2:
2733				return &v.unknownFields
2734			default:
2735				return nil
2736			}
2737		}
2738		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
2739			switch v := v.(*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition); i {
2740			case 0:
2741				return &v.state
2742			case 1:
2743				return &v.sizeCache
2744			case 2:
2745				return &v.unknownFields
2746			default:
2747				return nil
2748			}
2749		}
2750		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
2751			switch v := v.(*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition); i {
2752			case 0:
2753				return &v.state
2754			case 1:
2755				return &v.sizeCache
2756			case 2:
2757				return &v.unknownFields
2758			default:
2759				return nil
2760			}
2761		}
2762		file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
2763			switch v := v.(*Measurement_Metric); i {
2764			case 0:
2765				return &v.state
2766			case 1:
2767				return &v.sizeCache
2768			case 2:
2769				return &v.unknownFields
2770			default:
2771				return nil
2772			}
2773		}
2774	}
2775	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[2].OneofWrappers = []interface{}{
2776		(*StudySpec_DecayCurveStoppingSpec)(nil),
2777		(*StudySpec_MedianAutomatedStoppingSpec_)(nil),
2778		(*StudySpec_ConvexStopConfig_)(nil),
2779	}
2780	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[7].OneofWrappers = []interface{}{
2781		(*StudySpec_ParameterSpec_DoubleValueSpec_)(nil),
2782		(*StudySpec_ParameterSpec_IntegerValueSpec_)(nil),
2783		(*StudySpec_ParameterSpec_CategoricalValueSpec_)(nil),
2784		(*StudySpec_ParameterSpec_DiscreteValueSpec_)(nil),
2785	}
2786	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[11].OneofWrappers = []interface{}{}
2787	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12].OneofWrappers = []interface{}{}
2788	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[13].OneofWrappers = []interface{}{}
2789	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[14].OneofWrappers = []interface{}{}
2790	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[15].OneofWrappers = []interface{}{
2791		(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues)(nil),
2792		(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues)(nil),
2793		(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues)(nil),
2794	}
2795	type x struct{}
2796	out := protoimpl.TypeBuilder{
2797		File: protoimpl.DescBuilder{
2798			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
2799			RawDescriptor: file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc,
2800			NumEnums:      7,
2801			NumMessages:   20,
2802			NumExtensions: 0,
2803			NumServices:   0,
2804		},
2805		GoTypes:           file_google_cloud_aiplatform_v1beta1_study_proto_goTypes,
2806		DependencyIndexes: file_google_cloud_aiplatform_v1beta1_study_proto_depIdxs,
2807		EnumInfos:         file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes,
2808		MessageInfos:      file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes,
2809	}.Build()
2810	File_google_cloud_aiplatform_v1beta1_study_proto = out.File
2811	file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc = nil
2812	file_google_cloud_aiplatform_v1beta1_study_proto_goTypes = nil
2813	file_google_cloud_aiplatform_v1beta1_study_proto_depIdxs = nil
2814}
2815