Switch
yaml
type: "io.kestra.core.tasks.flows.Switch"
Run tasks conditionally, i.e. decide which branch of tasks should be executed based on a given value
This task runs a set of tasks based on a given value. The value is evaluated at runtime and compared to the list of cases. If the value matches a case, the corresponding tasks are executed. If the value does not match any case, the default tasks are executed.
Examples
yaml
id: switch
namespace: io.kestra.tests
inputs:
- name: string
type: STRING
required: true
tasks:
- id: switch
type: io.kestra.core.tasks.flows.Switch
value: "{{inputs.string}}"
cases:
FIRST:
- id: 1st
type: io.kestra.core.tasks.debugs.Return
format: "{{task.id}} > {{taskrun.startDate}}"
SECOND:
- id: 2nd
type: io.kestra.core.tasks.debugs.Return
format: "{{task.id}} > {{taskrun.startDate}}"
THIRD:
- id: 3th
type: io.kestra.core.tasks.debugs.Return
format: "{{task.id}} > {{taskrun.startDate}}"
defaults:
- id: default
type: io.kestra.core.tasks.debugs.Return
format: "{{task.id}} > {{taskrun.startDate}}"
Properties
value
- Type: string
- Dynamic: ✔️
- Required: ✔️
- Min length:
1
The value to be evaluated
cases
- Type: object
- SubType: array
- Dynamic: ❌
- Required: ❌
The map of keys and a list of tasks to be executed if the conditional
value
matches the key.
defaults
- Type: array
- SubType: Task
- Dynamic: ❌
- Required: ❌
errors
- Type: array
- SubType: Task
- Dynamic: ❌
- Required: ❌
List of tasks to run if any tasks failed on this FlowableTask
Outputs
defaults
- Type: boolean
- Default:
false
value
- Type: string