🚀 New! Kestra raises $3 million to grow Learn more

Depending on the value passed as the input, the will flow branch to different tasks. If the is no matching value, the defaults task is used.

yaml
id: switch
namespace: io.kestra.demo

description: |
  Depending on the value passed as the input, the will flow branch to different tasks.
  If no matching value, the `defaults` task is used.

inputs:
  - name: string
    type: STRING

tasks:
  - id: parent-seq
    type: io.kestra.core.tasks.flows.Switch
    value: "{{inputs.string}}"
    cases:
      FIRST:
        - id: first
          type: io.kestra.core.tasks.debugs.Return
          format: "{{task.id}} > {{taskrun.startDate}}"
      SECOND:
        - id: second1
          type: io.kestra.core.tasks.debugs.Return
          format: "{{task.id}} > {{taskrun.startDate}}"
        - id: second2
          type: io.kestra.core.tasks.debugs.Return
          format: "{{task.id}} > {{taskrun.startDate}}"
      THIRD:
        - id: third1
          type: io.kestra.core.tasks.flows.Sequential
          tasks:
            - id: failed
              type: io.kestra.plugin.scripts.shell.Commands
              runner: PROCESS
              commands:
                - 'exit 1'
          errors:
            - id: error1
              type: io.kestra.core.tasks.debugs.Return
              format: "Error Trigger ! {{task.id}}"
    defaults:
      - id: default
        type: io.kestra.core.tasks.debugs.Return
        format: "{{task.id}} > {{taskrun.startDate}}"