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.
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: stackComponentsApi
url: ../openapi/zenml-stack-components-api-openapi.yml
type: openapi
- name: stacksApi
url: ../openapi/zenml-stacks-api-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
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.