Flow Switch

Flow Switch

Certified

Route to task groups based on a value.

Renders value and matches it against cases keys; executes the corresponding task list or defaults if no match. Supports errors and finally blocks.

Useful for branching on categorical inputs without nesting multiple Ifs.

yaml
type: io.kestra.plugin.core.flow.Switch
yaml
id: switch
namespace: company.team

inputs:
  - id: string
    type: STRING
    required: true

tasks:
  - id: switch
    type: io.kestra.plugin.core.flow.Switch
    value: "{{ inputs.string }}"
    cases:
      FIRST:
        - id: first
          type: io.kestra.plugin.core.debug.Return
          format: "{{ task.id }} > {{ taskrun.startDate }}"
      SECOND:
        - id: second
          type: io.kestra.plugin.core.debug.Return
          format: "{{ task.id }} > {{ taskrun.startDate }}"
      THIRD:
        - id: third
          type: io.kestra.plugin.core.debug.Return
          format: "{{ task.id }} > {{ taskrun.startDate }}"
    defaults:
      - id: default
        type: io.kestra.plugin.core.debug.Return
        format: "{{ task.id }} > {{ taskrun.startDate }}"
Properties

The value to be evaluated

Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset failure behavior

Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
SubTypearray

The map of keys and a list of tasks to be executed if the conditional value matches the key

List of tasks to run if any tasks failed on this FlowableTask.

Defaultfalse