ZenML · Arazzo Workflow

ZenML Provision Pipeline

Version 1.0.0

Resolve a project, register a new pipeline in it, and confirm the pipeline was created.

1 workflow 1 source API 1 provider
View Spec View on GitHub AIMachine LearningMLOpsLLMOpsPipelinesOpen SourcePythonArazzoWorkflows

Provider

zenml

Workflows

provision-pipeline
Register a new pipeline under a resolved project and verify it persisted.
Lists projects to resolve the target project, creates a pipeline with the supplied name and spec, and reads the pipeline back by id.
3 steps inputs: accessToken, description, pipelineName, spec, version outputs: pipelineId, pipelineName
1
resolveProject
listProjects
List the available projects so a target project id can be resolved for the pipeline being created.
2
createPipeline
createPipeline
Create the pipeline under the resolved project using the supplied name, description, version, and spec.
3
confirmPipeline
getPipeline
Read the newly created pipeline back by id to confirm it was persisted.

Source API Descriptions

Arazzo Workflow Specification

zenml-provision-pipeline-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: ZenML Provision Pipeline
  summary: Resolve a project, register a new pipeline in it, and confirm the pipeline was created.
  description: >-
    Provisions a new ML pipeline definition in a ZenML project. The workflow
    lists the available projects to resolve a target project, creates the
    pipeline under that project, and then reads the pipeline back by id to
    confirm it was persisted. Every step spells out its request inline,
    including the bearer Authorization header, so the flow can be read and
    executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: zenmlApi
  url: ../openapi/zenml-openapi.yml
  type: openapi
workflows:
- workflowId: provision-pipeline
  summary: Register a new pipeline under a resolved project and verify it persisted.
  description: >-
    Lists projects to resolve the target project, creates a pipeline with the
    supplied name and spec, and reads the pipeline back by id.
  inputs:
    type: object
    required:
    - accessToken
    - pipelineName
    properties:
      accessToken:
        type: string
        description: ZenML JWT access token obtained from the login endpoint.
      pipelineName:
        type: string
        description: The name to give the new pipeline.
      description:
        type: string
        description: Optional human-readable description of the pipeline.
      version:
        type: string
        description: Optional pipeline version label.
      spec:
        type: object
        description: Optional pipeline spec object (steps, settings, etc.).
  steps:
  - stepId: resolveProject
    description: >-
      List the available projects so a target project id can be resolved for
      the pipeline being created.
    operationId: listProjects
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: page
      in: query
      value: 1
    - name: size
      in: query
      value: 20
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      projectId: $response.body#/items/0/id
  - stepId: createPipeline
    description: >-
      Create the pipeline under the resolved project using the supplied name,
      description, version, and spec.
    operationId: createPipeline
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.pipelineName
        description: $inputs.description
        version: $inputs.version
        project_id: $steps.resolveProject.outputs.projectId
        spec: $inputs.spec
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      pipelineId: $response.body#/id
  - stepId: confirmPipeline
    description: >-
      Read the newly created pipeline back by id to confirm it was persisted.
    operationId: getPipeline
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: pipeline_id
      in: path
      value: $steps.createPipeline.outputs.pipelineId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      pipelineId: $response.body#/id
      pipelineName: $response.body#/name
  outputs:
    pipelineId: $steps.confirmPipeline.outputs.pipelineId
    pipelineName: $steps.confirmPipeline.outputs.pipelineName