blob: c795f4aaa44efbf0e59de1f0956f29868ad85d71 [file] [log] [blame]
// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.33.0
// protoc v4.25.3
// source: google/cloud/aiplatform/v1beta1/study.proto
package aiplatformpb
import (
reflect "reflect"
sync "sync"
_ "google.golang.org/genproto/googleapis/api/annotations"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
durationpb "google.golang.org/protobuf/types/known/durationpb"
structpb "google.golang.org/protobuf/types/known/structpb"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// Describes the Study state.
type Study_State int32
const (
// The study state is unspecified.
Study_STATE_UNSPECIFIED Study_State = 0
// The study is active.
Study_ACTIVE Study_State = 1
// The study is stopped due to an internal error.
Study_INACTIVE Study_State = 2
// The study is done when the service exhausts the parameter search space
// or max_trial_count is reached.
Study_COMPLETED Study_State = 3
)
// Enum value maps for Study_State.
var (
Study_State_name = map[int32]string{
0: "STATE_UNSPECIFIED",
1: "ACTIVE",
2: "INACTIVE",
3: "COMPLETED",
}
Study_State_value = map[string]int32{
"STATE_UNSPECIFIED": 0,
"ACTIVE": 1,
"INACTIVE": 2,
"COMPLETED": 3,
}
)
func (x Study_State) Enum() *Study_State {
p := new(Study_State)
*p = x
return p
}
func (x Study_State) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Study_State) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[0].Descriptor()
}
func (Study_State) Type() protoreflect.EnumType {
return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[0]
}
func (x Study_State) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Study_State.Descriptor instead.
func (Study_State) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{0, 0}
}
// Describes a Trial state.
type Trial_State int32
const (
// The Trial state is unspecified.
Trial_STATE_UNSPECIFIED Trial_State = 0
// Indicates that a specific Trial has been requested, but it has not yet
// been suggested by the service.
Trial_REQUESTED Trial_State = 1
// Indicates that the Trial has been suggested.
Trial_ACTIVE Trial_State = 2
// Indicates that the Trial should stop according to the service.
Trial_STOPPING Trial_State = 3
// Indicates that the Trial is completed successfully.
Trial_SUCCEEDED Trial_State = 4
// Indicates that the Trial should not be attempted again.
// The service will set a Trial to INFEASIBLE when it's done but missing
// the final_measurement.
Trial_INFEASIBLE Trial_State = 5
)
// Enum value maps for Trial_State.
var (
Trial_State_name = map[int32]string{
0: "STATE_UNSPECIFIED",
1: "REQUESTED",
2: "ACTIVE",
3: "STOPPING",
4: "SUCCEEDED",
5: "INFEASIBLE",
}
Trial_State_value = map[string]int32{
"STATE_UNSPECIFIED": 0,
"REQUESTED": 1,
"ACTIVE": 2,
"STOPPING": 3,
"SUCCEEDED": 4,
"INFEASIBLE": 5,
}
)
func (x Trial_State) Enum() *Trial_State {
p := new(Trial_State)
*p = x
return p
}
func (x Trial_State) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Trial_State) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[1].Descriptor()
}
func (Trial_State) Type() protoreflect.EnumType {
return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[1]
}
func (x Trial_State) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Trial_State.Descriptor instead.
func (Trial_State) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{1, 0}
}
// The available search algorithms for the Study.
type StudySpec_Algorithm int32
const (
// The default algorithm used by Vertex AI for [hyperparameter
// tuning](https://cloud.google.com/vertex-ai/docs/training/hyperparameter-tuning-overview)
// and [Vertex AI Vizier](https://cloud.google.com/vertex-ai/docs/vizier).
StudySpec_ALGORITHM_UNSPECIFIED StudySpec_Algorithm = 0
// Simple grid search within the feasible space. To use grid search,
// all parameters must be `INTEGER`, `CATEGORICAL`, or `DISCRETE`.
StudySpec_GRID_SEARCH StudySpec_Algorithm = 2
// Simple random search within the feasible space.
StudySpec_RANDOM_SEARCH StudySpec_Algorithm = 3
)
// Enum value maps for StudySpec_Algorithm.
var (
StudySpec_Algorithm_name = map[int32]string{
0: "ALGORITHM_UNSPECIFIED",
2: "GRID_SEARCH",
3: "RANDOM_SEARCH",
}
StudySpec_Algorithm_value = map[string]int32{
"ALGORITHM_UNSPECIFIED": 0,
"GRID_SEARCH": 2,
"RANDOM_SEARCH": 3,
}
)
func (x StudySpec_Algorithm) Enum() *StudySpec_Algorithm {
p := new(StudySpec_Algorithm)
*p = x
return p
}
func (x StudySpec_Algorithm) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (StudySpec_Algorithm) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[2].Descriptor()
}
func (StudySpec_Algorithm) Type() protoreflect.EnumType {
return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[2]
}
func (x StudySpec_Algorithm) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use StudySpec_Algorithm.Descriptor instead.
func (StudySpec_Algorithm) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 0}
}
// Describes the noise level of the repeated observations.
//
// "Noisy" means that the repeated observations with the same Trial parameters
// may lead to different metric evaluations.
type StudySpec_ObservationNoise int32
const (
// The default noise level chosen by Vertex AI.
StudySpec_OBSERVATION_NOISE_UNSPECIFIED StudySpec_ObservationNoise = 0
// Vertex AI assumes that the objective function is (nearly)
// perfectly reproducible, and will never repeat the same Trial
// parameters.
StudySpec_LOW StudySpec_ObservationNoise = 1
// Vertex AI will estimate the amount of noise in metric
// evaluations, it may repeat the same Trial parameters more than once.
StudySpec_HIGH StudySpec_ObservationNoise = 2
)
// Enum value maps for StudySpec_ObservationNoise.
var (
StudySpec_ObservationNoise_name = map[int32]string{
0: "OBSERVATION_NOISE_UNSPECIFIED",
1: "LOW",
2: "HIGH",
}
StudySpec_ObservationNoise_value = map[string]int32{
"OBSERVATION_NOISE_UNSPECIFIED": 0,
"LOW": 1,
"HIGH": 2,
}
)
func (x StudySpec_ObservationNoise) Enum() *StudySpec_ObservationNoise {
p := new(StudySpec_ObservationNoise)
*p = x
return p
}
func (x StudySpec_ObservationNoise) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (StudySpec_ObservationNoise) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[3].Descriptor()
}
func (StudySpec_ObservationNoise) Type() protoreflect.EnumType {
return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[3]
}
func (x StudySpec_ObservationNoise) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use StudySpec_ObservationNoise.Descriptor instead.
func (StudySpec_ObservationNoise) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1}
}
// This indicates which measurement to use if/when the service automatically
// selects the final measurement from previously reported intermediate
// measurements. Choose this based on two considerations:
//
// A) Do you expect your measurements to monotonically improve?
// If so, choose LAST_MEASUREMENT. On the other hand, if you're in a
// situation where your system can "over-train" and you expect the
// performance to get better for a while but then start declining,
// choose BEST_MEASUREMENT.
// B) Are your measurements significantly noisy and/or irreproducible?
// If so, BEST_MEASUREMENT will tend to be over-optimistic, and it
// may be better to choose LAST_MEASUREMENT.
// If both or neither of (A) and (B) apply, it doesn't matter which
// selection type is chosen.
type StudySpec_MeasurementSelectionType int32
const (
// Will be treated as LAST_MEASUREMENT.
StudySpec_MEASUREMENT_SELECTION_TYPE_UNSPECIFIED StudySpec_MeasurementSelectionType = 0
// Use the last measurement reported.
StudySpec_LAST_MEASUREMENT StudySpec_MeasurementSelectionType = 1
// Use the best measurement reported.
StudySpec_BEST_MEASUREMENT StudySpec_MeasurementSelectionType = 2
)
// Enum value maps for StudySpec_MeasurementSelectionType.
var (
StudySpec_MeasurementSelectionType_name = map[int32]string{
0: "MEASUREMENT_SELECTION_TYPE_UNSPECIFIED",
1: "LAST_MEASUREMENT",
2: "BEST_MEASUREMENT",
}
StudySpec_MeasurementSelectionType_value = map[string]int32{
"MEASUREMENT_SELECTION_TYPE_UNSPECIFIED": 0,
"LAST_MEASUREMENT": 1,
"BEST_MEASUREMENT": 2,
}
)
func (x StudySpec_MeasurementSelectionType) Enum() *StudySpec_MeasurementSelectionType {
p := new(StudySpec_MeasurementSelectionType)
*p = x
return p
}
func (x StudySpec_MeasurementSelectionType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (StudySpec_MeasurementSelectionType) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[4].Descriptor()
}
func (StudySpec_MeasurementSelectionType) Type() protoreflect.EnumType {
return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[4]
}
func (x StudySpec_MeasurementSelectionType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use StudySpec_MeasurementSelectionType.Descriptor instead.
func (StudySpec_MeasurementSelectionType) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 2}
}
// The available types of optimization goals.
type StudySpec_MetricSpec_GoalType int32
const (
// Goal Type will default to maximize.
StudySpec_MetricSpec_GOAL_TYPE_UNSPECIFIED StudySpec_MetricSpec_GoalType = 0
// Maximize the goal metric.
StudySpec_MetricSpec_MAXIMIZE StudySpec_MetricSpec_GoalType = 1
// Minimize the goal metric.
StudySpec_MetricSpec_MINIMIZE StudySpec_MetricSpec_GoalType = 2
)
// Enum value maps for StudySpec_MetricSpec_GoalType.
var (
StudySpec_MetricSpec_GoalType_name = map[int32]string{
0: "GOAL_TYPE_UNSPECIFIED",
1: "MAXIMIZE",
2: "MINIMIZE",
}
StudySpec_MetricSpec_GoalType_value = map[string]int32{
"GOAL_TYPE_UNSPECIFIED": 0,
"MAXIMIZE": 1,
"MINIMIZE": 2,
}
)
func (x StudySpec_MetricSpec_GoalType) Enum() *StudySpec_MetricSpec_GoalType {
p := new(StudySpec_MetricSpec_GoalType)
*p = x
return p
}
func (x StudySpec_MetricSpec_GoalType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (StudySpec_MetricSpec_GoalType) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[5].Descriptor()
}
func (StudySpec_MetricSpec_GoalType) Type() protoreflect.EnumType {
return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[5]
}
func (x StudySpec_MetricSpec_GoalType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use StudySpec_MetricSpec_GoalType.Descriptor instead.
func (StudySpec_MetricSpec_GoalType) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 0, 0}
}
// The type of scaling that should be applied to this parameter.
type StudySpec_ParameterSpec_ScaleType int32
const (
// By default, no scaling is applied.
StudySpec_ParameterSpec_SCALE_TYPE_UNSPECIFIED StudySpec_ParameterSpec_ScaleType = 0
// Scales the feasible space to (0, 1) linearly.
StudySpec_ParameterSpec_UNIT_LINEAR_SCALE StudySpec_ParameterSpec_ScaleType = 1
// Scales the feasible space logarithmically to (0, 1). The entire
// feasible space must be strictly positive.
StudySpec_ParameterSpec_UNIT_LOG_SCALE StudySpec_ParameterSpec_ScaleType = 2
// Scales the feasible space "reverse" logarithmically to (0, 1). The
// result is that values close to the top of the feasible space are spread
// out more than points near the bottom. The entire feasible space must be
// strictly positive.
StudySpec_ParameterSpec_UNIT_REVERSE_LOG_SCALE StudySpec_ParameterSpec_ScaleType = 3
)
// Enum value maps for StudySpec_ParameterSpec_ScaleType.
var (
StudySpec_ParameterSpec_ScaleType_name = map[int32]string{
0: "SCALE_TYPE_UNSPECIFIED",
1: "UNIT_LINEAR_SCALE",
2: "UNIT_LOG_SCALE",
3: "UNIT_REVERSE_LOG_SCALE",
}
StudySpec_ParameterSpec_ScaleType_value = map[string]int32{
"SCALE_TYPE_UNSPECIFIED": 0,
"UNIT_LINEAR_SCALE": 1,
"UNIT_LOG_SCALE": 2,
"UNIT_REVERSE_LOG_SCALE": 3,
}
)
func (x StudySpec_ParameterSpec_ScaleType) Enum() *StudySpec_ParameterSpec_ScaleType {
p := new(StudySpec_ParameterSpec_ScaleType)
*p = x
return p
}
func (x StudySpec_ParameterSpec_ScaleType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (StudySpec_ParameterSpec_ScaleType) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[6].Descriptor()
}
func (StudySpec_ParameterSpec_ScaleType) Type() protoreflect.EnumType {
return &file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes[6]
}
func (x StudySpec_ParameterSpec_ScaleType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use StudySpec_ParameterSpec_ScaleType.Descriptor instead.
func (StudySpec_ParameterSpec_ScaleType) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 0}
}
// A message representing a Study.
type Study struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. The name of a study. The study's globally unique identifier.
// Format: `projects/{project}/locations/{location}/studies/{study}`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Required. Describes the Study, default value is empty string.
DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
// Required. Configuration of the Study.
StudySpec *StudySpec `protobuf:"bytes,3,opt,name=study_spec,json=studySpec,proto3" json:"study_spec,omitempty"`
// Output only. The detailed state of a Study.
State Study_State `protobuf:"varint,4,opt,name=state,proto3,enum=google.cloud.aiplatform.v1beta1.Study_State" json:"state,omitempty"`
// Output only. Time at which the study was created.
CreateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
// Output only. A human readable reason why the Study is inactive.
// This should be empty if a study is ACTIVE or COMPLETED.
InactiveReason string `protobuf:"bytes,6,opt,name=inactive_reason,json=inactiveReason,proto3" json:"inactive_reason,omitempty"`
}
func (x *Study) Reset() {
*x = Study{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Study) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Study) ProtoMessage() {}
func (x *Study) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Study.ProtoReflect.Descriptor instead.
func (*Study) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{0}
}
func (x *Study) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Study) GetDisplayName() string {
if x != nil {
return x.DisplayName
}
return ""
}
func (x *Study) GetStudySpec() *StudySpec {
if x != nil {
return x.StudySpec
}
return nil
}
func (x *Study) GetState() Study_State {
if x != nil {
return x.State
}
return Study_STATE_UNSPECIFIED
}
func (x *Study) GetCreateTime() *timestamppb.Timestamp {
if x != nil {
return x.CreateTime
}
return nil
}
func (x *Study) GetInactiveReason() string {
if x != nil {
return x.InactiveReason
}
return ""
}
// A message representing a Trial. A Trial contains a unique set of Parameters
// that has been or will be evaluated, along with the objective metrics got by
// running the Trial.
type Trial struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. Resource name of the Trial assigned by the service.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Output only. The identifier of the Trial assigned by the service.
Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
// Output only. The detailed state of the Trial.
State Trial_State `protobuf:"varint,3,opt,name=state,proto3,enum=google.cloud.aiplatform.v1beta1.Trial_State" json:"state,omitempty"`
// Output only. The parameters of the Trial.
Parameters []*Trial_Parameter `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty"`
// Output only. The final measurement containing the objective value.
FinalMeasurement *Measurement `protobuf:"bytes,5,opt,name=final_measurement,json=finalMeasurement,proto3" json:"final_measurement,omitempty"`
// Output only. A list of measurements that are strictly lexicographically
// ordered by their induced tuples (steps, elapsed_duration).
// These are used for early stopping computations.
Measurements []*Measurement `protobuf:"bytes,6,rep,name=measurements,proto3" json:"measurements,omitempty"`
// Output only. Time when the Trial was started.
StartTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
// Output only. Time when the Trial's status changed to `SUCCEEDED` or
// `INFEASIBLE`.
EndTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
// Output only. The identifier of the client that originally requested this
// Trial. Each client is identified by a unique client_id. When a client asks
// for a suggestion, Vertex AI Vizier will assign it a Trial. The client
// should evaluate the Trial, complete it, and report back to Vertex AI
// Vizier. If suggestion is asked again by same client_id before the Trial is
// completed, the same Trial will be returned. Multiple clients with
// different client_ids can ask for suggestions simultaneously, each of them
// will get their own Trial.
ClientId string `protobuf:"bytes,9,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
// Output only. A human readable string describing why the Trial is
// infeasible. This is set only if Trial state is `INFEASIBLE`.
InfeasibleReason string `protobuf:"bytes,10,opt,name=infeasible_reason,json=infeasibleReason,proto3" json:"infeasible_reason,omitempty"`
// Output only. The CustomJob name linked to the Trial.
// It's set for a HyperparameterTuningJob's Trial.
CustomJob string `protobuf:"bytes,11,opt,name=custom_job,json=customJob,proto3" json:"custom_job,omitempty"`
// Output only. URIs for accessing [interactive
// shells](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell)
// (one URI for each training node). Only available if this trial is part of
// a
// [HyperparameterTuningJob][google.cloud.aiplatform.v1beta1.HyperparameterTuningJob]
// and the job's
// [trial_job_spec.enable_web_access][google.cloud.aiplatform.v1beta1.CustomJobSpec.enable_web_access]
// field is `true`.
//
// The keys are names of each node used for the trial; for example,
// `workerpool0-0` for the primary node, `workerpool1-0` for the first node in
// the second worker pool, and `workerpool1-1` for the second node in the
// second worker pool.
//
// The values are the URIs for each node's interactive shell.
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"`
}
func (x *Trial) Reset() {
*x = Trial{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Trial) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Trial) ProtoMessage() {}
func (x *Trial) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Trial.ProtoReflect.Descriptor instead.
func (*Trial) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{1}
}
func (x *Trial) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Trial) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Trial) GetState() Trial_State {
if x != nil {
return x.State
}
return Trial_STATE_UNSPECIFIED
}
func (x *Trial) GetParameters() []*Trial_Parameter {
if x != nil {
return x.Parameters
}
return nil
}
func (x *Trial) GetFinalMeasurement() *Measurement {
if x != nil {
return x.FinalMeasurement
}
return nil
}
func (x *Trial) GetMeasurements() []*Measurement {
if x != nil {
return x.Measurements
}
return nil
}
func (x *Trial) GetStartTime() *timestamppb.Timestamp {
if x != nil {
return x.StartTime
}
return nil
}
func (x *Trial) GetEndTime() *timestamppb.Timestamp {
if x != nil {
return x.EndTime
}
return nil
}
func (x *Trial) GetClientId() string {
if x != nil {
return x.ClientId
}
return ""
}
func (x *Trial) GetInfeasibleReason() string {
if x != nil {
return x.InfeasibleReason
}
return ""
}
func (x *Trial) GetCustomJob() string {
if x != nil {
return x.CustomJob
}
return ""
}
func (x *Trial) GetWebAccessUris() map[string]string {
if x != nil {
return x.WebAccessUris
}
return nil
}
// Next ID: 3
type TrialContext struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A human-readable field which can store a description of this context.
// This will become part of the resulting Trial's description field.
Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
// If/when a Trial is generated or selected from this Context,
// its Parameters will match any parameters specified here.
// (I.e. if this context specifies parameter name:'a' int_value:3,
// then a resulting Trial will have int_value:3 for its parameter named
// 'a'.) Note that we first attempt to match existing REQUESTED Trials with
// contexts, and if there are no matches, we generate suggestions in the
// subspace defined by the parameters specified here.
// NOTE: a Context without any Parameters matches the entire feasible search
//
// space.
Parameters []*Trial_Parameter `protobuf:"bytes,2,rep,name=parameters,proto3" json:"parameters,omitempty"`
}
func (x *TrialContext) Reset() {
*x = TrialContext{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrialContext) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrialContext) ProtoMessage() {}
func (x *TrialContext) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TrialContext.ProtoReflect.Descriptor instead.
func (*TrialContext) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{2}
}
func (x *TrialContext) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *TrialContext) GetParameters() []*Trial_Parameter {
if x != nil {
return x.Parameters
}
return nil
}
// Time-based Constraint for Study
type StudyTimeConstraint struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Constraint:
//
// *StudyTimeConstraint_MaxDuration
// *StudyTimeConstraint_EndTime
Constraint isStudyTimeConstraint_Constraint `protobuf_oneof:"constraint"`
}
func (x *StudyTimeConstraint) Reset() {
*x = StudyTimeConstraint{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudyTimeConstraint) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudyTimeConstraint) ProtoMessage() {}
func (x *StudyTimeConstraint) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudyTimeConstraint.ProtoReflect.Descriptor instead.
func (*StudyTimeConstraint) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3}
}
func (m *StudyTimeConstraint) GetConstraint() isStudyTimeConstraint_Constraint {
if m != nil {
return m.Constraint
}
return nil
}
func (x *StudyTimeConstraint) GetMaxDuration() *durationpb.Duration {
if x, ok := x.GetConstraint().(*StudyTimeConstraint_MaxDuration); ok {
return x.MaxDuration
}
return nil
}
func (x *StudyTimeConstraint) GetEndTime() *timestamppb.Timestamp {
if x, ok := x.GetConstraint().(*StudyTimeConstraint_EndTime); ok {
return x.EndTime
}
return nil
}
type isStudyTimeConstraint_Constraint interface {
isStudyTimeConstraint_Constraint()
}
type StudyTimeConstraint_MaxDuration struct {
// Counts the wallclock time passed since the creation of this Study.
MaxDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=max_duration,json=maxDuration,proto3,oneof"`
}
type StudyTimeConstraint_EndTime struct {
// Compares the wallclock time to this time. Must use UTC timezone.
EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3,oneof"`
}
func (*StudyTimeConstraint_MaxDuration) isStudyTimeConstraint_Constraint() {}
func (*StudyTimeConstraint_EndTime) isStudyTimeConstraint_Constraint() {}
// Represents specification of a Study.
type StudySpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to AutomatedStoppingSpec:
//
// *StudySpec_DecayCurveStoppingSpec
// *StudySpec_MedianAutomatedStoppingSpec_
// *StudySpec_ConvexStopConfig_
// *StudySpec_ConvexAutomatedStoppingSpec_
AutomatedStoppingSpec isStudySpec_AutomatedStoppingSpec `protobuf_oneof:"automated_stopping_spec"`
// Required. Metric specs for the Study.
Metrics []*StudySpec_MetricSpec `protobuf:"bytes,1,rep,name=metrics,proto3" json:"metrics,omitempty"`
// Required. The set of parameters to tune.
Parameters []*StudySpec_ParameterSpec `protobuf:"bytes,2,rep,name=parameters,proto3" json:"parameters,omitempty"`
// The search algorithm specified for the Study.
Algorithm StudySpec_Algorithm `protobuf:"varint,3,opt,name=algorithm,proto3,enum=google.cloud.aiplatform.v1beta1.StudySpec_Algorithm" json:"algorithm,omitempty"`
// The observation noise level of the study.
// Currently only supported by the Vertex AI Vizier service. Not supported by
// HyperparameterTuningJob or TrainingPipeline.
ObservationNoise StudySpec_ObservationNoise `protobuf:"varint,6,opt,name=observation_noise,json=observationNoise,proto3,enum=google.cloud.aiplatform.v1beta1.StudySpec_ObservationNoise" json:"observation_noise,omitempty"`
// Describe which measurement selection type will be used
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"`
// The configuration info/options for transfer learning. Currently supported
// for Vertex AI Vizier service, not HyperParameterTuningJob
TransferLearningConfig *StudySpec_TransferLearningConfig `protobuf:"bytes,10,opt,name=transfer_learning_config,json=transferLearningConfig,proto3" json:"transfer_learning_config,omitempty"`
// Conditions for automated stopping of a Study. Enable automated stopping by
// configuring at least one condition.
StudyStoppingConfig *StudySpec_StudyStoppingConfig `protobuf:"bytes,11,opt,name=study_stopping_config,json=studyStoppingConfig,proto3,oneof" json:"study_stopping_config,omitempty"`
}
func (x *StudySpec) Reset() {
*x = StudySpec{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec) ProtoMessage() {}
func (x *StudySpec) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec.ProtoReflect.Descriptor instead.
func (*StudySpec) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4}
}
func (m *StudySpec) GetAutomatedStoppingSpec() isStudySpec_AutomatedStoppingSpec {
if m != nil {
return m.AutomatedStoppingSpec
}
return nil
}
func (x *StudySpec) GetDecayCurveStoppingSpec() *StudySpec_DecayCurveAutomatedStoppingSpec {
if x, ok := x.GetAutomatedStoppingSpec().(*StudySpec_DecayCurveStoppingSpec); ok {
return x.DecayCurveStoppingSpec
}
return nil
}
func (x *StudySpec) GetMedianAutomatedStoppingSpec() *StudySpec_MedianAutomatedStoppingSpec {
if x, ok := x.GetAutomatedStoppingSpec().(*StudySpec_MedianAutomatedStoppingSpec_); ok {
return x.MedianAutomatedStoppingSpec
}
return nil
}
// Deprecated: Marked as deprecated in google/cloud/aiplatform/v1beta1/study.proto.
func (x *StudySpec) GetConvexStopConfig() *StudySpec_ConvexStopConfig {
if x, ok := x.GetAutomatedStoppingSpec().(*StudySpec_ConvexStopConfig_); ok {
return x.ConvexStopConfig
}
return nil
}
func (x *StudySpec) GetConvexAutomatedStoppingSpec() *StudySpec_ConvexAutomatedStoppingSpec {
if x, ok := x.GetAutomatedStoppingSpec().(*StudySpec_ConvexAutomatedStoppingSpec_); ok {
return x.ConvexAutomatedStoppingSpec
}
return nil
}
func (x *StudySpec) GetMetrics() []*StudySpec_MetricSpec {
if x != nil {
return x.Metrics
}
return nil
}
func (x *StudySpec) GetParameters() []*StudySpec_ParameterSpec {
if x != nil {
return x.Parameters
}
return nil
}
func (x *StudySpec) GetAlgorithm() StudySpec_Algorithm {
if x != nil {
return x.Algorithm
}
return StudySpec_ALGORITHM_UNSPECIFIED
}
func (x *StudySpec) GetObservationNoise() StudySpec_ObservationNoise {
if x != nil {
return x.ObservationNoise
}
return StudySpec_OBSERVATION_NOISE_UNSPECIFIED
}
func (x *StudySpec) GetMeasurementSelectionType() StudySpec_MeasurementSelectionType {
if x != nil {
return x.MeasurementSelectionType
}
return StudySpec_MEASUREMENT_SELECTION_TYPE_UNSPECIFIED
}
func (x *StudySpec) GetTransferLearningConfig() *StudySpec_TransferLearningConfig {
if x != nil {
return x.TransferLearningConfig
}
return nil
}
func (x *StudySpec) GetStudyStoppingConfig() *StudySpec_StudyStoppingConfig {
if x != nil {
return x.StudyStoppingConfig
}
return nil
}
type isStudySpec_AutomatedStoppingSpec interface {
isStudySpec_AutomatedStoppingSpec()
}
type StudySpec_DecayCurveStoppingSpec struct {
// The automated early stopping spec using decay curve rule.
DecayCurveStoppingSpec *StudySpec_DecayCurveAutomatedStoppingSpec `protobuf:"bytes,4,opt,name=decay_curve_stopping_spec,json=decayCurveStoppingSpec,proto3,oneof"`
}
type StudySpec_MedianAutomatedStoppingSpec_ struct {
// The automated early stopping spec using median rule.
MedianAutomatedStoppingSpec *StudySpec_MedianAutomatedStoppingSpec `protobuf:"bytes,5,opt,name=median_automated_stopping_spec,json=medianAutomatedStoppingSpec,proto3,oneof"`
}
type StudySpec_ConvexStopConfig_ struct {
// Deprecated.
// The automated early stopping using convex stopping rule.
//
// Deprecated: Marked as deprecated in google/cloud/aiplatform/v1beta1/study.proto.
ConvexStopConfig *StudySpec_ConvexStopConfig `protobuf:"bytes,8,opt,name=convex_stop_config,json=convexStopConfig,proto3,oneof"`
}
type StudySpec_ConvexAutomatedStoppingSpec_ struct {
// The automated early stopping spec using convex stopping rule.
ConvexAutomatedStoppingSpec *StudySpec_ConvexAutomatedStoppingSpec `protobuf:"bytes,9,opt,name=convex_automated_stopping_spec,json=convexAutomatedStoppingSpec,proto3,oneof"`
}
func (*StudySpec_DecayCurveStoppingSpec) isStudySpec_AutomatedStoppingSpec() {}
func (*StudySpec_MedianAutomatedStoppingSpec_) isStudySpec_AutomatedStoppingSpec() {}
func (*StudySpec_ConvexStopConfig_) isStudySpec_AutomatedStoppingSpec() {}
func (*StudySpec_ConvexAutomatedStoppingSpec_) isStudySpec_AutomatedStoppingSpec() {}
// A message representing a Measurement of a Trial. A Measurement contains
// the Metrics got by executing a Trial using suggested hyperparameter
// values.
type Measurement struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. Time that the Trial has been running at the point of this
// Measurement.
ElapsedDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=elapsed_duration,json=elapsedDuration,proto3" json:"elapsed_duration,omitempty"`
// Output only. The number of steps the machine learning model has been
// trained for. Must be non-negative.
StepCount int64 `protobuf:"varint,2,opt,name=step_count,json=stepCount,proto3" json:"step_count,omitempty"`
// Output only. A list of metrics got by evaluating the objective functions
// using suggested Parameter values.
Metrics []*Measurement_Metric `protobuf:"bytes,3,rep,name=metrics,proto3" json:"metrics,omitempty"`
}
func (x *Measurement) Reset() {
*x = Measurement{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Measurement) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Measurement) ProtoMessage() {}
func (x *Measurement) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Measurement.ProtoReflect.Descriptor instead.
func (*Measurement) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{5}
}
func (x *Measurement) GetElapsedDuration() *durationpb.Duration {
if x != nil {
return x.ElapsedDuration
}
return nil
}
func (x *Measurement) GetStepCount() int64 {
if x != nil {
return x.StepCount
}
return 0
}
func (x *Measurement) GetMetrics() []*Measurement_Metric {
if x != nil {
return x.Metrics
}
return nil
}
// A message representing a parameter to be tuned.
type Trial_Parameter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. The ID of the parameter. The parameter should be defined in
// [StudySpec's
// Parameters][google.cloud.aiplatform.v1beta1.StudySpec.parameters].
ParameterId string `protobuf:"bytes,1,opt,name=parameter_id,json=parameterId,proto3" json:"parameter_id,omitempty"`
// Output only. The value of the parameter.
// `number_value` will be set if a parameter defined in StudySpec is
// in type 'INTEGER', 'DOUBLE' or 'DISCRETE'.
// `string_value` will be set if a parameter defined in StudySpec is
// in type 'CATEGORICAL'.
Value *structpb.Value `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *Trial_Parameter) Reset() {
*x = Trial_Parameter{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Trial_Parameter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Trial_Parameter) ProtoMessage() {}
func (x *Trial_Parameter) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Trial_Parameter.ProtoReflect.Descriptor instead.
func (*Trial_Parameter) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{1, 0}
}
func (x *Trial_Parameter) GetParameterId() string {
if x != nil {
return x.ParameterId
}
return ""
}
func (x *Trial_Parameter) GetValue() *structpb.Value {
if x != nil {
return x.Value
}
return nil
}
// Represents a metric to optimize.
type StudySpec_MetricSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The ID of the metric. Must not contain whitespaces and must be
// unique amongst all MetricSpecs.
MetricId string `protobuf:"bytes,1,opt,name=metric_id,json=metricId,proto3" json:"metric_id,omitempty"`
// Required. The optimization goal of the metric.
Goal StudySpec_MetricSpec_GoalType `protobuf:"varint,2,opt,name=goal,proto3,enum=google.cloud.aiplatform.v1beta1.StudySpec_MetricSpec_GoalType" json:"goal,omitempty"`
// Used for safe search. In the case, the metric will be a safety
// metric. You must provide a separate metric for objective metric.
SafetyConfig *StudySpec_MetricSpec_SafetyMetricConfig `protobuf:"bytes,3,opt,name=safety_config,json=safetyConfig,proto3,oneof" json:"safety_config,omitempty"`
}
func (x *StudySpec_MetricSpec) Reset() {
*x = StudySpec_MetricSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_MetricSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_MetricSpec) ProtoMessage() {}
func (x *StudySpec_MetricSpec) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_MetricSpec.ProtoReflect.Descriptor instead.
func (*StudySpec_MetricSpec) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 0}
}
func (x *StudySpec_MetricSpec) GetMetricId() string {
if x != nil {
return x.MetricId
}
return ""
}
func (x *StudySpec_MetricSpec) GetGoal() StudySpec_MetricSpec_GoalType {
if x != nil {
return x.Goal
}
return StudySpec_MetricSpec_GOAL_TYPE_UNSPECIFIED
}
func (x *StudySpec_MetricSpec) GetSafetyConfig() *StudySpec_MetricSpec_SafetyMetricConfig {
if x != nil {
return x.SafetyConfig
}
return nil
}
// Represents a single parameter to optimize.
type StudySpec_ParameterSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to ParameterValueSpec:
//
// *StudySpec_ParameterSpec_DoubleValueSpec_
// *StudySpec_ParameterSpec_IntegerValueSpec_
// *StudySpec_ParameterSpec_CategoricalValueSpec_
// *StudySpec_ParameterSpec_DiscreteValueSpec_
ParameterValueSpec isStudySpec_ParameterSpec_ParameterValueSpec `protobuf_oneof:"parameter_value_spec"`
// Required. The ID of the parameter. Must not contain whitespaces and must
// be unique amongst all ParameterSpecs.
ParameterId string `protobuf:"bytes,1,opt,name=parameter_id,json=parameterId,proto3" json:"parameter_id,omitempty"`
// How the parameter should be scaled.
// Leave unset for `CATEGORICAL` parameters.
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"`
// A conditional parameter node is active if the parameter's value matches
// the conditional node's parent_value_condition.
//
// If two items in conditional_parameter_specs have the same name, they
// must have disjoint parent_value_condition.
ConditionalParameterSpecs []*StudySpec_ParameterSpec_ConditionalParameterSpec `protobuf:"bytes,10,rep,name=conditional_parameter_specs,json=conditionalParameterSpecs,proto3" json:"conditional_parameter_specs,omitempty"`
}
func (x *StudySpec_ParameterSpec) Reset() {
*x = StudySpec_ParameterSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_ParameterSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_ParameterSpec) ProtoMessage() {}
func (x *StudySpec_ParameterSpec) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_ParameterSpec.ProtoReflect.Descriptor instead.
func (*StudySpec_ParameterSpec) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1}
}
func (m *StudySpec_ParameterSpec) GetParameterValueSpec() isStudySpec_ParameterSpec_ParameterValueSpec {
if m != nil {
return m.ParameterValueSpec
}
return nil
}
func (x *StudySpec_ParameterSpec) GetDoubleValueSpec() *StudySpec_ParameterSpec_DoubleValueSpec {
if x, ok := x.GetParameterValueSpec().(*StudySpec_ParameterSpec_DoubleValueSpec_); ok {
return x.DoubleValueSpec
}
return nil
}
func (x *StudySpec_ParameterSpec) GetIntegerValueSpec() *StudySpec_ParameterSpec_IntegerValueSpec {
if x, ok := x.GetParameterValueSpec().(*StudySpec_ParameterSpec_IntegerValueSpec_); ok {
return x.IntegerValueSpec
}
return nil
}
func (x *StudySpec_ParameterSpec) GetCategoricalValueSpec() *StudySpec_ParameterSpec_CategoricalValueSpec {
if x, ok := x.GetParameterValueSpec().(*StudySpec_ParameterSpec_CategoricalValueSpec_); ok {
return x.CategoricalValueSpec
}
return nil
}
func (x *StudySpec_ParameterSpec) GetDiscreteValueSpec() *StudySpec_ParameterSpec_DiscreteValueSpec {
if x, ok := x.GetParameterValueSpec().(*StudySpec_ParameterSpec_DiscreteValueSpec_); ok {
return x.DiscreteValueSpec
}
return nil
}
func (x *StudySpec_ParameterSpec) GetParameterId() string {
if x != nil {
return x.ParameterId
}
return ""
}
func (x *StudySpec_ParameterSpec) GetScaleType() StudySpec_ParameterSpec_ScaleType {
if x != nil {
return x.ScaleType
}
return StudySpec_ParameterSpec_SCALE_TYPE_UNSPECIFIED
}
func (x *StudySpec_ParameterSpec) GetConditionalParameterSpecs() []*StudySpec_ParameterSpec_ConditionalParameterSpec {
if x != nil {
return x.ConditionalParameterSpecs
}
return nil
}
type isStudySpec_ParameterSpec_ParameterValueSpec interface {
isStudySpec_ParameterSpec_ParameterValueSpec()
}
type StudySpec_ParameterSpec_DoubleValueSpec_ struct {
// The value spec for a 'DOUBLE' parameter.
DoubleValueSpec *StudySpec_ParameterSpec_DoubleValueSpec `protobuf:"bytes,2,opt,name=double_value_spec,json=doubleValueSpec,proto3,oneof"`
}
type StudySpec_ParameterSpec_IntegerValueSpec_ struct {
// The value spec for an 'INTEGER' parameter.
IntegerValueSpec *StudySpec_ParameterSpec_IntegerValueSpec `protobuf:"bytes,3,opt,name=integer_value_spec,json=integerValueSpec,proto3,oneof"`
}
type StudySpec_ParameterSpec_CategoricalValueSpec_ struct {
// The value spec for a 'CATEGORICAL' parameter.
CategoricalValueSpec *StudySpec_ParameterSpec_CategoricalValueSpec `protobuf:"bytes,4,opt,name=categorical_value_spec,json=categoricalValueSpec,proto3,oneof"`
}
type StudySpec_ParameterSpec_DiscreteValueSpec_ struct {
// The value spec for a 'DISCRETE' parameter.
DiscreteValueSpec *StudySpec_ParameterSpec_DiscreteValueSpec `protobuf:"bytes,5,opt,name=discrete_value_spec,json=discreteValueSpec,proto3,oneof"`
}
func (*StudySpec_ParameterSpec_DoubleValueSpec_) isStudySpec_ParameterSpec_ParameterValueSpec() {}
func (*StudySpec_ParameterSpec_IntegerValueSpec_) isStudySpec_ParameterSpec_ParameterValueSpec() {}
func (*StudySpec_ParameterSpec_CategoricalValueSpec_) isStudySpec_ParameterSpec_ParameterValueSpec() {
}
func (*StudySpec_ParameterSpec_DiscreteValueSpec_) isStudySpec_ParameterSpec_ParameterValueSpec() {}
// The decay curve automated stopping rule builds a Gaussian Process
// Regressor to predict the final objective value of a Trial based on the
// already completed Trials and the intermediate measurements of the current
// Trial. Early stopping is requested for the current Trial if there is very
// low probability to exceed the optimal value found so far.
type StudySpec_DecayCurveAutomatedStoppingSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// True if
// [Measurement.elapsed_duration][google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration]
// is used as the x-axis of each Trials Decay Curve. Otherwise,
// [Measurement.step_count][google.cloud.aiplatform.v1beta1.Measurement.step_count]
// will be used as the x-axis.
UseElapsedDuration bool `protobuf:"varint,1,opt,name=use_elapsed_duration,json=useElapsedDuration,proto3" json:"use_elapsed_duration,omitempty"`
}
func (x *StudySpec_DecayCurveAutomatedStoppingSpec) Reset() {
*x = StudySpec_DecayCurveAutomatedStoppingSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_DecayCurveAutomatedStoppingSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_DecayCurveAutomatedStoppingSpec) ProtoMessage() {}
func (x *StudySpec_DecayCurveAutomatedStoppingSpec) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_DecayCurveAutomatedStoppingSpec.ProtoReflect.Descriptor instead.
func (*StudySpec_DecayCurveAutomatedStoppingSpec) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 2}
}
func (x *StudySpec_DecayCurveAutomatedStoppingSpec) GetUseElapsedDuration() bool {
if x != nil {
return x.UseElapsedDuration
}
return false
}
// The median automated stopping rule stops a pending Trial if the Trial's
// best objective_value is strictly below the median 'performance' of all
// completed Trials reported up to the Trial's last measurement.
// Currently, 'performance' refers to the running average of the objective
// values reported by the Trial in each measurement.
type StudySpec_MedianAutomatedStoppingSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// True if median automated stopping rule applies on
// [Measurement.elapsed_duration][google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration].
// It means that elapsed_duration field of latest measurement of current
// Trial is used to compute median objective value for each completed
// Trials.
UseElapsedDuration bool `protobuf:"varint,1,opt,name=use_elapsed_duration,json=useElapsedDuration,proto3" json:"use_elapsed_duration,omitempty"`
}
func (x *StudySpec_MedianAutomatedStoppingSpec) Reset() {
*x = StudySpec_MedianAutomatedStoppingSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_MedianAutomatedStoppingSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_MedianAutomatedStoppingSpec) ProtoMessage() {}
func (x *StudySpec_MedianAutomatedStoppingSpec) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_MedianAutomatedStoppingSpec.ProtoReflect.Descriptor instead.
func (*StudySpec_MedianAutomatedStoppingSpec) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 3}
}
func (x *StudySpec_MedianAutomatedStoppingSpec) GetUseElapsedDuration() bool {
if x != nil {
return x.UseElapsedDuration
}
return false
}
// Configuration for ConvexAutomatedStoppingSpec.
// When there are enough completed trials (configured by
// min_measurement_count), for pending trials with enough measurements and
// steps, the policy first computes an overestimate of the objective value at
// max_num_steps according to the slope of the incomplete objective value
// curve. No prediction can be made if the curve is completely flat. If the
// overestimation is worse than the best objective value of the completed
// trials, this pending trial will be early-stopped, but a last measurement
// will be added to the pending trial with max_num_steps and predicted
// objective value from the autoregression model.
type StudySpec_ConvexAutomatedStoppingSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Steps used in predicting the final objective for early stopped trials. In
// general, it's set to be the same as the defined steps in training /
// tuning. If not defined, it will learn it from the completed trials. When
// use_steps is false, this field is set to the maximum elapsed seconds.
MaxStepCount int64 `protobuf:"varint,1,opt,name=max_step_count,json=maxStepCount,proto3" json:"max_step_count,omitempty"`
// Minimum number of steps for a trial to complete. Trials which do not have
// a measurement with step_count > min_step_count won't be considered for
// early stopping. It's ok to set it to 0, and a trial can be early stopped
// at any stage. By default, min_step_count is set to be one-tenth of the
// max_step_count.
// When use_elapsed_duration is true, this field is set to the minimum
// elapsed seconds.
MinStepCount int64 `protobuf:"varint,2,opt,name=min_step_count,json=minStepCount,proto3" json:"min_step_count,omitempty"`
// The minimal number of measurements in a Trial. Early-stopping checks
// will not trigger if less than min_measurement_count+1 completed trials or
// pending trials with less than min_measurement_count measurements. If not
// defined, the default value is 5.
MinMeasurementCount int64 `protobuf:"varint,3,opt,name=min_measurement_count,json=minMeasurementCount,proto3" json:"min_measurement_count,omitempty"`
// The hyper-parameter name used in the tuning job that stands for learning
// rate. Leave it blank if learning rate is not in a parameter in tuning.
// The learning_rate is used to estimate the objective value of the ongoing
// trial.
LearningRateParameterName string `protobuf:"bytes,4,opt,name=learning_rate_parameter_name,json=learningRateParameterName,proto3" json:"learning_rate_parameter_name,omitempty"`
// This bool determines whether or not the rule is applied based on
// elapsed_secs or steps. If use_elapsed_duration==false, the early stopping
// decision is made according to the predicted objective values according to
// the target steps. If use_elapsed_duration==true, elapsed_secs is used
// instead of steps. Also, in this case, the parameters max_num_steps and
// min_num_steps are overloaded to contain max_elapsed_seconds and
// min_elapsed_seconds.
UseElapsedDuration bool `protobuf:"varint,5,opt,name=use_elapsed_duration,json=useElapsedDuration,proto3" json:"use_elapsed_duration,omitempty"`
// ConvexAutomatedStoppingSpec by default only updates the trials that needs
// to be early stopped using a newly trained auto-regressive model. When
// this flag is set to True, all stopped trials from the beginning are
// potentially updated in terms of their `final_measurement`. Also, note
// that the training logic of autoregressive models is different in this
// case. Enabling this option has shown better results and this may be the
// default option in the future.
UpdateAllStoppedTrials *bool `protobuf:"varint,6,opt,name=update_all_stopped_trials,json=updateAllStoppedTrials,proto3,oneof" json:"update_all_stopped_trials,omitempty"`
}
func (x *StudySpec_ConvexAutomatedStoppingSpec) Reset() {
*x = StudySpec_ConvexAutomatedStoppingSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_ConvexAutomatedStoppingSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_ConvexAutomatedStoppingSpec) ProtoMessage() {}
func (x *StudySpec_ConvexAutomatedStoppingSpec) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_ConvexAutomatedStoppingSpec.ProtoReflect.Descriptor instead.
func (*StudySpec_ConvexAutomatedStoppingSpec) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 4}
}
func (x *StudySpec_ConvexAutomatedStoppingSpec) GetMaxStepCount() int64 {
if x != nil {
return x.MaxStepCount
}
return 0
}
func (x *StudySpec_ConvexAutomatedStoppingSpec) GetMinStepCount() int64 {
if x != nil {
return x.MinStepCount
}
return 0
}
func (x *StudySpec_ConvexAutomatedStoppingSpec) GetMinMeasurementCount() int64 {
if x != nil {
return x.MinMeasurementCount
}
return 0
}
func (x *StudySpec_ConvexAutomatedStoppingSpec) GetLearningRateParameterName() string {
if x != nil {
return x.LearningRateParameterName
}
return ""
}
func (x *StudySpec_ConvexAutomatedStoppingSpec) GetUseElapsedDuration() bool {
if x != nil {
return x.UseElapsedDuration
}
return false
}
func (x *StudySpec_ConvexAutomatedStoppingSpec) GetUpdateAllStoppedTrials() bool {
if x != nil && x.UpdateAllStoppedTrials != nil {
return *x.UpdateAllStoppedTrials
}
return false
}
// Configuration for ConvexStopPolicy.
//
// Deprecated: Marked as deprecated in google/cloud/aiplatform/v1beta1/study.proto.
type StudySpec_ConvexStopConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Steps used in predicting the final objective for early stopped trials. In
// general, it's set to be the same as the defined steps in training /
// tuning. When use_steps is false, this field is set to the maximum elapsed
// seconds.
MaxNumSteps int64 `protobuf:"varint,1,opt,name=max_num_steps,json=maxNumSteps,proto3" json:"max_num_steps,omitempty"`
// Minimum number of steps for a trial to complete. Trials which do not have
// a measurement with num_steps > min_num_steps won't be considered for
// early stopping. It's ok to set it to 0, and a trial can be early stopped
// at any stage. By default, min_num_steps is set to be one-tenth of the
// max_num_steps.
// When use_steps is false, this field is set to the minimum elapsed
// seconds.
MinNumSteps int64 `protobuf:"varint,2,opt,name=min_num_steps,json=minNumSteps,proto3" json:"min_num_steps,omitempty"`
// The number of Trial measurements used in autoregressive model for
// value prediction. A trial won't be considered early stopping if has fewer
// measurement points.
AutoregressiveOrder int64 `protobuf:"varint,3,opt,name=autoregressive_order,json=autoregressiveOrder,proto3" json:"autoregressive_order,omitempty"`
// The hyper-parameter name used in the tuning job that stands for learning
// rate. Leave it blank if learning rate is not in a parameter in tuning.
// The learning_rate is used to estimate the objective value of the ongoing
// trial.
LearningRateParameterName string `protobuf:"bytes,4,opt,name=learning_rate_parameter_name,json=learningRateParameterName,proto3" json:"learning_rate_parameter_name,omitempty"`
// This bool determines whether or not the rule is applied based on
// elapsed_secs or steps. If use_seconds==false, the early stopping decision
// is made according to the predicted objective values according to the
// target steps. If use_seconds==true, elapsed_secs is used instead of
// steps. Also, in this case, the parameters max_num_steps and min_num_steps
// are overloaded to contain max_elapsed_seconds and min_elapsed_seconds.
UseSeconds bool `protobuf:"varint,5,opt,name=use_seconds,json=useSeconds,proto3" json:"use_seconds,omitempty"`
}
func (x *StudySpec_ConvexStopConfig) Reset() {
*x = StudySpec_ConvexStopConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_ConvexStopConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_ConvexStopConfig) ProtoMessage() {}
func (x *StudySpec_ConvexStopConfig) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_ConvexStopConfig.ProtoReflect.Descriptor instead.
func (*StudySpec_ConvexStopConfig) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 5}
}
func (x *StudySpec_ConvexStopConfig) GetMaxNumSteps() int64 {
if x != nil {
return x.MaxNumSteps
}
return 0
}
func (x *StudySpec_ConvexStopConfig) GetMinNumSteps() int64 {
if x != nil {
return x.MinNumSteps
}
return 0
}
func (x *StudySpec_ConvexStopConfig) GetAutoregressiveOrder() int64 {
if x != nil {
return x.AutoregressiveOrder
}
return 0
}
func (x *StudySpec_ConvexStopConfig) GetLearningRateParameterName() string {
if x != nil {
return x.LearningRateParameterName
}
return ""
}
func (x *StudySpec_ConvexStopConfig) GetUseSeconds() bool {
if x != nil {
return x.UseSeconds
}
return false
}
// This contains flag for manually disabling transfer learning for a study.
// The names of prior studies being used for transfer learning (if any)
// are also listed here.
type StudySpec_TransferLearningConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Flag to to manually prevent vizier from using transfer learning on a
// new study. Otherwise, vizier will automatically determine whether or not
// to use transfer learning.
DisableTransferLearning bool `protobuf:"varint,1,opt,name=disable_transfer_learning,json=disableTransferLearning,proto3" json:"disable_transfer_learning,omitempty"`
// Output only. Names of previously completed studies
PriorStudyNames []string `protobuf:"bytes,2,rep,name=prior_study_names,json=priorStudyNames,proto3" json:"prior_study_names,omitempty"`
}
func (x *StudySpec_TransferLearningConfig) Reset() {
*x = StudySpec_TransferLearningConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_TransferLearningConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_TransferLearningConfig) ProtoMessage() {}
func (x *StudySpec_TransferLearningConfig) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_TransferLearningConfig.ProtoReflect.Descriptor instead.
func (*StudySpec_TransferLearningConfig) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 6}
}
func (x *StudySpec_TransferLearningConfig) GetDisableTransferLearning() bool {
if x != nil {
return x.DisableTransferLearning
}
return false
}
func (x *StudySpec_TransferLearningConfig) GetPriorStudyNames() []string {
if x != nil {
return x.PriorStudyNames
}
return nil
}
// The configuration (stopping conditions) for automated stopping of a Study.
// Conditions include trial budgets, time budgets, and convergence detection.
type StudySpec_StudyStoppingConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// If true, a Study enters STOPPING_ASAP whenever it would normally enters
// STOPPING state.
//
// The bottom line is: set to true if you want to interrupt on-going
// evaluations of Trials as soon as the study stopping condition is met.
// (Please see Study.State documentation for the source of truth).
ShouldStopAsap *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=should_stop_asap,json=shouldStopAsap,proto3" json:"should_stop_asap,omitempty"`
// Each "stopping rule" in this proto specifies an "if" condition. Before
// Vizier would generate a new suggestion, it first checks each specified
// stopping rule, from top to bottom in this list.
// Note that the first few rules (e.g. minimum_runtime_constraint,
// min_num_trials) will prevent other stopping rules from being evaluated
// until they are met. For example, setting `min_num_trials=5` and
// `always_stop_after= 1 hour` means that the Study will ONLY stop after it
// has 5 COMPLETED trials, even if more than an hour has passed since its
// creation. It follows the first applicable rule (whose "if" condition is
// satisfied) to make a stopping decision. If none of the specified rules
// are applicable, then Vizier decides that the study should not stop.
// If Vizier decides that the study should stop, the study enters
// STOPPING state (or STOPPING_ASAP if should_stop_asap = true).
// IMPORTANT: The automatic study state transition happens precisely as
// described above; that is, deleting trials or updating StudyConfig NEVER
// automatically moves the study state back to ACTIVE. If you want to
// _resume_ a Study that was stopped, 1) change the stopping conditions if
// necessary, 2) activate the study, and then 3) ask for suggestions.
// If the specified time or duration has not passed, do not stop the
// study.
MinimumRuntimeConstraint *StudyTimeConstraint `protobuf:"bytes,2,opt,name=minimum_runtime_constraint,json=minimumRuntimeConstraint,proto3" json:"minimum_runtime_constraint,omitempty"`
// If the specified time or duration has passed, stop the study.
MaximumRuntimeConstraint *StudyTimeConstraint `protobuf:"bytes,3,opt,name=maximum_runtime_constraint,json=maximumRuntimeConstraint,proto3" json:"maximum_runtime_constraint,omitempty"`
// If there are fewer than this many COMPLETED trials, do not stop the
// study.
MinNumTrials *wrapperspb.Int32Value `protobuf:"bytes,4,opt,name=min_num_trials,json=minNumTrials,proto3" json:"min_num_trials,omitempty"`
// If there are more than this many trials, stop the study.
MaxNumTrials *wrapperspb.Int32Value `protobuf:"bytes,5,opt,name=max_num_trials,json=maxNumTrials,proto3" json:"max_num_trials,omitempty"`
// If the objective value has not improved for this many consecutive
// trials, stop the study.
//
// WARNING: Effective only for single-objective studies.
MaxNumTrialsNoProgress *wrapperspb.Int32Value `protobuf:"bytes,6,opt,name=max_num_trials_no_progress,json=maxNumTrialsNoProgress,proto3" json:"max_num_trials_no_progress,omitempty"`
// If the objective value has not improved for this much time, stop the
// study.
//
// WARNING: Effective only for single-objective studies.
MaxDurationNoProgress *durationpb.Duration `protobuf:"bytes,7,opt,name=max_duration_no_progress,json=maxDurationNoProgress,proto3" json:"max_duration_no_progress,omitempty"`
}
func (x *StudySpec_StudyStoppingConfig) Reset() {
*x = StudySpec_StudyStoppingConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_StudyStoppingConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_StudyStoppingConfig) ProtoMessage() {}
func (x *StudySpec_StudyStoppingConfig) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_StudyStoppingConfig.ProtoReflect.Descriptor instead.
func (*StudySpec_StudyStoppingConfig) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 7}
}
func (x *StudySpec_StudyStoppingConfig) GetShouldStopAsap() *wrapperspb.BoolValue {
if x != nil {
return x.ShouldStopAsap
}
return nil
}
func (x *StudySpec_StudyStoppingConfig) GetMinimumRuntimeConstraint() *StudyTimeConstraint {
if x != nil {
return x.MinimumRuntimeConstraint
}
return nil
}
func (x *StudySpec_StudyStoppingConfig) GetMaximumRuntimeConstraint() *StudyTimeConstraint {
if x != nil {
return x.MaximumRuntimeConstraint
}
return nil
}
func (x *StudySpec_StudyStoppingConfig) GetMinNumTrials() *wrapperspb.Int32Value {
if x != nil {
return x.MinNumTrials
}
return nil
}
func (x *StudySpec_StudyStoppingConfig) GetMaxNumTrials() *wrapperspb.Int32Value {
if x != nil {
return x.MaxNumTrials
}
return nil
}
func (x *StudySpec_StudyStoppingConfig) GetMaxNumTrialsNoProgress() *wrapperspb.Int32Value {
if x != nil {
return x.MaxNumTrialsNoProgress
}
return nil
}
func (x *StudySpec_StudyStoppingConfig) GetMaxDurationNoProgress() *durationpb.Duration {
if x != nil {
return x.MaxDurationNoProgress
}
return nil
}
// Used in safe optimization to specify threshold levels and risk tolerance.
type StudySpec_MetricSpec_SafetyMetricConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Safety threshold (boundary value between safe and unsafe). NOTE that if
// you leave SafetyMetricConfig unset, a default value of 0 will be used.
SafetyThreshold float64 `protobuf:"fixed64,1,opt,name=safety_threshold,json=safetyThreshold,proto3" json:"safety_threshold,omitempty"`
// Desired minimum fraction of safe trials (over total number of trials)
// that should be targeted by the algorithm at any time during the
// study (best effort). This should be between 0.0 and 1.0 and a value of
// 0.0 means that there is no minimum and an algorithm proceeds without
// targeting any specific fraction. A value of 1.0 means that the
// algorithm attempts to only Suggest safe Trials.
DesiredMinSafeTrialsFraction *float64 `protobuf:"fixed64,2,opt,name=desired_min_safe_trials_fraction,json=desiredMinSafeTrialsFraction,proto3,oneof" json:"desired_min_safe_trials_fraction,omitempty"`
}
func (x *StudySpec_MetricSpec_SafetyMetricConfig) Reset() {
*x = StudySpec_MetricSpec_SafetyMetricConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_MetricSpec_SafetyMetricConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_MetricSpec_SafetyMetricConfig) ProtoMessage() {}
func (x *StudySpec_MetricSpec_SafetyMetricConfig) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_MetricSpec_SafetyMetricConfig.ProtoReflect.Descriptor instead.
func (*StudySpec_MetricSpec_SafetyMetricConfig) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 0, 0}
}
func (x *StudySpec_MetricSpec_SafetyMetricConfig) GetSafetyThreshold() float64 {
if x != nil {
return x.SafetyThreshold
}
return 0
}
func (x *StudySpec_MetricSpec_SafetyMetricConfig) GetDesiredMinSafeTrialsFraction() float64 {
if x != nil && x.DesiredMinSafeTrialsFraction != nil {
return *x.DesiredMinSafeTrialsFraction
}
return 0
}
// Value specification for a parameter in `DOUBLE` type.
type StudySpec_ParameterSpec_DoubleValueSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Inclusive minimum value of the parameter.
MinValue float64 `protobuf:"fixed64,1,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"`
// Required. Inclusive maximum value of the parameter.
MaxValue float64 `protobuf:"fixed64,2,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"`
// A default value for a `DOUBLE` parameter that is assumed to be a
// relatively good starting point. Unset value signals that there is no
// offered starting point.
//
// Currently only supported by the Vertex AI Vizier service. Not supported
// by HyperparameterTuningJob or TrainingPipeline.
DefaultValue *float64 `protobuf:"fixed64,4,opt,name=default_value,json=defaultValue,proto3,oneof" json:"default_value,omitempty"`
}
func (x *StudySpec_ParameterSpec_DoubleValueSpec) Reset() {
*x = StudySpec_ParameterSpec_DoubleValueSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_ParameterSpec_DoubleValueSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_ParameterSpec_DoubleValueSpec) ProtoMessage() {}
func (x *StudySpec_ParameterSpec_DoubleValueSpec) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_ParameterSpec_DoubleValueSpec.ProtoReflect.Descriptor instead.
func (*StudySpec_ParameterSpec_DoubleValueSpec) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 0}
}
func (x *StudySpec_ParameterSpec_DoubleValueSpec) GetMinValue() float64 {
if x != nil {
return x.MinValue
}
return 0
}
func (x *StudySpec_ParameterSpec_DoubleValueSpec) GetMaxValue() float64 {
if x != nil {
return x.MaxValue
}
return 0
}
func (x *StudySpec_ParameterSpec_DoubleValueSpec) GetDefaultValue() float64 {
if x != nil && x.DefaultValue != nil {
return *x.DefaultValue
}
return 0
}
// Value specification for a parameter in `INTEGER` type.
type StudySpec_ParameterSpec_IntegerValueSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Inclusive minimum value of the parameter.
MinValue int64 `protobuf:"varint,1,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"`
// Required. Inclusive maximum value of the parameter.
MaxValue int64 `protobuf:"varint,2,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"`
// A default value for an `INTEGER` parameter that is assumed to be a
// relatively good starting point. Unset value signals that there is no
// offered starting point.
//
// Currently only supported by the Vertex AI Vizier service. Not supported
// by HyperparameterTuningJob or TrainingPipeline.
DefaultValue *int64 `protobuf:"varint,4,opt,name=default_value,json=defaultValue,proto3,oneof" json:"default_value,omitempty"`
}
func (x *StudySpec_ParameterSpec_IntegerValueSpec) Reset() {
*x = StudySpec_ParameterSpec_IntegerValueSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_ParameterSpec_IntegerValueSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_ParameterSpec_IntegerValueSpec) ProtoMessage() {}
func (x *StudySpec_ParameterSpec_IntegerValueSpec) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_ParameterSpec_IntegerValueSpec.ProtoReflect.Descriptor instead.
func (*StudySpec_ParameterSpec_IntegerValueSpec) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 1}
}
func (x *StudySpec_ParameterSpec_IntegerValueSpec) GetMinValue() int64 {
if x != nil {
return x.MinValue
}
return 0
}
func (x *StudySpec_ParameterSpec_IntegerValueSpec) GetMaxValue() int64 {
if x != nil {
return x.MaxValue
}
return 0
}
func (x *StudySpec_ParameterSpec_IntegerValueSpec) GetDefaultValue() int64 {
if x != nil && x.DefaultValue != nil {
return *x.DefaultValue
}
return 0
}
// Value specification for a parameter in `CATEGORICAL` type.
type StudySpec_ParameterSpec_CategoricalValueSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The list of possible categories.
Values []string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
// A default value for a `CATEGORICAL` parameter that is assumed to be a
// relatively good starting point. Unset value signals that there is no
// offered starting point.
//
// Currently only supported by the Vertex AI Vizier service. Not supported
// by HyperparameterTuningJob or TrainingPipeline.
DefaultValue *string `protobuf:"bytes,3,opt,name=default_value,json=defaultValue,proto3,oneof" json:"default_value,omitempty"`
}
func (x *StudySpec_ParameterSpec_CategoricalValueSpec) Reset() {
*x = StudySpec_ParameterSpec_CategoricalValueSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_ParameterSpec_CategoricalValueSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_ParameterSpec_CategoricalValueSpec) ProtoMessage() {}
func (x *StudySpec_ParameterSpec_CategoricalValueSpec) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_ParameterSpec_CategoricalValueSpec.ProtoReflect.Descriptor instead.
func (*StudySpec_ParameterSpec_CategoricalValueSpec) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 2}
}
func (x *StudySpec_ParameterSpec_CategoricalValueSpec) GetValues() []string {
if x != nil {
return x.Values
}
return nil
}
func (x *StudySpec_ParameterSpec_CategoricalValueSpec) GetDefaultValue() string {
if x != nil && x.DefaultValue != nil {
return *x.DefaultValue
}
return ""
}
// Value specification for a parameter in `DISCRETE` type.
type StudySpec_ParameterSpec_DiscreteValueSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. A list of possible values.
// The list should be in increasing order and at least 1e-10 apart.
// For instance, this parameter might have possible settings of 1.5, 2.5,
// and 4.0. This list should not contain more than 1,000 values.
Values []float64 `protobuf:"fixed64,1,rep,packed,name=values,proto3" json:"values,omitempty"`
// A default value for a `DISCRETE` parameter that is assumed to be a
// relatively good starting point. Unset value signals that there is no
// offered starting point. It automatically rounds to the
// nearest feasible discrete point.
//
// Currently only supported by the Vertex AI Vizier service. Not supported
// by HyperparameterTuningJob or TrainingPipeline.
DefaultValue *float64 `protobuf:"fixed64,3,opt,name=default_value,json=defaultValue,proto3,oneof" json:"default_value,omitempty"`
}
func (x *StudySpec_ParameterSpec_DiscreteValueSpec) Reset() {
*x = StudySpec_ParameterSpec_DiscreteValueSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_ParameterSpec_DiscreteValueSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_ParameterSpec_DiscreteValueSpec) ProtoMessage() {}
func (x *StudySpec_ParameterSpec_DiscreteValueSpec) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_ParameterSpec_DiscreteValueSpec.ProtoReflect.Descriptor instead.
func (*StudySpec_ParameterSpec_DiscreteValueSpec) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 3}
}
func (x *StudySpec_ParameterSpec_DiscreteValueSpec) GetValues() []float64 {
if x != nil {
return x.Values
}
return nil
}
func (x *StudySpec_ParameterSpec_DiscreteValueSpec) GetDefaultValue() float64 {
if x != nil && x.DefaultValue != nil {
return *x.DefaultValue
}
return 0
}
// Represents a parameter spec with condition from its parent parameter.
type StudySpec_ParameterSpec_ConditionalParameterSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A set of parameter values from the parent ParameterSpec's feasible
// space.
//
// Types that are assignable to ParentValueCondition:
//
// *StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues
// *StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues
// *StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues
ParentValueCondition isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition `protobuf_oneof:"parent_value_condition"`
// Required. The spec for a conditional parameter.
ParameterSpec *StudySpec_ParameterSpec `protobuf:"bytes,1,opt,name=parameter_spec,json=parameterSpec,proto3" json:"parameter_spec,omitempty"`
}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) Reset() {
*x = StudySpec_ParameterSpec_ConditionalParameterSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_ParameterSpec_ConditionalParameterSpec) ProtoMessage() {}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec.ProtoReflect.Descriptor instead.
func (*StudySpec_ParameterSpec_ConditionalParameterSpec) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 4}
}
func (m *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentValueCondition() isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition {
if m != nil {
return m.ParentValueCondition
}
return nil
}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentDiscreteValues() *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition {
if x, ok := x.GetParentValueCondition().(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues); ok {
return x.ParentDiscreteValues
}
return nil
}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentIntValues() *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition {
if x, ok := x.GetParentValueCondition().(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues); ok {
return x.ParentIntValues
}
return nil
}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentCategoricalValues() *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition {
if x, ok := x.GetParentValueCondition().(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues); ok {
return x.ParentCategoricalValues
}
return nil
}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParameterSpec() *StudySpec_ParameterSpec {
if x != nil {
return x.ParameterSpec
}
return nil
}
type isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition interface {
isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition()
}
type StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues struct {
// The spec for matching values from a parent parameter of
// `DISCRETE` type.
ParentDiscreteValues *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition `protobuf:"bytes,2,opt,name=parent_discrete_values,json=parentDiscreteValues,proto3,oneof"`
}
type StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues struct {
// The spec for matching values from a parent parameter of `INTEGER`
// type.
ParentIntValues *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition `protobuf:"bytes,3,opt,name=parent_int_values,json=parentIntValues,proto3,oneof"`
}
type StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues struct {
// The spec for matching values from a parent parameter of
// `CATEGORICAL` type.
ParentCategoricalValues *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition `protobuf:"bytes,4,opt,name=parent_categorical_values,json=parentCategoricalValues,proto3,oneof"`
}
func (*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues) isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition() {
}
func (*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues) isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition() {
}
func (*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues) isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition() {
}
// Represents the spec to match discrete values from parent parameter.
type StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Matches values of the parent parameter of 'DISCRETE' type.
// All values must exist in `discrete_value_spec` of parent parameter.
//
// The Epsilon of the value matching is 1e-10.
Values []float64 `protobuf:"fixed64,1,rep,packed,name=values,proto3" json:"values,omitempty"`
}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) Reset() {
*x = StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) ProtoMessage() {}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition.ProtoReflect.Descriptor instead.
func (*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 4, 0}
}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) GetValues() []float64 {
if x != nil {
return x.Values
}
return nil
}
// Represents the spec to match integer values from parent parameter.
type StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Matches values of the parent parameter of 'INTEGER' type.
// All values must lie in `integer_value_spec` of parent parameter.
Values []int64 `protobuf:"varint,1,rep,packed,name=values,proto3" json:"values,omitempty"`
}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) Reset() {
*x = StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) ProtoMessage() {}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition.ProtoReflect.Descriptor instead.
func (*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 4, 1}
}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) GetValues() []int64 {
if x != nil {
return x.Values
}
return nil
}
// Represents the spec to match categorical values from parent parameter.
type StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Matches values of the parent parameter of 'CATEGORICAL'
// type. All values must exist in `categorical_value_spec` of parent
// parameter.
Values []string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) Reset() {
*x = StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) ProtoMessage() {}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition.ProtoReflect.Descriptor instead.
func (*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 4, 2}
}
func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) GetValues() []string {
if x != nil {
return x.Values
}
return nil
}
// A message representing a metric in the measurement.
type Measurement_Metric struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. The ID of the Metric. The Metric should be defined in
// [StudySpec's Metrics][google.cloud.aiplatform.v1beta1.StudySpec.metrics].
MetricId string `protobuf:"bytes,1,opt,name=metric_id,json=metricId,proto3" json:"metric_id,omitempty"`
// Output only. The value for this metric.
Value float64 `protobuf:"fixed64,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *Measurement_Metric) Reset() {
*x = Measurement_Metric{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Measurement_Metric) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Measurement_Metric) ProtoMessage() {}
func (x *Measurement_Metric) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Measurement_Metric.ProtoReflect.Descriptor instead.
func (*Measurement_Metric) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{5, 0}
}
func (x *Measurement_Metric) GetMetricId() string {
if x != nil {
return x.MetricId
}
return ""
}
func (x *Measurement_Metric) GetValue() float64 {
if x != nil {
return x.Value
}
return 0
}
var File_google_cloud_aiplatform_v1beta1_study_proto protoreflect.FileDescriptor
var file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc = []byte{
0x0a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61,
0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1f,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64,
0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75,
0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70,
0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf9, 0x03, 0x0a, 0x05, 0x53, 0x74,
0x75, 0x64, 0x79, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c,
0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x0a, 0x73, 0x74, 0x75, 0x64, 0x79, 0x5f, 0x73, 0x70,
0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79,
0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x74, 0x75, 0x64, 0x79,
0x53, 0x70, 0x65, 0x63, 0x12, 0x47, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20,
0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x2e, 0x53, 0x74, 0x61, 0x74,
0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a,
0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03,
0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12,
0x2c, 0x0a, 0x0f, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73,
0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x69,
0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x47, 0x0a,
0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f,
0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a,
0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x41,
0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c,
0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x3a, 0x5d, 0xea, 0x41, 0x5a, 0x0a, 0x1f, 0x61, 0x69, 0x70,
0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x75, 0x64, 0x79, 0x12, 0x37, 0x70, 0x72,
0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d,
0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x73,
0x74, 0x75, 0x64, 0x79, 0x7d, 0x22, 0x90, 0x09, 0x0a, 0x05, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x12,
0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x47, 0x0a,
0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54,
0x72, 0x69, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65,
0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x69,
0x61, 0x6c, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41,
0x03, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5e, 0x0a,
0x11, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65,
0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75,
0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x66, 0x69, 0x6e,
0x61, 0x6c, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x55, 0x0a,
0x0c, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e,
0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d,
0x65, 0x6e, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69,
0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74,
0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65,
0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65,
0x12, 0x20, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20,
0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
0x49, 0x64, 0x12, 0x30, 0x0a, 0x11, 0x69, 0x6e, 0x66, 0x65, 0x61, 0x73, 0x69, 0x62, 0x6c, 0x65,
0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
0x41, 0x03, 0x52, 0x10, 0x69, 0x6e, 0x66, 0x65, 0x61, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x52, 0x65,
0x61, 0x73, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6a,
0x6f, 0x62, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x25,
0x0a, 0x23, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x75, 0x73, 0x74,
0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x52, 0x09, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62,
0x12, 0x66, 0x0a, 0x0f, 0x77, 0x65, 0x62, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x75,
0x72, 0x69, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x61,
0x6c, 0x2e, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x69, 0x73, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x77, 0x65, 0x62, 0x41, 0x63,
0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x69, 0x73, 0x1a, 0x66, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61,
0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03,
0x52, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x31, 0x0a,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56,
0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x1a, 0x40, 0x0a, 0x12, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, 0x69,
0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
0x38, 0x01, 0x22, 0x66, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53,
0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x45, 0x44, 0x10,
0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0c, 0x0a,
0x08, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x53,
0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4e,
0x46, 0x45, 0x41, 0x53, 0x49, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x3a, 0x6c, 0xea, 0x41, 0x69, 0x0a,
0x1f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x72, 0x69, 0x61, 0x6c,
0x12, 0x46, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a,
0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b,
0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x69, 0x65,
0x73, 0x2f, 0x7b, 0x73, 0x74, 0x75, 0x64, 0x79, 0x7d, 0x2f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73,
0x2f, 0x7b, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x7d, 0x22, 0x82, 0x01, 0x0a, 0x0c, 0x54, 0x72, 0x69,
0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73,
0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x0a, 0x70,
0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61,
0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x9c, 0x01,
0x0a, 0x13, 0x53, 0x74, 0x75, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74,
0x72, 0x61, 0x69, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x75, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x44, 0x75, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0c,
0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x22, 0xc4, 0x2e, 0x0a,
0x09, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x87, 0x01, 0x0a, 0x19, 0x64,
0x65, 0x63, 0x61, 0x79, 0x5f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70,
0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x61, 0x79,
0x43, 0x75, 0x72, 0x76, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74,
0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x16, 0x64, 0x65,
0x63, 0x61, 0x79, 0x43, 0x75, 0x72, 0x76, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67,
0x53, 0x70, 0x65, 0x63, 0x12, 0x8d, 0x01, 0x0a, 0x1e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x5f,
0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69,
0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x6e,
0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e,
0x67, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x1b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x41,
0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67,
0x53, 0x70, 0x65, 0x63, 0x12, 0x6f, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x5f, 0x73,
0x74, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e,
0x76, 0x65, 0x78, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x02, 0x18,
0x01, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x53, 0x74, 0x6f, 0x70, 0x43,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x8d, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78,
0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70,
0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65,
0x78, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69,
0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x1b, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78,
0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e,
0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x54, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70,
0x65, 0x63, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0,
0x41, 0x02, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x5d, 0x0a, 0x0a, 0x70,
0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61,
0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61,
0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a,
0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x09, 0x61, 0x6c,
0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69,
0x74, 0x68, 0x6d, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x68,
0x0a, 0x11, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f,
0x69, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64,
0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x52, 0x10, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x1a, 0x6d, 0x65, 0x61,
0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x43, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72,
0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79,
0x70, 0x65, 0x52, 0x18, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53,
0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x7b, 0x0a, 0x18,
0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e,
0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73,
0x66, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x72, 0x6e,
0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x77, 0x0a, 0x15, 0x73, 0x74, 0x75,
0x64, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79,
0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69,
0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x01, 0x52, 0x13, 0x73, 0x74, 0x75, 0x64,
0x79, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88,
0x01, 0x01, 0x1a, 0x84, 0x04, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65,
0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x72, 0x69,
0x63, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65,
0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x47, 0x6f, 0x61, 0x6c, 0x54, 0x79, 0x70,
0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x12, 0x72, 0x0a, 0x0d,
0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e,
0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74,
0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52,
0x0c, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01,
0x1a, 0xb1, 0x01, 0x0a, 0x12, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69,
0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x61, 0x66, 0x65, 0x74,
0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x01, 0x52, 0x0f, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f,
0x6c, 0x64, 0x12, 0x4b, 0x0a, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69,
0x6e, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x66, 0x72,
0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x1c,
0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x61, 0x66, 0x65, 0x54, 0x72,
0x69, 0x61, 0x6c, 0x73, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42,
0x23, 0x0a, 0x21, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f,
0x73, 0x61, 0x66, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x66, 0x72, 0x61, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x22, 0x41, 0x0a, 0x08, 0x47, 0x6f, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65,
0x12, 0x19, 0x0a, 0x15, 0x47, 0x4f, 0x41, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e,
0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4d,
0x41, 0x58, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x49, 0x4e,
0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x61, 0x66, 0x65,
0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0xda, 0x11, 0x0a, 0x0d, 0x50, 0x61,
0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x76, 0x0a, 0x11, 0x64,
0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70,
0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63,
0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63,
0x48, 0x00, 0x52, 0x0f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53,
0x70, 0x65, 0x63, 0x12, 0x79, 0x0a, 0x12, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61,
0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61,
0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65,
0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e,
0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x85,
0x01, 0x0a, 0x16, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61,
0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61,
0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f,
0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00,
0x52, 0x14, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c,
0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x7c, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, 0x72, 0x65,
0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e,
0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x69,
0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48,
0x00, 0x52, 0x11, 0x64, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65,
0x53, 0x70, 0x65, 0x63, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x61, 0x0a, 0x0a,
0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e,
0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72,
0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x65,
0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
0x91, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,
0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18,
0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e,
0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65,
0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e,
0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d,
0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x52, 0x19, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74,
0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70,
0x65, 0x63, 0x73, 0x1a, 0x91, 0x01, 0x0a, 0x0f, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61,
0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x61, 0x78,
0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41,
0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x64,
0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01,
0x28, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c,
0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x92, 0x01, 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65,
0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09,
0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42,
0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20,
0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65,
0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75,
0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64,
0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x6f, 0x0a, 0x14,
0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01,
0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x73, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61,
0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f,
0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x6c, 0x0a,
0x11, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70,
0x65, 0x63, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12,
0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,
0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65,
0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xa0, 0x06, 0x0a, 0x18,
0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d,
0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0xa0, 0x01, 0x0a, 0x16, 0x70, 0x61, 0x72,
0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64,
0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53,
0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50,
0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x69, 0x73,
0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74,
0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x14, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73,
0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x91, 0x01, 0x0a, 0x11,
0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x63, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53,
0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65,
0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72,
0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x56, 0x61,
0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f,
0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12,
0xa9, 0x01, 0x0a, 0x19, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67,
0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e,
0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f,
0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63,
0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
0x48, 0x00, 0x52, 0x17, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f,
0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x64, 0x0a, 0x0e, 0x70,
0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e,
0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0,
0x41, 0x02, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65,
0x63, 0x1a, 0x35, 0x0a, 0x16, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c,
0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02,
0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x30, 0x0a, 0x11, 0x49, 0x6e, 0x74, 0x56,
0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a,
0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x42, 0x03, 0xe0,
0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x38, 0x0a, 0x19, 0x43, 0x61,
0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f,
0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e,
0x0a, 0x09, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x53,
0x43, 0x41, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x4e, 0x49, 0x54, 0x5f,
0x4c, 0x49, 0x4e, 0x45, 0x41, 0x52, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x12,
0x0a, 0x0e, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45,
0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52,
0x53, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x10, 0x03, 0x42, 0x16,
0x0a, 0x14, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x1a, 0x53, 0x0a, 0x1f, 0x44, 0x65, 0x63, 0x61, 0x79, 0x43,
0x75, 0x72, 0x76, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f,
0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x73, 0x65,
0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x73, 0x65, 0x45, 0x6c, 0x61, 0x70,
0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x4f, 0x0a, 0x1b, 0x4d,
0x65, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74,
0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x73,
0x65, 0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x73, 0x65, 0x45, 0x6c, 0x61,
0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xee, 0x02, 0x0a,
0x1b, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64,
0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x24, 0x0a, 0x0e,
0x6d, 0x61, 0x78, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x53, 0x74, 0x65, 0x70, 0x43, 0x6f, 0x75,
0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x53,
0x74, 0x65, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x5f,
0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x4d, 0x65, 0x61, 0x73,
0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x1c,
0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61,
0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01,
0x28, 0x09, 0x52, 0x19, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65,
0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a,
0x14, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x73, 0x65,
0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
0x3e, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x74,
0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01,
0x28, 0x08, 0x48, 0x00, 0x52, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x53,
0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x42,
0x1c, 0x0a, 0x1a, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x73,
0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x1a, 0xf3, 0x01,
0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x74,
0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x4e, 0x75,
0x6d, 0x53, 0x74, 0x65, 0x70, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x75,
0x6d, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d,
0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x53, 0x74, 0x65, 0x70, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x61, 0x75,
0x74, 0x6f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64,
0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65,
0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x3f, 0x0a,
0x1c, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70,
0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20,
0x01, 0x28, 0x09, 0x52, 0x19, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74,
0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f,
0x0a, 0x0b, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20,
0x01, 0x28, 0x08, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x3a,
0x02, 0x18, 0x01, 0x1a, 0x85, 0x01, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a,
0x0a, 0x19, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66,
0x65, 0x72, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28,
0x08, 0x52, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66,
0x65, 0x72, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x11, 0x70, 0x72,
0x69, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x75, 0x64, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18,
0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x6f,
0x72, 0x53, 0x74, 0x75, 0x64, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xf6, 0x04, 0x0a, 0x13,
0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x12, 0x44, 0x0a, 0x10, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x73, 0x74,
0x6f, 0x70, 0x5f, 0x61, 0x73, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x75, 0x6c,
0x64, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x73, 0x61, 0x70, 0x12, 0x72, 0x0a, 0x1a, 0x6d, 0x69, 0x6e,
0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e,
0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x53, 0x74, 0x75, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61,
0x69, 0x6e, 0x74, 0x52, 0x18, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x75, 0x6e, 0x74,
0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x12, 0x72, 0x0a,
0x1a, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65,
0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e,
0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x52, 0x18, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d,
0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e,
0x74, 0x12, 0x41, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x72, 0x69,
0x61, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33,
0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x54, 0x72,
0x69, 0x61, 0x6c, 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x5f,
0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49,
0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x4e, 0x75,
0x6d, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x57, 0x0a, 0x1a, 0x6d, 0x61, 0x78, 0x5f, 0x6e,
0x75, 0x6d, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x6e, 0x6f, 0x5f, 0x70, 0x72, 0x6f,
0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e,
0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d,
0x54, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73,
0x12, 0x52, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x5f, 0x6e, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x6d,
0x61, 0x78, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x67,
0x72, 0x65, 0x73, 0x73, 0x22, 0x4a, 0x0a, 0x09, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68,
0x6d, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x55,
0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b,
0x47, 0x52, 0x49, 0x44, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x02, 0x12, 0x11, 0x0a,
0x0d, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x03,
0x22, 0x48, 0x0a, 0x10, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e,
0x6f, 0x69, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x41, 0x54,
0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4f, 0x57, 0x10, 0x01,
0x12, 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, 0x48, 0x10, 0x02, 0x22, 0x72, 0x0a, 0x18, 0x4d, 0x65,
0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52,
0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x41, 0x53, 0x55,
0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x45, 0x53, 0x54,
0x5f, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x42, 0x19,
0x0a, 0x17, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70,
0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x74,
0x75, 0x64, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x22, 0x97, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d,
0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64,
0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x65,
0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22,
0x0a, 0x0a, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x65, 0x70, 0x43, 0x6f, 0x75,
0x6e, 0x74, 0x12, 0x52, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e,
0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6d,
0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0x45, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63,
0x49, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x01, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0xe1, 0x01,
0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x53, 0x74, 0x75, 0x64, 0x79, 0x50, 0x72, 0x6f, 0x74,
0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61,
0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c,
0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74,
0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49,
0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_google_cloud_aiplatform_v1beta1_study_proto_rawDescOnce sync.Once
file_google_cloud_aiplatform_v1beta1_study_proto_rawDescData = file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc
)
func file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP() []byte {
file_google_cloud_aiplatform_v1beta1_study_proto_rawDescOnce.Do(func() {
file_google_cloud_aiplatform_v1beta1_study_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1beta1_study_proto_rawDescData)
})
return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescData
}
var file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes = make([]protoimpl.EnumInfo, 7)
var file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
var file_google_cloud_aiplatform_v1beta1_study_proto_goTypes = []interface{}{
(Study_State)(0), // 0: google.cloud.aiplatform.v1beta1.Study.State
(Trial_State)(0), // 1: google.cloud.aiplatform.v1beta1.Trial.State
(StudySpec_Algorithm)(0), // 2: google.cloud.aiplatform.v1beta1.StudySpec.Algorithm
(StudySpec_ObservationNoise)(0), // 3: google.cloud.aiplatform.v1beta1.StudySpec.ObservationNoise
(StudySpec_MeasurementSelectionType)(0), // 4: google.cloud.aiplatform.v1beta1.StudySpec.MeasurementSelectionType
(StudySpec_MetricSpec_GoalType)(0), // 5: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.GoalType
(StudySpec_ParameterSpec_ScaleType)(0), // 6: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ScaleType
(*Study)(nil), // 7: google.cloud.aiplatform.v1beta1.Study
(*Trial)(nil), // 8: google.cloud.aiplatform.v1beta1.Trial
(*TrialContext)(nil), // 9: google.cloud.aiplatform.v1beta1.TrialContext
(*StudyTimeConstraint)(nil), // 10: google.cloud.aiplatform.v1beta1.StudyTimeConstraint
(*StudySpec)(nil), // 11: google.cloud.aiplatform.v1beta1.StudySpec
(*Measurement)(nil), // 12: google.cloud.aiplatform.v1beta1.Measurement
(*Trial_Parameter)(nil), // 13: google.cloud.aiplatform.v1beta1.Trial.Parameter
nil, // 14: google.cloud.aiplatform.v1beta1.Trial.WebAccessUrisEntry
(*StudySpec_MetricSpec)(nil), // 15: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec
(*StudySpec_ParameterSpec)(nil), // 16: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec
(*StudySpec_DecayCurveAutomatedStoppingSpec)(nil), // 17: google.cloud.aiplatform.v1beta1.StudySpec.DecayCurveAutomatedStoppingSpec
(*StudySpec_MedianAutomatedStoppingSpec)(nil), // 18: google.cloud.aiplatform.v1beta1.StudySpec.MedianAutomatedStoppingSpec
(*StudySpec_ConvexAutomatedStoppingSpec)(nil), // 19: google.cloud.aiplatform.v1beta1.StudySpec.ConvexAutomatedStoppingSpec
(*StudySpec_ConvexStopConfig)(nil), // 20: google.cloud.aiplatform.v1beta1.StudySpec.ConvexStopConfig
(*StudySpec_TransferLearningConfig)(nil), // 21: google.cloud.aiplatform.v1beta1.StudySpec.TransferLearningConfig
(*StudySpec_StudyStoppingConfig)(nil), // 22: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig
(*StudySpec_MetricSpec_SafetyMetricConfig)(nil), // 23: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.SafetyMetricConfig
(*StudySpec_ParameterSpec_DoubleValueSpec)(nil), // 24: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DoubleValueSpec
(*StudySpec_ParameterSpec_IntegerValueSpec)(nil), // 25: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.IntegerValueSpec
(*StudySpec_ParameterSpec_CategoricalValueSpec)(nil), // 26: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.CategoricalValueSpec
(*StudySpec_ParameterSpec_DiscreteValueSpec)(nil), // 27: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DiscreteValueSpec
(*StudySpec_ParameterSpec_ConditionalParameterSpec)(nil), // 28: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec
(*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition)(nil), // 29: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition
(*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition)(nil), // 30: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition
(*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition)(nil), // 31: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition
(*Measurement_Metric)(nil), // 32: google.cloud.aiplatform.v1beta1.Measurement.Metric
(*timestamppb.Timestamp)(nil), // 33: google.protobuf.Timestamp
(*durationpb.Duration)(nil), // 34: google.protobuf.Duration
(*structpb.Value)(nil), // 35: google.protobuf.Value
(*wrapperspb.BoolValue)(nil), // 36: google.protobuf.BoolValue
(*wrapperspb.Int32Value)(nil), // 37: google.protobuf.Int32Value
}
var file_google_cloud_aiplatform_v1beta1_study_proto_depIdxs = []int32{
11, // 0: google.cloud.aiplatform.v1beta1.Study.study_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec
0, // 1: google.cloud.aiplatform.v1beta1.Study.state:type_name -> google.cloud.aiplatform.v1beta1.Study.State
33, // 2: google.cloud.aiplatform.v1beta1.Study.create_time:type_name -> google.protobuf.Timestamp
1, // 3: google.cloud.aiplatform.v1beta1.Trial.state:type_name -> google.cloud.aiplatform.v1beta1.Trial.State
13, // 4: google.cloud.aiplatform.v1beta1.Trial.parameters:type_name -> google.cloud.aiplatform.v1beta1.Trial.Parameter
12, // 5: google.cloud.aiplatform.v1beta1.Trial.final_measurement:type_name -> google.cloud.aiplatform.v1beta1.Measurement
12, // 6: google.cloud.aiplatform.v1beta1.Trial.measurements:type_name -> google.cloud.aiplatform.v1beta1.Measurement
33, // 7: google.cloud.aiplatform.v1beta1.Trial.start_time:type_name -> google.protobuf.Timestamp
33, // 8: google.cloud.aiplatform.v1beta1.Trial.end_time:type_name -> google.protobuf.Timestamp
14, // 9: google.cloud.aiplatform.v1beta1.Trial.web_access_uris:type_name -> google.cloud.aiplatform.v1beta1.Trial.WebAccessUrisEntry
13, // 10: google.cloud.aiplatform.v1beta1.TrialContext.parameters:type_name -> google.cloud.aiplatform.v1beta1.Trial.Parameter
34, // 11: google.cloud.aiplatform.v1beta1.StudyTimeConstraint.max_duration:type_name -> google.protobuf.Duration
33, // 12: google.cloud.aiplatform.v1beta1.StudyTimeConstraint.end_time:type_name -> google.protobuf.Timestamp
17, // 13: google.cloud.aiplatform.v1beta1.StudySpec.decay_curve_stopping_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.DecayCurveAutomatedStoppingSpec
18, // 14: google.cloud.aiplatform.v1beta1.StudySpec.median_automated_stopping_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MedianAutomatedStoppingSpec
20, // 15: google.cloud.aiplatform.v1beta1.StudySpec.convex_stop_config:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ConvexStopConfig
19, // 16: google.cloud.aiplatform.v1beta1.StudySpec.convex_automated_stopping_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ConvexAutomatedStoppingSpec
15, // 17: google.cloud.aiplatform.v1beta1.StudySpec.metrics:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec
16, // 18: google.cloud.aiplatform.v1beta1.StudySpec.parameters:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec
2, // 19: google.cloud.aiplatform.v1beta1.StudySpec.algorithm:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.Algorithm
3, // 20: google.cloud.aiplatform.v1beta1.StudySpec.observation_noise:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ObservationNoise
4, // 21: google.cloud.aiplatform.v1beta1.StudySpec.measurement_selection_type:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MeasurementSelectionType
21, // 22: google.cloud.aiplatform.v1beta1.StudySpec.transfer_learning_config:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.TransferLearningConfig
22, // 23: google.cloud.aiplatform.v1beta1.StudySpec.study_stopping_config:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig
34, // 24: google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration:type_name -> google.protobuf.Duration
32, // 25: google.cloud.aiplatform.v1beta1.Measurement.metrics:type_name -> google.cloud.aiplatform.v1beta1.Measurement.Metric
35, // 26: google.cloud.aiplatform.v1beta1.Trial.Parameter.value:type_name -> google.protobuf.Value
5, // 27: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.goal:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.GoalType
23, // 28: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.safety_config:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.SafetyMetricConfig
24, // 29: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.double_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DoubleValueSpec
25, // 30: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.integer_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.IntegerValueSpec
26, // 31: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.categorical_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.CategoricalValueSpec
27, // 32: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.discrete_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DiscreteValueSpec
6, // 33: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.scale_type:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ScaleType
28, // 34: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.conditional_parameter_specs:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec
36, // 35: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.should_stop_asap:type_name -> google.protobuf.BoolValue
10, // 36: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.minimum_runtime_constraint:type_name -> google.cloud.aiplatform.v1beta1.StudyTimeConstraint
10, // 37: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.maximum_runtime_constraint:type_name -> google.cloud.aiplatform.v1beta1.StudyTimeConstraint
37, // 38: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.min_num_trials:type_name -> google.protobuf.Int32Value
37, // 39: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.max_num_trials:type_name -> google.protobuf.Int32Value
37, // 40: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.max_num_trials_no_progress:type_name -> google.protobuf.Int32Value
34, // 41: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.max_duration_no_progress:type_name -> google.protobuf.Duration
29, // 42: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_discrete_values:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition
30, // 43: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_int_values:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition
31, // 44: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_categorical_values:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition
16, // 45: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parameter_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec
46, // [46:46] is the sub-list for method output_type
46, // [46:46] is the sub-list for method input_type
46, // [46:46] is the sub-list for extension type_name
46, // [46:46] is the sub-list for extension extendee
0, // [0:46] is the sub-list for field type_name
}
func init() { file_google_cloud_aiplatform_v1beta1_study_proto_init() }
func file_google_cloud_aiplatform_v1beta1_study_proto_init() {
if File_google_cloud_aiplatform_v1beta1_study_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Study); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Trial); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrialContext); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudyTimeConstraint); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Measurement); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Trial_Parameter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_MetricSpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_ParameterSpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_DecayCurveAutomatedStoppingSpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_MedianAutomatedStoppingSpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_ConvexAutomatedStoppingSpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_ConvexStopConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_TransferLearningConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_StudyStoppingConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_MetricSpec_SafetyMetricConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_ParameterSpec_DoubleValueSpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_ParameterSpec_IntegerValueSpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_ParameterSpec_CategoricalValueSpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_ParameterSpec_DiscreteValueSpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_ParameterSpec_ConditionalParameterSpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Measurement_Metric); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3].OneofWrappers = []interface{}{
(*StudyTimeConstraint_MaxDuration)(nil),
(*StudyTimeConstraint_EndTime)(nil),
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4].OneofWrappers = []interface{}{
(*StudySpec_DecayCurveStoppingSpec)(nil),
(*StudySpec_MedianAutomatedStoppingSpec_)(nil),
(*StudySpec_ConvexStopConfig_)(nil),
(*StudySpec_ConvexAutomatedStoppingSpec_)(nil),
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8].OneofWrappers = []interface{}{}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9].OneofWrappers = []interface{}{
(*StudySpec_ParameterSpec_DoubleValueSpec_)(nil),
(*StudySpec_ParameterSpec_IntegerValueSpec_)(nil),
(*StudySpec_ParameterSpec_CategoricalValueSpec_)(nil),
(*StudySpec_ParameterSpec_DiscreteValueSpec_)(nil),
}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12].OneofWrappers = []interface{}{}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16].OneofWrappers = []interface{}{}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17].OneofWrappers = []interface{}{}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18].OneofWrappers = []interface{}{}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19].OneofWrappers = []interface{}{}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[20].OneofWrappers = []interface{}{}
file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[21].OneofWrappers = []interface{}{
(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues)(nil),
(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues)(nil),
(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc,
NumEnums: 7,
NumMessages: 26,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_google_cloud_aiplatform_v1beta1_study_proto_goTypes,
DependencyIndexes: file_google_cloud_aiplatform_v1beta1_study_proto_depIdxs,
EnumInfos: file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes,
MessageInfos: file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes,
}.Build()
File_google_cloud_aiplatform_v1beta1_study_proto = out.File
file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc = nil
file_google_cloud_aiplatform_v1beta1_study_proto_goTypes = nil
file_google_cloud_aiplatform_v1beta1_study_proto_depIdxs = nil
}