Supported combination: platform 2026.10.1rc17 · tooling 2026.10.1rc17.
Reference

Definition syntax

Fields, expressions, and limits for the pyplines/v1 contract.

A Definition is one YAML object describing ordered Action steps. For a walkthrough, see Build a Definition.

Top-level fields

FieldRequirement
apiVersionRequired; pyplines/v1
kindRequired; Definition
nameRequired lowercase alphanumeric name with hyphen-separated segments; maximum 64 characters
descriptionOptional descriptive string
inputsOptional map of named input declarations
stepsRequired list of 1–256 ordered steps

Names are not silently normalized. Unknown fields, YAML anchors/aliases, multiple documents, and documents larger than 1 MiB are rejected. Definitions do not contain approval state, runtime identities, execution status, or server database IDs.

Input declarations

Each input declares type: string, boolean, integer, number, object, or array. Optional fields are required, default, enum, and description.

Input declaration fragment
inputs:
  service:
    type: string
    required: true
    description: Service to inspect
  mode:
    type: string
    default: inspect
    enum: [inspect, repair]

Input and secret identifiers match [A-Za-z_][A-Za-z0-9_-]{0,63}. The declaration above is a fragment; include it in a complete Definition before validation.

Step fields

FieldRequirement
nameRequired unique lowercase hyphenated name, maximum 64 characters
descriptionOptional descriptive string
usesRequired action-name@version; registry and prefix come from the Environment
whenOptional whole expression producing a boolean
withInput values matching the Action's captured contract

The step's name is its stable reference in expressions, Run responses, logs, and approval decisions. Put human-readable explanatory text in description:

Step fragment
steps:
  - name: inspect-service
    description: Check the service before deciding whether to restart it
    uses: inspect-service@2026.10.1

The pyplines/v1 contract requires name; the former id field is rejected, including when supplied alongside name. Update existing Definitions and use matching platform and tooling releases. Previously persisted Definitions and Runs are not migrated by this contract update.

References and expressions

ReferenceResolves to
inputs.NAMEA supplied or defaulted Run input
context.NAMEPublic Environment context
secrets.NAMEA versioned Environment secret
steps.NAME.outputs.NAMEA named output from an earlier step
steps.NAME.statusAn earlier step's state, including succeeded or skipped

Wrap expressions in ${{ ... }}. A whole expression preserves JSON types. Embedded interpolation accepts only scalar values. Conditions support comparisons and boolean operators, not functions, loops, or splats.

Only earlier steps may be referenced. A skipped step has no outputs; missing outputs block preparation rather than resolving to null. A false when is evaluated before resolving the skipped step's inputs.

Secret references must occupy an entire input value. They cannot appear in conditions or embedded interpolation. Sensitive schemas and secret-tainted output bindings make the receiving step private.

Validation stages

StageWhat is checked
Local pyplines validateDocument structure
DeploymentAuthoritative expressions, Action availability, contracts, and pinned images
Step preparationResolved runtime values, context, secrets, and policy requirements

An accepted Definition cannot guarantee that an external service will accept credentials or that an Action's side effects are reversible. Those behaviors belong in the Action's operational contract.