ZenML · Arazzo Workflow

ZenML Register Stack

Version 1.0.0

Discover available stack components, assemble them into a new stack, and confirm the stack was created.

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

Provider

zenml

Workflows

register-stack
Build a new stack from existing components and verify it persisted.
Lists stack components to discover available infrastructure, creates a stack that wires the supplied component-type-to-ids map, and reads the stack back by id.
3 steps inputs: accessToken, components, description, stackName outputs: components, stackId, stackName
1
listComponents
listStackComponents
List the registered stack components so their ids can be referenced when assembling the stack.
2
createStack
createStack
Create the stack with the supplied name and component map.
3
confirmStack
getStack
Read the newly created stack back by id to confirm it was persisted.

Source API Descriptions

Arazzo Workflow Specification

zenml-register-stack-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: ZenML Register Stack
  summary: Discover available stack components, assemble them into a new stack, and confirm the stack was created.
  description: >-
    Assembles a ZenML stack from existing stack components. The workflow lists
    the registered stack components so their ids can be referenced, creates a
    new stack that maps component types to those component ids, and then reads
    the stack back by id to confirm it 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: register-stack
  summary: Build a new stack from existing components and verify it persisted.
  description: >-
    Lists stack components to discover available infrastructure, creates a
    stack that wires the supplied component-type-to-ids map, and reads the
    stack back by id.
  inputs:
    type: object
    required:
    - accessToken
    - stackName
    - components
    properties:
      accessToken:
        type: string
        description: ZenML JWT access token obtained from the login endpoint.
      stackName:
        type: string
        description: The name to give the new stack.
      description:
        type: string
        description: Optional description of the stack.
      components:
        type: object
        description: >-
          Map of component type (e.g. orchestrator, artifact_store) to an array
          of component uuids that make up the stack.
  steps:
  - stepId: listComponents
    description: >-
      List the registered stack components so their ids can be referenced when
      assembling the stack.
    operationId: listStackComponents
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: page
      in: query
      value: 1
    - name: size
      in: query
      value: 100
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstComponentId: $response.body#/items/0/id
  - stepId: createStack
    description: >-
      Create the stack with the supplied name and component map.
    operationId: createStack
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.stackName
        description: $inputs.description
        components: $inputs.components
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      stackId: $response.body#/id
  - stepId: confirmStack
    description: >-
      Read the newly created stack back by id to confirm it was persisted.
    operationId: getStack
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: stack_id
      in: path
      value: $steps.createStack.outputs.stackId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      stackId: $response.body#/id
      stackName: $response.body#/name
      components: $response.body#/components
  outputs:
    stackId: $steps.confirmStack.outputs.stackId
    stackName: $steps.confirmStack.outputs.stackName
    components: $steps.confirmStack.outputs.components