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