# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/aiplatform/v1/study.proto

require 'google/api/field_behavior_pb'
require 'google/api/resource_pb'
require 'google/protobuf/duration_pb'
require 'google/protobuf/struct_pb'
require 'google/protobuf/timestamp_pb'
require 'google/protobuf'

Google::Protobuf::DescriptorPool.generated_pool.build do
  add_file("google/cloud/aiplatform/v1/study.proto", :syntax => :proto3) do
    add_message "google.cloud.aiplatform.v1.Study" do
      optional :name, :string, 1
      optional :display_name, :string, 2
      optional :study_spec, :message, 3, "google.cloud.aiplatform.v1.StudySpec"
      optional :state, :enum, 4, "google.cloud.aiplatform.v1.Study.State"
      optional :create_time, :message, 5, "google.protobuf.Timestamp"
      optional :inactive_reason, :string, 6
    end
    add_enum "google.cloud.aiplatform.v1.Study.State" do
      value :STATE_UNSPECIFIED, 0
      value :ACTIVE, 1
      value :INACTIVE, 2
      value :COMPLETED, 3
    end
    add_message "google.cloud.aiplatform.v1.Trial" do
      optional :name, :string, 1
      optional :id, :string, 2
      optional :state, :enum, 3, "google.cloud.aiplatform.v1.Trial.State"
      repeated :parameters, :message, 4, "google.cloud.aiplatform.v1.Trial.Parameter"
      optional :final_measurement, :message, 5, "google.cloud.aiplatform.v1.Measurement"
      repeated :measurements, :message, 6, "google.cloud.aiplatform.v1.Measurement"
      optional :start_time, :message, 7, "google.protobuf.Timestamp"
      optional :end_time, :message, 8, "google.protobuf.Timestamp"
      optional :client_id, :string, 9
      optional :infeasible_reason, :string, 10
      optional :custom_job, :string, 11
      map :web_access_uris, :string, :string, 12
    end
    add_message "google.cloud.aiplatform.v1.Trial.Parameter" do
      optional :parameter_id, :string, 1
      optional :value, :message, 2, "google.protobuf.Value"
    end
    add_enum "google.cloud.aiplatform.v1.Trial.State" do
      value :STATE_UNSPECIFIED, 0
      value :REQUESTED, 1
      value :ACTIVE, 2
      value :STOPPING, 3
      value :SUCCEEDED, 4
      value :INFEASIBLE, 5
    end
    add_message "google.cloud.aiplatform.v1.StudySpec" do
      repeated :metrics, :message, 1, "google.cloud.aiplatform.v1.StudySpec.MetricSpec"
      repeated :parameters, :message, 2, "google.cloud.aiplatform.v1.StudySpec.ParameterSpec"
      optional :algorithm, :enum, 3, "google.cloud.aiplatform.v1.StudySpec.Algorithm"
      optional :observation_noise, :enum, 6, "google.cloud.aiplatform.v1.StudySpec.ObservationNoise"
      optional :measurement_selection_type, :enum, 7, "google.cloud.aiplatform.v1.StudySpec.MeasurementSelectionType"
      oneof :automated_stopping_spec do
        optional :decay_curve_stopping_spec, :message, 4, "google.cloud.aiplatform.v1.StudySpec.DecayCurveAutomatedStoppingSpec"
        optional :median_automated_stopping_spec, :message, 5, "google.cloud.aiplatform.v1.StudySpec.MedianAutomatedStoppingSpec"
        optional :convex_automated_stopping_spec, :message, 9, "google.cloud.aiplatform.v1.StudySpec.ConvexAutomatedStoppingSpec"
      end
    end
    add_message "google.cloud.aiplatform.v1.StudySpec.MetricSpec" do
      optional :metric_id, :string, 1
      optional :goal, :enum, 2, "google.cloud.aiplatform.v1.StudySpec.MetricSpec.GoalType"
    end
    add_enum "google.cloud.aiplatform.v1.StudySpec.MetricSpec.GoalType" do
      value :GOAL_TYPE_UNSPECIFIED, 0
      value :MAXIMIZE, 1
      value :MINIMIZE, 2
    end
    add_message "google.cloud.aiplatform.v1.StudySpec.ParameterSpec" do
      optional :parameter_id, :string, 1
      optional :scale_type, :enum, 6, "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ScaleType"
      repeated :conditional_parameter_specs, :message, 10, "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec"
      oneof :parameter_value_spec do
        optional :double_value_spec, :message, 2, "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.DoubleValueSpec"
        optional :integer_value_spec, :message, 3, "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.IntegerValueSpec"
        optional :categorical_value_spec, :message, 4, "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.CategoricalValueSpec"
        optional :discrete_value_spec, :message, 5, "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.DiscreteValueSpec"
      end
    end
    add_message "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.DoubleValueSpec" do
      optional :min_value, :double, 1
      optional :max_value, :double, 2
      proto3_optional :default_value, :double, 4
    end
    add_message "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.IntegerValueSpec" do
      optional :min_value, :int64, 1
      optional :max_value, :int64, 2
      proto3_optional :default_value, :int64, 4
    end
    add_message "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.CategoricalValueSpec" do
      repeated :values, :string, 1
      proto3_optional :default_value, :string, 3
    end
    add_message "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.DiscreteValueSpec" do
      repeated :values, :double, 1
      proto3_optional :default_value, :double, 3
    end
    add_message "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec" do
      optional :parameter_spec, :message, 1, "google.cloud.aiplatform.v1.StudySpec.ParameterSpec"
      oneof :parent_value_condition do
        optional :parent_discrete_values, :message, 2, "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition"
        optional :parent_int_values, :message, 3, "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition"
        optional :parent_categorical_values, :message, 4, "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition"
      end
    end
    add_message "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition" do
      repeated :values, :double, 1
    end
    add_message "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition" do
      repeated :values, :int64, 1
    end
    add_message "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition" do
      repeated :values, :string, 1
    end
    add_enum "google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ScaleType" do
      value :SCALE_TYPE_UNSPECIFIED, 0
      value :UNIT_LINEAR_SCALE, 1
      value :UNIT_LOG_SCALE, 2
      value :UNIT_REVERSE_LOG_SCALE, 3
    end
    add_message "google.cloud.aiplatform.v1.StudySpec.DecayCurveAutomatedStoppingSpec" do
      optional :use_elapsed_duration, :bool, 1
    end
    add_message "google.cloud.aiplatform.v1.StudySpec.MedianAutomatedStoppingSpec" do
      optional :use_elapsed_duration, :bool, 1
    end
    add_message "google.cloud.aiplatform.v1.StudySpec.ConvexAutomatedStoppingSpec" do
      optional :max_step_count, :int64, 1
      optional :min_step_count, :int64, 2
      optional :min_measurement_count, :int64, 3
      optional :learning_rate_parameter_name, :string, 4
      optional :use_elapsed_duration, :bool, 5
    end
    add_enum "google.cloud.aiplatform.v1.StudySpec.Algorithm" do
      value :ALGORITHM_UNSPECIFIED, 0
      value :GRID_SEARCH, 2
      value :RANDOM_SEARCH, 3
    end
    add_enum "google.cloud.aiplatform.v1.StudySpec.ObservationNoise" do
      value :OBSERVATION_NOISE_UNSPECIFIED, 0
      value :LOW, 1
      value :HIGH, 2
    end
    add_enum "google.cloud.aiplatform.v1.StudySpec.MeasurementSelectionType" do
      value :MEASUREMENT_SELECTION_TYPE_UNSPECIFIED, 0
      value :LAST_MEASUREMENT, 1
      value :BEST_MEASUREMENT, 2
    end
    add_message "google.cloud.aiplatform.v1.Measurement" do
      optional :elapsed_duration, :message, 1, "google.protobuf.Duration"
      optional :step_count, :int64, 2
      repeated :metrics, :message, 3, "google.cloud.aiplatform.v1.Measurement.Metric"
    end
    add_message "google.cloud.aiplatform.v1.Measurement.Metric" do
      optional :metric_id, :string, 1
      optional :value, :double, 2
    end
  end
end

module Google
  module Cloud
    module AIPlatform
      module V1
        Study = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.Study").msgclass
        Study::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.Study.State").enummodule
        Trial = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.Trial").msgclass
        Trial::Parameter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.Trial.Parameter").msgclass
        Trial::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.Trial.State").enummodule
        StudySpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec").msgclass
        StudySpec::MetricSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.MetricSpec").msgclass
        StudySpec::MetricSpec::GoalType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.MetricSpec.GoalType").enummodule
        StudySpec::ParameterSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.ParameterSpec").msgclass
        StudySpec::ParameterSpec::DoubleValueSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.ParameterSpec.DoubleValueSpec").msgclass
        StudySpec::ParameterSpec::IntegerValueSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.ParameterSpec.IntegerValueSpec").msgclass
        StudySpec::ParameterSpec::CategoricalValueSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.ParameterSpec.CategoricalValueSpec").msgclass
        StudySpec::ParameterSpec::DiscreteValueSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.ParameterSpec.DiscreteValueSpec").msgclass
        StudySpec::ParameterSpec::ConditionalParameterSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec").msgclass
        StudySpec::ParameterSpec::ConditionalParameterSpec::DiscreteValueCondition = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition").msgclass
        StudySpec::ParameterSpec::ConditionalParameterSpec::IntValueCondition = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition").msgclass
        StudySpec::ParameterSpec::ConditionalParameterSpec::CategoricalValueCondition = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition").msgclass
        StudySpec::ParameterSpec::ScaleType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ScaleType").enummodule
        StudySpec::DecayCurveAutomatedStoppingSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.DecayCurveAutomatedStoppingSpec").msgclass
        StudySpec::MedianAutomatedStoppingSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.MedianAutomatedStoppingSpec").msgclass
        StudySpec::ConvexAutomatedStoppingSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.ConvexAutomatedStoppingSpec").msgclass
        StudySpec::Algorithm = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.Algorithm").enummodule
        StudySpec::ObservationNoise = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.ObservationNoise").enummodule
        StudySpec::MeasurementSelectionType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.StudySpec.MeasurementSelectionType").enummodule
        Measurement = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.Measurement").msgclass
        Measurement::Metric = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.aiplatform.v1.Measurement.Metric").msgclass
      end
    end
  end
end