Pause
type: "io.kestra.plugin.core.flow.Pause"
Pause the current execution and wait for a manual approval (either by humans or other automated processes). All tasks downstream from the Pause task will be put on hold until the execution is manually resumed from the UI. The Execution will be in a Paused state (marked in purple) and you can manually resume it by clicking on the "Resume" button in the UI, or by calling the POST API endpoint "/api/v1/executions/{executionId}/resume". The execution can also be resumed automatically after a timeout.
Examples
Pause the execution and wait for a manual approval
id: human_in_the_loop
namespace: company.team
tasks:
- id: before_approval
type: io.kestra.plugin.core.debug.Return
format: Output data that needs to be validated by a human
- id: pause
type: io.kestra.plugin.core.flow.Pause
- id: run_post_approval
type: io.kestra.plugin.scripts.shell.Commands
runner: PROCESS
commands:
- echo "Manual approval received! Continuing the execution..."
- id: post_resume
type: io.kestra.plugin.core.debug.Return
format: "{{ task.id }} started on {{ taskrun.startDate }} after the Pause"
Vacation approval process pausing the execution for approval and waiting for input from a human to approve or reject the request.
id: vacation_approval_process
namespace: company.team
inputs:
- id: request.name
type: STRING
defaults: Rick Astley
- id: request.start_date
type: DATE
defaults: 2042-07-01
- id: request.end_date
type: DATE
defaults: 2042-07-07
- id: slack_webhook_uri
type: URI
defaults: https://reqres.in/api/slack
tasks:
- id: send_approval_request
type: io.kestra.plugin.notifications.slack.SlackIncomingWebhook
url: "{{ inputs.slack_webhook_uri }}"
payload: |
{
"channel": "#vacation",
"text": "Validate holiday request for {{ inputs.request.name }}. To approve the request, click on the `Resume` button here http://localhost:28080/ui/executions/{{flow.namespace}}/{{flow.id}}/{{execution.id}}"
}
- id: wait_for_approval
type: io.kestra.plugin.core.flow.Pause
onResume:
- id: approved
description: Whether to approve the request
type: BOOLEAN
defaults: true
- id: reason
description: Reason for approval or rejection
type: STRING
defaults: Well-deserved vacation
- id: approve
type: io.kestra.plugin.core.http.Request
uri: https://reqres.in/api/products
method: POST
contentType: application/json
body: "{{ inputs.request }}"
- id: log
type: io.kestra.plugin.core.log.Log
message: Status is {{ outputs.wait_for_approval.onResume.reason }}. Process finished with {{ outputs.approve.body }}
Properties
delay
- Type: string
- Dynamic: ❌
- Required: ❌
- Format:
duration
Duration of the pause — useful if you want to pause the execution for a fixed amount of time.
The delay is a string in the ISO 8601 Duration format, e.g.
PT1H
for 1 hour,PT30M
for 30 minutes,PT10S
for 10 seconds,P1D
for 1 day, etc. If no delay and no timeout are configured, the execution will never end until it's manually resumed from the UI or API.
errors
- Type: array
- SubType: Task
- Dynamic: ❌
- Required: ❌
List of tasks to run if any tasks failed on this FlowableTask.
onResume
- Type: array
- SubType:
- Dynamic: ❌
- Required: ❌
Inputs to be passed to the execution when it's resumed.
Before resuming the execution, the user will be prompted to fill in these inputs. The inputs can be used to pass additional data to the execution which is useful for human-in-the-loop scenarios. The
onResume
inputs work the same way as regular flow inputs — they can be of any type and can have default values. You can access those values in downstream tasks using theonResume
output of the Pause task.
tasks
⚠ Deprecated
- Type: array
- SubType: Task
- Dynamic: ❌
- Required: ❌
timeout
- Type: string
- Dynamic: ❌
- Required: ❌
- Format:
duration
Timeout of the pause — useful to avoid never-ending workflows in a human-in-the-loop scenario. For example, if you want to pause the execution until a human validates some data generated in a previous task, you can set a timeout of e.g. 24 hours. If no manual approval happens within 24 hours, the execution will automatically resume without a prior data validation.
If no delay and no timeout are configured, the execution will never end until it's manually resumed from the UI or API.
Outputs
onResume
- Type: object
- Required: ❌
Definitions
io.kestra.core.models.flows.input.SelectInput
Properties
allowCustomValue
- Type: boolean
- Dynamic: ❓
- Required: ✔️
- Default:
false
If the user can provide a custom value.
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
expression
- Type: string
- Dynamic: ❓
- Required: ❌
Expression to be used for dynamically generating the list of values
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
values
- Type: array
- SubType: string
- Dynamic: ❓
- Required: ❌
List of values.
io.kestra.core.models.flows.input.MultiselectInput
Properties
allowCustomValue
- Type: boolean
- Dynamic: ❓
- Required: ✔️
- Default:
false
If the user can provide customs value.
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
expression
- Type: string
- Dynamic: ❓
- Required: ❌
Expression to be used for dynamically generating the list of values
itemType
- Type: string
- Dynamic: ❓
- Required: ❌
- Default:
STRING
- Possible Values:
STRING
ENUM
SELECT
INT
FLOAT
BOOLEAN
DATETIME
DATE
TIME
DURATION
FILE
JSON
URI
SECRET
ARRAY
MULTISELECT
YAML
EMAIL
Type of the different values available.
Cannot be of type
ARRAY
nor 'MULTISELECT'.
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
options
⚠ Deprecated
- Type: array
- SubType: string
- Dynamic: ❓
- Required: ❌
Deprecated, please use values
instead.
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
values
- Type: array
- SubType: string
- Dynamic: ❓
- Required: ❌
List of values available.
io.kestra.core.models.flows.input.BooleanInput
Properties
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
io.kestra.core.models.flows.input.DurationInput
Properties
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
max
- Type: string
- Dynamic: ❓
- Required: ❌
- Format:
duration
Maximal value.
min
- Type: string
- Dynamic: ❓
- Required: ❌
- Format:
duration
Minimal value.
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
io.kestra.core.models.flows.input.DateTimeInput
Properties
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
after
- Type: string
- Dynamic: ❓
- Required: ❌
- Format:
date-time
Minimal value.
before
- Type: string
- Dynamic: ❓
- Required: ❌
- Format:
date-time
Maximal value.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
io.kestra.core.models.flows.input.EnumInput
Properties
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
values
- Type: array
- SubType: string
- Dynamic: ❓
- Required: ✔️
List of values.
DEPRECATED; use 'SELECT' instead.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
io.kestra.core.models.flows.input.YamlInput
Properties
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
io.kestra.core.models.flows.input.TimeInput
Properties
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
after
- Type: string
- Dynamic: ❓
- Required: ❌
- Format:
time
Minimal value.
before
- Type: string
- Dynamic: ❓
- Required: ❌
- Format:
time
Maximal value.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
io.kestra.core.models.flows.input.StringInput
Properties
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
validator
- Type: string
- Dynamic: ❓
- Required: ❌
Regular expression validating the value.
io.kestra.core.models.flows.DependsOn
Properties
condition
- Type: string
- Dynamic: ❓
- Required: ❌
inputs
- Type: array
- SubType: string
- Dynamic: ❓
- Required: ❌
io.kestra.core.models.flows.input.DateInput
Properties
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
after
- Type: string
- Dynamic: ❓
- Required: ❌
- Format:
date
Minimal value.
before
- Type: string
- Dynamic: ❓
- Required: ❌
- Format:
date
Maximal value.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
io.kestra.core.models.flows.input.FloatInput
Properties
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
max
- Type: number
- Dynamic: ❓
- Required: ❌
Maximal value.
min
- Type: number
- Dynamic: ❓
- Required: ❌
Minimal value.
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
io.kestra.core.models.flows.input.SecretInput
Properties
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
validator
- Type: string
- Dynamic: ❓
- Required: ❌
Regular expression validating the value.
io.kestra.core.models.flows.input.IntInput
Properties
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
max
- Type: integer
- Dynamic: ❓
- Required: ❌
Maximal value.
min
- Type: integer
- Dynamic: ❓
- Required: ❌
Minimal value.
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
io.kestra.core.models.flows.input.EmailInput
Properties
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
io.kestra.core.models.flows.input.FileInput
Properties
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
extension
- Type: string
- Dynamic: ❓
- Required: ❌
- Default:
.upl
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
io.kestra.core.models.flows.input.JsonInput
Properties
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
io.kestra.core.models.flows.input.ArrayInput
Properties
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
itemType
- Type: string
- Dynamic: ❓
- Required: ✔️
- Possible Values:
STRING
ENUM
SELECT
INT
FLOAT
BOOLEAN
DATETIME
DATE
TIME
DURATION
FILE
JSON
URI
SECRET
ARRAY
MULTISELECT
YAML
EMAIL
Type of the array items.
Cannot be of type
ARRAY
.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
io.kestra.core.models.flows.input.URIInput
Properties
id
- Type: string
- Dynamic: ❓
- Required: ✔️
- Validation regExp:
^[a-zA-Z0-9][.a-zA-Z0-9_-]*
- Min length:
1
The ID of the input.
defaults
- Type: object
- Dynamic: ❓
- Required: ❌
The default value to use if no value is specified.
dependsOn
- Type: DependsOn
- Dynamic: ❓
- Required: ❌
The dependencies of the input.
description
- Type: string
- Dynamic: ❓
- Required: ❌
The description of the input.
displayName
- Type: string
- Dynamic: ❓
- Required: ❌
- Max length:
64
The display name of the input.
name
⚠ Deprecated
- Type: string
- Dynamic: ❓
- Required: ❌
required
- Type: boolean
- Dynamic: ❓
- Required: ❌
- Default:
true
Was this page helpful?