// Copyright 2025 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.36.11
// 	protoc        v6.33.2
// source: google/cloud/aiplatform/v1beta1/study.proto

package aiplatformpb

import (
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"

	_ "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 `protogen:"open.v1"`
	// 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"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *Study) Reset() {
	*x = Study{}
	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 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 `protogen:"open.v1"`
	// 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" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Trial) Reset() {
	*x = Trial{}
	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 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
}

type TrialContext struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TrialContext) Reset() {
	*x = TrialContext{}
	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 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 `protogen:"open.v1"`
	// Types that are valid to be assigned to Constraint:
	//
	//	*StudyTimeConstraint_MaxDuration
	//	*StudyTimeConstraint_EndTime
	Constraint    isStudyTimeConstraint_Constraint `protobuf_oneof:"constraint"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StudyTimeConstraint) Reset() {
	*x = StudyTimeConstraint{}
	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 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 (x *StudyTimeConstraint) GetConstraint() isStudyTimeConstraint_Constraint {
	if x != nil {
		return x.Constraint
	}
	return nil
}

func (x *StudyTimeConstraint) GetMaxDuration() *durationpb.Duration {
	if x != nil {
		if x, ok := x.Constraint.(*StudyTimeConstraint_MaxDuration); ok {
			return x.MaxDuration
		}
	}
	return nil
}

func (x *StudyTimeConstraint) GetEndTime() *timestamppb.Timestamp {
	if x != nil {
		if x, ok := x.Constraint.(*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 `protogen:"open.v1"`
	// Types that are valid to be assigned 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"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

func (x *StudySpec) Reset() {
	*x = StudySpec{}
	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 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 (x *StudySpec) GetAutomatedStoppingSpec() isStudySpec_AutomatedStoppingSpec {
	if x != nil {
		return x.AutomatedStoppingSpec
	}
	return nil
}

func (x *StudySpec) GetDecayCurveStoppingSpec() *StudySpec_DecayCurveAutomatedStoppingSpec {
	if x != nil {
		if x, ok := x.AutomatedStoppingSpec.(*StudySpec_DecayCurveStoppingSpec); ok {
			return x.DecayCurveStoppingSpec
		}
	}
	return nil
}

func (x *StudySpec) GetMedianAutomatedStoppingSpec() *StudySpec_MedianAutomatedStoppingSpec {
	if x != nil {
		if x, ok := x.AutomatedStoppingSpec.(*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 != nil {
		if x, ok := x.AutomatedStoppingSpec.(*StudySpec_ConvexStopConfig_); ok {
			return x.ConvexStopConfig
		}
	}
	return nil
}

func (x *StudySpec) GetConvexAutomatedStoppingSpec() *StudySpec_ConvexAutomatedStoppingSpec {
	if x != nil {
		if x, ok := x.AutomatedStoppingSpec.(*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 `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Measurement) Reset() {
	*x = Measurement{}
	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 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 `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Trial_Parameter) Reset() {
	*x = Trial_Parameter{}
	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 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 `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StudySpec_MetricSpec) Reset() {
	*x = StudySpec_MetricSpec{}
	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 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 `protogen:"open.v1"`
	// Types that are valid to be assigned 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"`
	unknownFields             protoimpl.UnknownFields
	sizeCache                 protoimpl.SizeCache
}

func (x *StudySpec_ParameterSpec) Reset() {
	*x = StudySpec_ParameterSpec{}
	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 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 (x *StudySpec_ParameterSpec) GetParameterValueSpec() isStudySpec_ParameterSpec_ParameterValueSpec {
	if x != nil {
		return x.ParameterValueSpec
	}
	return nil
}

func (x *StudySpec_ParameterSpec) GetDoubleValueSpec() *StudySpec_ParameterSpec_DoubleValueSpec {
	if x != nil {
		if x, ok := x.ParameterValueSpec.(*StudySpec_ParameterSpec_DoubleValueSpec_); ok {
			return x.DoubleValueSpec
		}
	}
	return nil
}

func (x *StudySpec_ParameterSpec) GetIntegerValueSpec() *StudySpec_ParameterSpec_IntegerValueSpec {
	if x != nil {
		if x, ok := x.ParameterValueSpec.(*StudySpec_ParameterSpec_IntegerValueSpec_); ok {
			return x.IntegerValueSpec
		}
	}
	return nil
}

func (x *StudySpec_ParameterSpec) GetCategoricalValueSpec() *StudySpec_ParameterSpec_CategoricalValueSpec {
	if x != nil {
		if x, ok := x.ParameterValueSpec.(*StudySpec_ParameterSpec_CategoricalValueSpec_); ok {
			return x.CategoricalValueSpec
		}
	}
	return nil
}

func (x *StudySpec_ParameterSpec) GetDiscreteValueSpec() *StudySpec_ParameterSpec_DiscreteValueSpec {
	if x != nil {
		if x, ok := x.ParameterValueSpec.(*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 `protogen:"open.v1"`
	// 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"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *StudySpec_DecayCurveAutomatedStoppingSpec) Reset() {
	*x = StudySpec_DecayCurveAutomatedStoppingSpec{}
	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 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 `protogen:"open.v1"`
	// 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"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *StudySpec_MedianAutomatedStoppingSpec) Reset() {
	*x = StudySpec_MedianAutomatedStoppingSpec{}
	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 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 `protogen:"open.v1"`
	// 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"`
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

func (x *StudySpec_ConvexAutomatedStoppingSpec) Reset() {
	*x = StudySpec_ConvexAutomatedStoppingSpec{}
	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 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 `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StudySpec_ConvexStopConfig) Reset() {
	*x = StudySpec_ConvexStopConfig{}
	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 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 `protogen:"open.v1"`
	// 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"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *StudySpec_TransferLearningConfig) Reset() {
	*x = StudySpec_TransferLearningConfig{}
	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 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 `protogen:"open.v1"`
	// 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"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

func (x *StudySpec_StudyStoppingConfig) Reset() {
	*x = StudySpec_StudyStoppingConfig{}
	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 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 `protogen:"open.v1"`
	// 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"`
	unknownFields                protoimpl.UnknownFields
	sizeCache                    protoimpl.SizeCache
}

func (x *StudySpec_MetricSpec_SafetyMetricConfig) Reset() {
	*x = StudySpec_MetricSpec_SafetyMetricConfig{}
	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 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 `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StudySpec_ParameterSpec_DoubleValueSpec) Reset() {
	*x = StudySpec_ParameterSpec_DoubleValueSpec{}
	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 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 `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StudySpec_ParameterSpec_IntegerValueSpec) Reset() {
	*x = StudySpec_ParameterSpec_IntegerValueSpec{}
	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 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 `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StudySpec_ParameterSpec_CategoricalValueSpec) Reset() {
	*x = StudySpec_ParameterSpec_CategoricalValueSpec{}
	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 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 `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StudySpec_ParameterSpec_DiscreteValueSpec) Reset() {
	*x = StudySpec_ParameterSpec_DiscreteValueSpec{}
	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 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 `protogen:"open.v1"`
	// A set of parameter values from the parent ParameterSpec's feasible
	// space.
	//
	// Types that are valid to be assigned 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) Reset() {
	*x = StudySpec_ParameterSpec_ConditionalParameterSpec{}
	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 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 (x *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentValueCondition() isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition {
	if x != nil {
		return x.ParentValueCondition
	}
	return nil
}

func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentDiscreteValues() *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition {
	if x != nil {
		if x, ok := x.ParentValueCondition.(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues); ok {
			return x.ParentDiscreteValues
		}
	}
	return nil
}

func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentIntValues() *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition {
	if x != nil {
		if x, ok := x.ParentValueCondition.(*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues); ok {
			return x.ParentIntValues
		}
	}
	return nil
}

func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentCategoricalValues() *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition {
	if x != nil {
		if x, ok := x.ParentValueCondition.(*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 `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) Reset() {
	*x = StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition{}
	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 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 `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) Reset() {
	*x = StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition{}
	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 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 `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) Reset() {
	*x = StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition{}
	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 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 `protogen:"open.v1"`
	// 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"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Measurement_Metric) Reset() {
	*x = Measurement_Metric{}
	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 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

const file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc = "" +
	"\n" +
	"+google/cloud/aiplatform/v1beta1/study.proto\x12\x1fgoogle.cloud.aiplatform.v1beta1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xf9\x03\n" +
	"\x05Study\x12\x17\n" +
	"\x04name\x18\x01 \x01(\tB\x03\xe0A\x03R\x04name\x12&\n" +
	"\fdisplay_name\x18\x02 \x01(\tB\x03\xe0A\x02R\vdisplayName\x12N\n" +
	"\n" +
	"study_spec\x18\x03 \x01(\v2*.google.cloud.aiplatform.v1beta1.StudySpecB\x03\xe0A\x02R\tstudySpec\x12G\n" +
	"\x05state\x18\x04 \x01(\x0e2,.google.cloud.aiplatform.v1beta1.Study.StateB\x03\xe0A\x03R\x05state\x12@\n" +
	"\vcreate_time\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampB\x03\xe0A\x03R\n" +
	"createTime\x12,\n" +
	"\x0finactive_reason\x18\x06 \x01(\tB\x03\xe0A\x03R\x0einactiveReason\"G\n" +
	"\x05State\x12\x15\n" +
	"\x11STATE_UNSPECIFIED\x10\x00\x12\n" +
	"\n" +
	"\x06ACTIVE\x10\x01\x12\f\n" +
	"\bINACTIVE\x10\x02\x12\r\n" +
	"\tCOMPLETED\x10\x03:]\xeaAZ\n" +
	"\x1faiplatform.googleapis.com/Study\x127projects/{project}/locations/{location}/studies/{study}\"\x90\t\n" +
	"\x05Trial\x12\x17\n" +
	"\x04name\x18\x01 \x01(\tB\x03\xe0A\x03R\x04name\x12\x13\n" +
	"\x02id\x18\x02 \x01(\tB\x03\xe0A\x03R\x02id\x12G\n" +
	"\x05state\x18\x03 \x01(\x0e2,.google.cloud.aiplatform.v1beta1.Trial.StateB\x03\xe0A\x03R\x05state\x12U\n" +
	"\n" +
	"parameters\x18\x04 \x03(\v20.google.cloud.aiplatform.v1beta1.Trial.ParameterB\x03\xe0A\x03R\n" +
	"parameters\x12^\n" +
	"\x11final_measurement\x18\x05 \x01(\v2,.google.cloud.aiplatform.v1beta1.MeasurementB\x03\xe0A\x03R\x10finalMeasurement\x12U\n" +
	"\fmeasurements\x18\x06 \x03(\v2,.google.cloud.aiplatform.v1beta1.MeasurementB\x03\xe0A\x03R\fmeasurements\x12>\n" +
	"\n" +
	"start_time\x18\a \x01(\v2\x1a.google.protobuf.TimestampB\x03\xe0A\x03R\tstartTime\x12:\n" +
	"\bend_time\x18\b \x01(\v2\x1a.google.protobuf.TimestampB\x03\xe0A\x03R\aendTime\x12 \n" +
	"\tclient_id\x18\t \x01(\tB\x03\xe0A\x03R\bclientId\x120\n" +
	"\x11infeasible_reason\x18\n" +
	" \x01(\tB\x03\xe0A\x03R\x10infeasibleReason\x12J\n" +
	"\n" +
	"custom_job\x18\v \x01(\tB+\xe0A\x03\xfaA%\n" +
	"#aiplatform.googleapis.com/CustomJobR\tcustomJob\x12f\n" +
	"\x0fweb_access_uris\x18\f \x03(\v29.google.cloud.aiplatform.v1beta1.Trial.WebAccessUrisEntryB\x03\xe0A\x03R\rwebAccessUris\x1af\n" +
	"\tParameter\x12&\n" +
	"\fparameter_id\x18\x01 \x01(\tB\x03\xe0A\x03R\vparameterId\x121\n" +
	"\x05value\x18\x02 \x01(\v2\x16.google.protobuf.ValueB\x03\xe0A\x03R\x05value\x1a@\n" +
	"\x12WebAccessUrisEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"f\n" +
	"\x05State\x12\x15\n" +
	"\x11STATE_UNSPECIFIED\x10\x00\x12\r\n" +
	"\tREQUESTED\x10\x01\x12\n" +
	"\n" +
	"\x06ACTIVE\x10\x02\x12\f\n" +
	"\bSTOPPING\x10\x03\x12\r\n" +
	"\tSUCCEEDED\x10\x04\x12\x0e\n" +
	"\n" +
	"INFEASIBLE\x10\x05:l\xeaAi\n" +
	"\x1faiplatform.googleapis.com/Trial\x12Fprojects/{project}/locations/{location}/studies/{study}/trials/{trial}\"\x82\x01\n" +
	"\fTrialContext\x12 \n" +
	"\vdescription\x18\x01 \x01(\tR\vdescription\x12P\n" +
	"\n" +
	"parameters\x18\x02 \x03(\v20.google.cloud.aiplatform.v1beta1.Trial.ParameterR\n" +
	"parameters\"\x9c\x01\n" +
	"\x13StudyTimeConstraint\x12>\n" +
	"\fmax_duration\x18\x01 \x01(\v2\x19.google.protobuf.DurationH\x00R\vmaxDuration\x127\n" +
	"\bend_time\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampH\x00R\aendTimeB\f\n" +
	"\n" +
	"constraint\"\xc4.\n" +
	"\tStudySpec\x12\x87\x01\n" +
	"\x19decay_curve_stopping_spec\x18\x04 \x01(\v2J.google.cloud.aiplatform.v1beta1.StudySpec.DecayCurveAutomatedStoppingSpecH\x00R\x16decayCurveStoppingSpec\x12\x8d\x01\n" +
	"\x1emedian_automated_stopping_spec\x18\x05 \x01(\v2F.google.cloud.aiplatform.v1beta1.StudySpec.MedianAutomatedStoppingSpecH\x00R\x1bmedianAutomatedStoppingSpec\x12o\n" +
	"\x12convex_stop_config\x18\b \x01(\v2;.google.cloud.aiplatform.v1beta1.StudySpec.ConvexStopConfigB\x02\x18\x01H\x00R\x10convexStopConfig\x12\x8d\x01\n" +
	"\x1econvex_automated_stopping_spec\x18\t \x01(\v2F.google.cloud.aiplatform.v1beta1.StudySpec.ConvexAutomatedStoppingSpecH\x00R\x1bconvexAutomatedStoppingSpec\x12T\n" +
	"\ametrics\x18\x01 \x03(\v25.google.cloud.aiplatform.v1beta1.StudySpec.MetricSpecB\x03\xe0A\x02R\ametrics\x12]\n" +
	"\n" +
	"parameters\x18\x02 \x03(\v28.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpecB\x03\xe0A\x02R\n" +
	"parameters\x12R\n" +
	"\talgorithm\x18\x03 \x01(\x0e24.google.cloud.aiplatform.v1beta1.StudySpec.AlgorithmR\talgorithm\x12h\n" +
	"\x11observation_noise\x18\x06 \x01(\x0e2;.google.cloud.aiplatform.v1beta1.StudySpec.ObservationNoiseR\x10observationNoise\x12\x81\x01\n" +
	"\x1ameasurement_selection_type\x18\a \x01(\x0e2C.google.cloud.aiplatform.v1beta1.StudySpec.MeasurementSelectionTypeR\x18measurementSelectionType\x12{\n" +
	"\x18transfer_learning_config\x18\n" +
	" \x01(\v2A.google.cloud.aiplatform.v1beta1.StudySpec.TransferLearningConfigR\x16transferLearningConfig\x12w\n" +
	"\x15study_stopping_config\x18\v \x01(\v2>.google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfigH\x01R\x13studyStoppingConfig\x88\x01\x01\x1a\x84\x04\n" +
	"\n" +
	"MetricSpec\x12 \n" +
	"\tmetric_id\x18\x01 \x01(\tB\x03\xe0A\x02R\bmetricId\x12W\n" +
	"\x04goal\x18\x02 \x01(\x0e2>.google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.GoalTypeB\x03\xe0A\x02R\x04goal\x12r\n" +
	"\rsafety_config\x18\x03 \x01(\v2H.google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.SafetyMetricConfigH\x00R\fsafetyConfig\x88\x01\x01\x1a\xb1\x01\n" +
	"\x12SafetyMetricConfig\x12)\n" +
	"\x10safety_threshold\x18\x01 \x01(\x01R\x0fsafetyThreshold\x12K\n" +
	" desired_min_safe_trials_fraction\x18\x02 \x01(\x01H\x00R\x1cdesiredMinSafeTrialsFraction\x88\x01\x01B#\n" +
	"!_desired_min_safe_trials_fraction\"A\n" +
	"\bGoalType\x12\x19\n" +
	"\x15GOAL_TYPE_UNSPECIFIED\x10\x00\x12\f\n" +
	"\bMAXIMIZE\x10\x01\x12\f\n" +
	"\bMINIMIZE\x10\x02B\x10\n" +
	"\x0e_safety_config\x1a\xda\x11\n" +
	"\rParameterSpec\x12v\n" +
	"\x11double_value_spec\x18\x02 \x01(\v2H.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DoubleValueSpecH\x00R\x0fdoubleValueSpec\x12y\n" +
	"\x12integer_value_spec\x18\x03 \x01(\v2I.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.IntegerValueSpecH\x00R\x10integerValueSpec\x12\x85\x01\n" +
	"\x16categorical_value_spec\x18\x04 \x01(\v2M.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.CategoricalValueSpecH\x00R\x14categoricalValueSpec\x12|\n" +
	"\x13discrete_value_spec\x18\x05 \x01(\v2J.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DiscreteValueSpecH\x00R\x11discreteValueSpec\x12&\n" +
	"\fparameter_id\x18\x01 \x01(\tB\x03\xe0A\x02R\vparameterId\x12a\n" +
	"\n" +
	"scale_type\x18\x06 \x01(\x0e2B.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ScaleTypeR\tscaleType\x12\x91\x01\n" +
	"\x1bconditional_parameter_specs\x18\n" +
	" \x03(\v2Q.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpecR\x19conditionalParameterSpecs\x1a\x91\x01\n" +
	"\x0fDoubleValueSpec\x12 \n" +
	"\tmin_value\x18\x01 \x01(\x01B\x03\xe0A\x02R\bminValue\x12 \n" +
	"\tmax_value\x18\x02 \x01(\x01B\x03\xe0A\x02R\bmaxValue\x12(\n" +
	"\rdefault_value\x18\x04 \x01(\x01H\x00R\fdefaultValue\x88\x01\x01B\x10\n" +
	"\x0e_default_value\x1a\x92\x01\n" +
	"\x10IntegerValueSpec\x12 \n" +
	"\tmin_value\x18\x01 \x01(\x03B\x03\xe0A\x02R\bminValue\x12 \n" +
	"\tmax_value\x18\x02 \x01(\x03B\x03\xe0A\x02R\bmaxValue\x12(\n" +
	"\rdefault_value\x18\x04 \x01(\x03H\x00R\fdefaultValue\x88\x01\x01B\x10\n" +
	"\x0e_default_value\x1ao\n" +
	"\x14CategoricalValueSpec\x12\x1b\n" +
	"\x06values\x18\x01 \x03(\tB\x03\xe0A\x02R\x06values\x12(\n" +
	"\rdefault_value\x18\x03 \x01(\tH\x00R\fdefaultValue\x88\x01\x01B\x10\n" +
	"\x0e_default_value\x1al\n" +
	"\x11DiscreteValueSpec\x12\x1b\n" +
	"\x06values\x18\x01 \x03(\x01B\x03\xe0A\x02R\x06values\x12(\n" +
	"\rdefault_value\x18\x03 \x01(\x01H\x00R\fdefaultValue\x88\x01\x01B\x10\n" +
	"\x0e_default_value\x1a\xa0\x06\n" +
	"\x18ConditionalParameterSpec\x12\xa0\x01\n" +
	"\x16parent_discrete_values\x18\x02 \x01(\v2h.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueConditionH\x00R\x14parentDiscreteValues\x12\x91\x01\n" +
	"\x11parent_int_values\x18\x03 \x01(\v2c.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueConditionH\x00R\x0fparentIntValues\x12\xa9\x01\n" +
	"\x19parent_categorical_values\x18\x04 \x01(\v2k.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueConditionH\x00R\x17parentCategoricalValues\x12d\n" +
	"\x0eparameter_spec\x18\x01 \x01(\v28.google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpecB\x03\xe0A\x02R\rparameterSpec\x1a5\n" +
	"\x16DiscreteValueCondition\x12\x1b\n" +
	"\x06values\x18\x01 \x03(\x01B\x03\xe0A\x02R\x06values\x1a0\n" +
	"\x11IntValueCondition\x12\x1b\n" +
	"\x06values\x18\x01 \x03(\x03B\x03\xe0A\x02R\x06values\x1a8\n" +
	"\x19CategoricalValueCondition\x12\x1b\n" +
	"\x06values\x18\x01 \x03(\tB\x03\xe0A\x02R\x06valuesB\x18\n" +
	"\x16parent_value_condition\"n\n" +
	"\tScaleType\x12\x1a\n" +
	"\x16SCALE_TYPE_UNSPECIFIED\x10\x00\x12\x15\n" +
	"\x11UNIT_LINEAR_SCALE\x10\x01\x12\x12\n" +
	"\x0eUNIT_LOG_SCALE\x10\x02\x12\x1a\n" +
	"\x16UNIT_REVERSE_LOG_SCALE\x10\x03B\x16\n" +
	"\x14parameter_value_spec\x1aS\n" +
	"\x1fDecayCurveAutomatedStoppingSpec\x120\n" +
	"\x14use_elapsed_duration\x18\x01 \x01(\bR\x12useElapsedDuration\x1aO\n" +
	"\x1bMedianAutomatedStoppingSpec\x120\n" +
	"\x14use_elapsed_duration\x18\x01 \x01(\bR\x12useElapsedDuration\x1a\xee\x02\n" +
	"\x1bConvexAutomatedStoppingSpec\x12$\n" +
	"\x0emax_step_count\x18\x01 \x01(\x03R\fmaxStepCount\x12$\n" +
	"\x0emin_step_count\x18\x02 \x01(\x03R\fminStepCount\x122\n" +
	"\x15min_measurement_count\x18\x03 \x01(\x03R\x13minMeasurementCount\x12?\n" +
	"\x1clearning_rate_parameter_name\x18\x04 \x01(\tR\x19learningRateParameterName\x120\n" +
	"\x14use_elapsed_duration\x18\x05 \x01(\bR\x12useElapsedDuration\x12>\n" +
	"\x19update_all_stopped_trials\x18\x06 \x01(\bH\x00R\x16updateAllStoppedTrials\x88\x01\x01B\x1c\n" +
	"\x1a_update_all_stopped_trials\x1a\xf3\x01\n" +
	"\x10ConvexStopConfig\x12\"\n" +
	"\rmax_num_steps\x18\x01 \x01(\x03R\vmaxNumSteps\x12\"\n" +
	"\rmin_num_steps\x18\x02 \x01(\x03R\vminNumSteps\x121\n" +
	"\x14autoregressive_order\x18\x03 \x01(\x03R\x13autoregressiveOrder\x12?\n" +
	"\x1clearning_rate_parameter_name\x18\x04 \x01(\tR\x19learningRateParameterName\x12\x1f\n" +
	"\vuse_seconds\x18\x05 \x01(\bR\n" +
	"useSeconds:\x02\x18\x01\x1a\x85\x01\n" +
	"\x16TransferLearningConfig\x12:\n" +
	"\x19disable_transfer_learning\x18\x01 \x01(\bR\x17disableTransferLearning\x12/\n" +
	"\x11prior_study_names\x18\x02 \x03(\tB\x03\xe0A\x03R\x0fpriorStudyNames\x1a\xf6\x04\n" +
	"\x13StudyStoppingConfig\x12D\n" +
	"\x10should_stop_asap\x18\x01 \x01(\v2\x1a.google.protobuf.BoolValueR\x0eshouldStopAsap\x12r\n" +
	"\x1aminimum_runtime_constraint\x18\x02 \x01(\v24.google.cloud.aiplatform.v1beta1.StudyTimeConstraintR\x18minimumRuntimeConstraint\x12r\n" +
	"\x1amaximum_runtime_constraint\x18\x03 \x01(\v24.google.cloud.aiplatform.v1beta1.StudyTimeConstraintR\x18maximumRuntimeConstraint\x12A\n" +
	"\x0emin_num_trials\x18\x04 \x01(\v2\x1b.google.protobuf.Int32ValueR\fminNumTrials\x12A\n" +
	"\x0emax_num_trials\x18\x05 \x01(\v2\x1b.google.protobuf.Int32ValueR\fmaxNumTrials\x12W\n" +
	"\x1amax_num_trials_no_progress\x18\x06 \x01(\v2\x1b.google.protobuf.Int32ValueR\x16maxNumTrialsNoProgress\x12R\n" +
	"\x18max_duration_no_progress\x18\a \x01(\v2\x19.google.protobuf.DurationR\x15maxDurationNoProgress\"J\n" +
	"\tAlgorithm\x12\x19\n" +
	"\x15ALGORITHM_UNSPECIFIED\x10\x00\x12\x0f\n" +
	"\vGRID_SEARCH\x10\x02\x12\x11\n" +
	"\rRANDOM_SEARCH\x10\x03\"H\n" +
	"\x10ObservationNoise\x12!\n" +
	"\x1dOBSERVATION_NOISE_UNSPECIFIED\x10\x00\x12\a\n" +
	"\x03LOW\x10\x01\x12\b\n" +
	"\x04HIGH\x10\x02\"r\n" +
	"\x18MeasurementSelectionType\x12*\n" +
	"&MEASUREMENT_SELECTION_TYPE_UNSPECIFIED\x10\x00\x12\x14\n" +
	"\x10LAST_MEASUREMENT\x10\x01\x12\x14\n" +
	"\x10BEST_MEASUREMENT\x10\x02B\x19\n" +
	"\x17automated_stopping_specB\x18\n" +
	"\x16_study_stopping_config\"\x97\x02\n" +
	"\vMeasurement\x12I\n" +
	"\x10elapsed_duration\x18\x01 \x01(\v2\x19.google.protobuf.DurationB\x03\xe0A\x03R\x0felapsedDuration\x12\"\n" +
	"\n" +
	"step_count\x18\x02 \x01(\x03B\x03\xe0A\x03R\tstepCount\x12R\n" +
	"\ametrics\x18\x03 \x03(\v23.google.cloud.aiplatform.v1beta1.Measurement.MetricB\x03\xe0A\x03R\ametrics\x1aE\n" +
	"\x06Metric\x12 \n" +
	"\tmetric_id\x18\x01 \x01(\tB\x03\xe0A\x03R\bmetricId\x12\x19\n" +
	"\x05value\x18\x02 \x01(\x01B\x03\xe0A\x03R\x05valueB\xe1\x01\n" +
	"#com.google.cloud.aiplatform.v1beta1B\n" +
	"StudyProtoP\x01ZCcloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb\xaa\x02\x1fGoogle.Cloud.AIPlatform.V1Beta1\xca\x02\x1fGoogle\\Cloud\\AIPlatform\\V1beta1\xea\x02\"Google::Cloud::AIPlatform::V1beta1b\x06proto3"

var (
	file_google_cloud_aiplatform_v1beta1_study_proto_rawDescOnce sync.Once
	file_google_cloud_aiplatform_v1beta1_study_proto_rawDescData []byte
)

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(unsafe.Slice(unsafe.StringData(file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc), len(file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc)))
	})
	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 = []any{
	(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
	}
	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3].OneofWrappers = []any{
		(*StudyTimeConstraint_MaxDuration)(nil),
		(*StudyTimeConstraint_EndTime)(nil),
	}
	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4].OneofWrappers = []any{
		(*StudySpec_DecayCurveStoppingSpec)(nil),
		(*StudySpec_MedianAutomatedStoppingSpec_)(nil),
		(*StudySpec_ConvexStopConfig_)(nil),
		(*StudySpec_ConvexAutomatedStoppingSpec_)(nil),
	}
	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8].OneofWrappers = []any{}
	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9].OneofWrappers = []any{
		(*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 = []any{}
	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16].OneofWrappers = []any{}
	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17].OneofWrappers = []any{}
	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18].OneofWrappers = []any{}
	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19].OneofWrappers = []any{}
	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[20].OneofWrappers = []any{}
	file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[21].OneofWrappers = []any{
		(*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: unsafe.Slice(unsafe.StringData(file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc), len(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_goTypes = nil
	file_google_cloud_aiplatform_v1beta1_study_proto_depIdxs = nil
}
