// Copyright 2021 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. syntax = "proto3"; package google.cloud.aiplatform.v1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/aiplatform/v1/artifact.proto"; import "google/cloud/aiplatform/v1/context.proto"; import "google/cloud/aiplatform/v1/encryption_spec.proto"; import "google/cloud/aiplatform/v1/execution.proto"; import "google/cloud/aiplatform/v1/pipeline_state.proto"; import "google/cloud/aiplatform/v1/value.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; import "google/rpc/status.proto"; import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.AIPlatform.V1"; option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; option java_multiple_files = true; option java_outer_classname = "Pipeline"; option java_package = "com.google.cloud.aiplatform.v1"; option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; option ruby_package = "Google::Cloud::AIPlatform::V1"; option (google.api.resource_definition) = { type: "compute.googleapis.com/Network" pattern: "projects/{project}/global/networks/{network}" }; // An instance of a machine learning PipelineJob. message PipelineJob { option (google.api.resource) = { type: "aiplatform.googleapis.com/PipelineJob" pattern: "projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}" }; // The runtime config of a PipelineJob. message RuntimeConfig { // The runtime parameters of the PipelineJob. The parameters will be // passed into [PipelineJob.pipeline_spec][google.cloud.aiplatform.v1.PipelineJob.pipeline_spec] to replace the placeholders // at runtime. map parameters = 1; // Required. A path in a Cloud Storage bucket, which will be treated as the root // output directory of the pipeline. It is used by the system to // generate the paths of output artifacts. The artifact paths are generated // with a sub-path pattern `{job_id}/{task_id}/{output_key}` under the // specified output directory. The service account specified in this // pipeline must have the `storage.objects.get` and `storage.objects.create` // permissions for this bucket. string gcs_output_directory = 2 [(google.api.field_behavior) = REQUIRED]; } // Output only. The resource name of the PipelineJob. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // The display name of the Pipeline. // The name can be up to 128 characters long and can be consist of any UTF-8 // characters. string display_name = 2; // Output only. Pipeline creation time. google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Pipeline start time. google.protobuf.Timestamp start_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Pipeline end time. google.protobuf.Timestamp end_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Timestamp when this PipelineJob was most recently updated. google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Required. The spec of the pipeline. google.protobuf.Struct pipeline_spec = 7 [(google.api.field_behavior) = REQUIRED]; // Output only. The detailed state of the job. PipelineState state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The details of pipeline run. Not available in the list view. PipelineJobDetail job_detail = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The error that occurred during pipeline execution. // Only populated when the pipeline's state is FAILED or CANCELLED. google.rpc.Status error = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // The labels with user-defined metadata to organize PipelineJob. // // Label keys and values can be no longer than 64 characters // (Unicode codepoints), can only contain lowercase letters, numeric // characters, underscores and dashes. International characters are allowed. // // See https://goo.gl/xmQnxf for more information and examples of labels. map labels = 11; // Runtime config of the pipeline. RuntimeConfig runtime_config = 12; // Customer-managed encryption key spec for a pipelineJob. If set, this // PipelineJob and all of its sub-resources will be secured by this key. EncryptionSpec encryption_spec = 16; // The service account that the pipeline workload runs as. // If not specified, the Compute Engine default service account in the project // will be used. // See // https://cloud.google.com/compute/docs/access/service-accounts#default_service_account // // Users starting the pipeline must have the `iam.serviceAccounts.actAs` // permission on this service account. string service_account = 17; // The full name of the Compute Engine // [network](/compute/docs/networks-and-firewalls#networks) to which the // Pipeline Job's workload should be peered. For example, // `projects/12345/global/networks/myVPC`. // [Format](/compute/docs/reference/rest/v1/networks/insert) // is of the form `projects/{project}/global/networks/{network}`. // Where {project} is a project number, as in `12345`, and {network} is a // network name. // // Private services access must already be configured for the network. // Pipeline job will apply the network configuration to the GCP resources // being launched, if applied, such as Vertex AI // Training or Dataflow job. If left unspecified, the workload is not peered // with any network. string network = 18 [(google.api.resource_reference) = { type: "compute.googleapis.com/Network" }]; } // The runtime detail of PipelineJob. message PipelineJobDetail { // Output only. The context of the pipeline. google.cloud.aiplatform.v1.Context pipeline_context = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The context of the current pipeline run. google.cloud.aiplatform.v1.Context pipeline_run_context = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The runtime details of the tasks under the pipeline. repeated PipelineTaskDetail task_details = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } // The runtime detail of a task execution. message PipelineTaskDetail { // A list of artifact metadata. message ArtifactList { // Output only. A list of artifact metadata. repeated google.cloud.aiplatform.v1.Artifact artifacts = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; } // Specifies state of TaskExecution enum State { // Unspecified. STATE_UNSPECIFIED = 0; // Specifies pending state for the task. PENDING = 1; // Specifies task is being executed. RUNNING = 2; // Specifies task completed successfully. SUCCEEDED = 3; // Specifies Task cancel is in pending state. CANCEL_PENDING = 4; // Specifies task is being cancelled. CANCELLING = 5; // Specifies task was cancelled. CANCELLED = 6; // Specifies task failed. FAILED = 7; // Specifies task was skipped due to cache hit. SKIPPED = 8; // Specifies that the task was not triggered because the task's trigger // policy is not satisfied. The trigger policy is specified in the // `condition` field of [PipelineJob.pipeline_spec][google.cloud.aiplatform.v1.PipelineJob.pipeline_spec]. NOT_TRIGGERED = 9; } // Output only. The system generated ID of the task. int64 task_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The id of the parent task if the task is within a component scope. // Empty if the task is at the root level. int64 parent_task_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The user specified name of the task that is defined in // [PipelineJob.spec][]. string task_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Task create time. google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Task start time. google.protobuf.Timestamp start_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Task end time. google.protobuf.Timestamp end_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The detailed execution info. PipelineTaskExecutorDetail executor_detail = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. State of the task. State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The execution metadata of the task. google.cloud.aiplatform.v1.Execution execution = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The error that occurred during task execution. // Only populated when the task's state is FAILED or CANCELLED. google.rpc.Status error = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The runtime input artifacts of the task. map inputs = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The runtime output artifacts of the task. map outputs = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; } // The runtime detail of a pipeline executor. message PipelineTaskExecutorDetail { // The detail of a container execution. It contains the job names of the // lifecycle of a container execution. message ContainerDetail { // Output only. The name of the [CustomJob][google.cloud.aiplatform.v1.CustomJob] for the main container execution. string main_job = 1 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { type: "aiplatform.googleapis.com/CustomJob" } ]; // Output only. The name of the [CustomJob][google.cloud.aiplatform.v1.CustomJob] for the pre-caching-check container // execution. This job will be available if the // [PipelineJob.pipeline_spec][google.cloud.aiplatform.v1.PipelineJob.pipeline_spec] specifies the `pre_caching_check` hook in // the lifecycle events. string pre_caching_check_job = 2 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { type: "aiplatform.googleapis.com/CustomJob" } ]; } // The detailed info for a custom job executor. message CustomJobDetail { option deprecated = true; // Output only. The name of the [CustomJob][google.cloud.aiplatform.v1.CustomJob]. string job = 1 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.resource_reference) = { type: "aiplatform.googleapis.com/CustomJob" } ]; } oneof details { // Output only. The detailed info for a container executor. ContainerDetail container_detail = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The detailed info for a custom job executor. CustomJobDetail custom_job_detail = 2 [ deprecated = true, (google.api.field_behavior) = OUTPUT_ONLY ]; } }