Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
3489d21
add pipelineJob Resource
victorsantos-cit Oct 25, 2025
efd8b50
Add minimal Vertex AI pipeline job template
victorsantos-cit Oct 25, 2025
b5440a3
Remove location and datasetId from PipelineJob.yaml
victorsantos-cit Oct 25, 2025
2cb13be
Add Google project resource and update pipeline job
victorsantos-cit Oct 27, 2025
31bc4fb
Remove project field from PipelineJob configuration
victorsantos-cit Oct 27, 2025
d254ffe
Add provider to Vertex AI pipeline job template
victorsantos-cit Oct 27, 2025
f3fffd7
Add min_version field to PipelineJob properties
victorsantos-cit Oct 28, 2025
7249140
Update vertex_ai_pipeline_job_minimal.tf.tmpl
victorsantos-cit Nov 1, 2025
87da4f5
Refactor Vertex AI pipeline job template
victorsantos-cit Nov 3, 2025
66429dd
Merge branch 'GoogleCloudPlatform:main' into feat/add-vertex-ia-pipel…
victorsantos-cit Nov 10, 2025
37b0e21
Add runtimeConfig to PipelineJob.yaml
victorsantos-cit Nov 11, 2025
c04c02b
Refactor Vertex AI pipeline job configuration
victorsantos-cit Nov 11, 2025
452eff1
Merge branch 'GoogleCloudPlatform:main' into feat/add-vertex-ia-pipel…
victorsantos-cit Nov 23, 2025
ec9833c
fix: account creat method
victorsantos-cit Jan 7, 2026
b3bea61
Refactor google_vertex_ai_pipeline_job resource
victorsantos-cit Jan 14, 2026
5f7deba
Merge branch 'GoogleCloudPlatform:main' into feat/add-vertex-ia-pipel…
victorsantos-cit Feb 9, 2026
3cf609b
Update API reference URL in PipelineJob.yaml
victorsantos-cit Feb 19, 2026
ea7a1c2
Refine PipelineJob.yaml properties for clarity
victorsantos-cit Feb 19, 2026
5a2d4db
Update API version in PipelineJob.yaml
victorsantos-cit Feb 19, 2026
3a0a574
Remove pscInterfaceConfig from PipelineJob.yaml
victorsantos-cit Feb 19, 2026
2c1c5a7
Change types from Map and NestedObject to Array
victorsantos-cit Feb 19, 2026
9fced5e
Update API URL to use stable version
victorsantos-cit Feb 19, 2026
456b11f
fix PipelineJob
victorsantos-cit Feb 20, 2026
61ae833
fix PipelineJob Pipeline Spec
victorsantos-cit Feb 20, 2026
dc68acc
fix Psc Interface
victorsantos-cit Feb 20, 2026
b3391fd
Update PipelineJob.yaml
victorsantos-cit Mar 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
171 changes: 171 additions & 0 deletions mmv1/products/vertexai/PipelineJob.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
# Copyright 2024 Google Inc.
# 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.

---
name: 'PipelineJob'
description: |-
Represents a Vertex AI PipelineJob (an instance of a machine learning pipeline).
This resource mirrors the v1beta1 PipelineJob schema from the Vertex AI REST API.
min_version: 'beta'
references:
guides:
'Vertex AI Pipelines': 'https://cloud.google.com/vertex-ai/docs/pipelines'
api: 'https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.pipelineJobs'
docs:
base_url: 'projects/{{project}}/locations/{{region}}/pipelineJobs'
self_link: 'projects/{{project}}/locations/{{region}}/pipelineJobs/{{name}}'
update_verb: 'PATCH'
update_mask: true
timeouts:
insert_minutes: 20
update_minutes: 20
delete_minutes: 20
async:
actions: ['create', 'delete']
type: 'OpAsync'
operation:
base_url: 'projects/{{project}}/locations/{{region}}/operations/{{op_id}}'
result:
resource_inside_response: true
custom_code:
examples:
- name: 'vertex_ai_pipeline_job_minimal'
primary_resource_id: 'pipelineJob'
exclude_test: true
test_env_vars:
org_id: 'ORG_ID'
project: 'PROJECT_NAME'
parameters:
- name: 'region'
type: String
min_version: 'beta'
description: The region of the PipelineJob. eg us-central1
url_param_only: true
immutable: true
default_from_api: true
properties:
- name: 'name'
min_version: 'beta'
type: String
description: The resource name of the PipelineJob.
output: true
- name: 'displayName'
min_version: 'beta'
type: String
description: The display name of the Pipeline.
required: true
- name: 'createTime'
min_version: 'beta'
type: String
description: Pipeline creation time (RFC3339 UTC format).
output: true
- name: 'startTime'
min_version: 'beta'
type: String
description: Pipeline start time (RFC3339 UTC format).
output: true
- name: 'endTime'
min_version: 'beta'
type: String
description: Pipeline end time (RFC3339 UTC format).
output: true
- name: 'updateTime'
min_version: 'beta'
type: String
description: Timestamp when this PipelineJob was most recently updated.
output: true
- name: 'runtimeConfig'
min_version: 'beta'
type: NestedObject
description: Optional. Runtime config controlling the runtime behavior of this Extension.
properties:
- name: 'gcsOutputDirectory'
type: String
- name: pipelineSpec
type: String
send_empty_value: true
description: A compiled definition of a pipeline, represented as a JSON object.
validation:
function: 'validation.StringIsJSON'
- name: pscInterfaceConfig
type: String
send_empty_value: true
description: JSON-encoded PSC interface configuration.
validation:
function: 'validation.StringIsJSON'
- name: 'state'
min_version: 'beta'
type: Enum
description: The detailed state of the job.
output: true
enum_values:
- PIPELINE_STATE_UNSPECIFIED
- PIPELINE_STATE_QUEUED
- PIPELINE_STATE_PENDING
- PIPELINE_STATE_RUNNING
- PIPELINE_STATE_SUCCEEDED
- PIPELINE_STATE_FAILED
- PIPELINE_STATE_CANCELLING
- PIPELINE_STATE_CANCELLED
- PIPELINE_STATE_PAUSED
- name: 'labels'
min_version: 'beta'
send_empty_value: true
type: KeyValueLabels
description: The spec of the pipeline. Stored as free-form JSON/object.
- name: 'serviceAccount'
min_version: 'beta'
type: String
description: The service account that the pipeline workload runs as.
- name: 'network'
min_version: 'beta'
type: String
send_empty_value: true
description: The full name of the Compute Engine network to which the Pipeline Job's workload should be peered.
- name: 'templateUri'
min_version: 'beta'
type: String
description: A template uri from where the PipelineJob.pipeline_spec, if empty, will be downloaded. Currently, only uri from Vertex Template Registry & Gallery is supported. Reference to https://cloud.google.com/vertex-ai/docs/pipelines/create-pipeline-template.
- name: 'reservedIpRanges'
min_version: 'beta'
send_empty_value: true
type: Array
description: A list of names for reserved IP ranges under the VPC network.
item_type:
type: String
- name: 'scheduleName'
min_version: 'beta'
type: String
description: The schedule resource name if created by Schedule API.
output: true
- name: 'preflightValidations'
min_version: 'beta'
send_empty_value: true
type: Boolean
description: Whether to do component level validations before job creation.
- name: 'satisfiesPzs'
min_version: 'beta'
send_empty_value: true
type: Boolean
description: Reserved for future use.
output: true
- name: 'satisfiesPzi'
min_version: 'beta'
type: Boolean
description: Reserved for future use.
send_empty_value: true
- name: 'originalPipelineJobId'
min_version: 'beta'
send_empty_value: true
type: String
description: The original pipeline job id if this job is a rerun of a previous job.
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
resource "google_project" "project" {
provider = google-beta
name = "{{index $.TestEnvVars "project"}}"
project_id = "{{index $.TestEnvVars "project"}}"
org_id = "{{index $.TestEnvVars "org_id"}}"
deletion_policy = "DELETE"
}

resource "google_service_account" "pipeline_sa" {
provider = google-beta
account_id = "pipeline-owner-sa"
project = google_project.project.project_id
display_name = "Pipeline Owner Service Account"
}

resource "google_vertex_ai_metadata_store" "default_test" {
provider = google-beta
name = "default"
project = google_project.project.project_id
region = "us-east1"
}

resource "google_project_iam_member" "pipeline_sa_roles" {
for_each = toset([
"roles/aiplatform.user",
"roles/aiplatform.serviceAgent",
"roles/storage.admin",
"roles/iam.serviceAccountUser",
"roles/aiplatform.admin"
])

provider = google-beta
project = google_project.project.project_id
role = each.key
member = "serviceAccount:${google_service_account.pipeline_sa.email}"
}

resource "google_storage_bucket" "pipeline_output" {
provider = google-beta
project = google_project.project.project_id
name = "tf-test-pipeline-output-%{random_suffix}"
location = "US"
}

resource "google_vertex_ai_pipeline_job" "primary" {
provider = google-beta
project = google_project.project.project_id
region = "us-east1"

display_name = "tf-test-example-pipeline-job%{random_suffix}"

template_uri = "gs://cloud-samples-data/ai-platform/pipelines/hello-world-pipeline.json"

runtime_config {
gcs_output_directory = "gs://${google_storage_bucket.pipeline_output.name}/outputs/"
}

service_account = google_service_account.pipeline_sa.email

depends_on = [
google_project_iam_member.pipeline_sa_roles,
google_vertex_ai_metadata_store.default_test
]
}
Loading