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