1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.cloud.aiplatform.v1; 18 19import "google/api/field_behavior.proto"; 20import "google/api/resource.proto"; 21import "google/cloud/aiplatform/v1/custom_job.proto"; 22import "google/cloud/aiplatform/v1/encryption_spec.proto"; 23import "google/cloud/aiplatform/v1/job_state.proto"; 24import "google/cloud/aiplatform/v1/study.proto"; 25import "google/protobuf/timestamp.proto"; 26import "google/rpc/status.proto"; 27 28option csharp_namespace = "Google.Cloud.AIPlatform.V1"; 29option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; 30option java_multiple_files = true; 31option java_outer_classname = "HyperparameterTuningJobProto"; 32option java_package = "com.google.cloud.aiplatform.v1"; 33option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; 34option ruby_package = "Google::Cloud::AIPlatform::V1"; 35 36// Represents a HyperparameterTuningJob. A HyperparameterTuningJob 37// has a Study specification and multiple CustomJobs with identical 38// CustomJob specification. 39message HyperparameterTuningJob { 40 option (google.api.resource) = { 41 type: "aiplatform.googleapis.com/HyperparameterTuningJob" 42 pattern: "projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}" 43 }; 44 45 // Output only. Resource name of the HyperparameterTuningJob. 46 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 47 48 // Required. The display name of the HyperparameterTuningJob. 49 // The name can be up to 128 characters long and can consist of any UTF-8 50 // characters. 51 string display_name = 2 [(google.api.field_behavior) = REQUIRED]; 52 53 // Required. Study configuration of the HyperparameterTuningJob. 54 StudySpec study_spec = 4 [(google.api.field_behavior) = REQUIRED]; 55 56 // Required. The desired total number of Trials. 57 int32 max_trial_count = 5 [(google.api.field_behavior) = REQUIRED]; 58 59 // Required. The desired number of Trials to run in parallel. 60 int32 parallel_trial_count = 6 [(google.api.field_behavior) = REQUIRED]; 61 62 // The number of failed Trials that need to be seen before failing 63 // the HyperparameterTuningJob. 64 // 65 // If set to 0, Vertex AI decides how many Trials must fail 66 // before the whole job fails. 67 int32 max_failed_trial_count = 7; 68 69 // Required. The spec of a trial job. The same spec applies to the CustomJobs 70 // created in all the trials. 71 CustomJobSpec trial_job_spec = 8 [(google.api.field_behavior) = REQUIRED]; 72 73 // Output only. Trials of the HyperparameterTuningJob. 74 repeated Trial trials = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 75 76 // Output only. The detailed state of the job. 77 JobState state = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; 78 79 // Output only. Time when the HyperparameterTuningJob was created. 80 google.protobuf.Timestamp create_time = 11 81 [(google.api.field_behavior) = OUTPUT_ONLY]; 82 83 // Output only. Time when the HyperparameterTuningJob for the first time 84 // entered the `JOB_STATE_RUNNING` state. 85 google.protobuf.Timestamp start_time = 12 86 [(google.api.field_behavior) = OUTPUT_ONLY]; 87 88 // Output only. Time when the HyperparameterTuningJob entered any of the 89 // following states: `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, 90 // `JOB_STATE_CANCELLED`. 91 google.protobuf.Timestamp end_time = 13 92 [(google.api.field_behavior) = OUTPUT_ONLY]; 93 94 // Output only. Time when the HyperparameterTuningJob was most recently 95 // updated. 96 google.protobuf.Timestamp update_time = 14 97 [(google.api.field_behavior) = OUTPUT_ONLY]; 98 99 // Output only. Only populated when job's state is JOB_STATE_FAILED or 100 // JOB_STATE_CANCELLED. 101 google.rpc.Status error = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; 102 103 // The labels with user-defined metadata to organize HyperparameterTuningJobs. 104 // 105 // Label keys and values can be no longer than 64 characters 106 // (Unicode codepoints), can only contain lowercase letters, numeric 107 // characters, underscores and dashes. International characters are allowed. 108 // 109 // See https://goo.gl/xmQnxf for more information and examples of labels. 110 map<string, string> labels = 16; 111 112 // Customer-managed encryption key options for a HyperparameterTuningJob. 113 // If this is set, then all resources created by the HyperparameterTuningJob 114 // will be encrypted with the provided encryption key. 115 EncryptionSpec encryption_spec = 17; 116} 117