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