Argo Workflows · Schema

io.argoproj.workflow.v1alpha1.WorkflowStep

WorkflowStep is a reference to a template to execute in a series of step Note: CEL validation cannot check withItems (Schemaless) or inline (PreserveUnknownFields) fields.

CNCFContainersData ProcessingKubernetesMachine-LearningOpen-SourceWorkflow Engine

Properties

Name Type Description
arguments object Arguments hold arguments to the template
continueOn object ContinueOn makes argo to proceed with the following step even if this step fails. Errors and Failed states can be specified
hooks object Hooks holds the lifecycle hook which is invoked at lifecycle of step, irrespective of the success, failure, or error status of the primary step
inline object Inline is the template. Template must be empty if this is declared (and vice-versa). Note: This struct is defined recursively, since the inline template can potentially contain steps/DAGs that also ha
name string Name of the step
onExit string OnExit is a template reference which is invoked at the end of the template, irrespective of the success, failure, or error of the primary template. Deprecated: Use Hooks[exit].Template instead.
template string Template is the name of the template to execute as the step
templateRef object TemplateRef is the reference to the template resource to execute as the step.
when string When is an expression in which the step should conditionally execute
withItems array WithItems expands a step into multiple parallel steps from the items in the list Note: The structure of WithItems is free-form, so we need "x-kubernetes-preserve-unknown-fields: true" in the validatio
withParam string WithParam expands a step into multiple parallel steps from the value in the parameter, which is expected to be a JSON list.
withSequence object WithSequence expands a step into a numeric sequence
View JSON Schema on GitHub

JSON Schema

argo-workflows-io-argoproj-workflow-v1alpha1-workflow-step-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/argo-workflows/refs/heads/main/json-schema/argo-workflows-io-argoproj-workflow-v1alpha1-workflow-step-schema.json",
  "title": "io.argoproj.workflow.v1alpha1.WorkflowStep",
  "description": "WorkflowStep is a reference to a template to execute in a series of step Note: CEL validation cannot check withItems (Schemaless) or inline (PreserveUnknownFields) fields.",
  "type": "object",
  "properties": {
    "arguments": {
      "description": "Arguments hold arguments to the template",
      "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.Arguments"
    },
    "continueOn": {
      "description": "ContinueOn makes argo to proceed with the following step even if this step fails. Errors and Failed states can be specified",
      "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.ContinueOn"
    },
    "hooks": {
      "description": "Hooks holds the lifecycle hook which is invoked at lifecycle of step, irrespective of the success, failure, or error status of the primary step",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.LifecycleHook"
      }
    },
    "inline": {
      "description": "Inline is the template. Template must be empty if this is declared (and vice-versa). Note: This struct is defined recursively, since the inline template can potentially contain steps/DAGs that also has an \"inline\" field. Kubernetes doesn't allow recursive types, so we need \"x-kubernetes-preserve-unknown-fields: true\" in the validation schema.",
      "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.Template"
    },
    "name": {
      "description": "Name of the step",
      "type": "string"
    },
    "onExit": {
      "description": "OnExit is a template reference which is invoked at the end of the template, irrespective of the success, failure, or error of the primary template.\n\nDeprecated: Use Hooks[exit].Template instead.",
      "type": "string"
    },
    "template": {
      "description": "Template is the name of the template to execute as the step",
      "type": "string"
    },
    "templateRef": {
      "description": "TemplateRef is the reference to the template resource to execute as the step.",
      "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.TemplateRef"
    },
    "when": {
      "description": "When is an expression in which the step should conditionally execute",
      "type": "string"
    },
    "withItems": {
      "description": "WithItems expands a step into multiple parallel steps from the items in the list Note: The structure of WithItems is free-form, so we need \"x-kubernetes-preserve-unknown-fields: true\" in the validation schema.",
      "type": "array",
      "items": {
        "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.Item"
      }
    },
    "withParam": {
      "description": "WithParam expands a step into multiple parallel steps from the value in the parameter, which is expected to be a JSON list.",
      "type": "string"
    },
    "withSequence": {
      "description": "WithSequence expands a step into a numeric sequence",
      "$ref": "#/definitions/io.argoproj.workflow.v1alpha1.Sequence"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/argo-workflows-io-argoproj-workflow-v1alpha1-workflow-step"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

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.

A second provider on the same verified email joins the account you already have.