diff --git a/api/v1alpha08/kogitoserverlessworkflow_types.go b/api/v1alpha08/kogitoserverlessworkflow_types.go index 4abce00f3d7..883a7e4ec1e 100644 --- a/api/v1alpha08/kogitoserverlessworkflow_types.go +++ b/api/v1alpha08/kogitoserverlessworkflow_types.go @@ -25,7 +25,8 @@ import ( // KogitoServerlessWorkflowSpec defines the desired state of KogitoServerlessWorkflow type KogitoServerlessWorkflowSpec struct { - model.Workflow `json:",inline"` + // +kubebuilder:validation:Required + Flow model.Workflow `json:"flow"` } // KogitoServerlessWorkflowStatus defines the observed state of KogitoServerlessWorkflow diff --git a/api/v1alpha08/zz_generated.deepcopy.go b/api/v1alpha08/zz_generated.deepcopy.go index 8da14d381cf..2689753c43a 100644 --- a/api/v1alpha08/zz_generated.deepcopy.go +++ b/api/v1alpha08/zz_generated.deepcopy.go @@ -304,7 +304,7 @@ func (in *KogitoServerlessWorkflowList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *KogitoServerlessWorkflowSpec) DeepCopyInto(out *KogitoServerlessWorkflowSpec) { *out = *in - in.Workflow.DeepCopyInto(&out.Workflow) + in.Flow.DeepCopyInto(&out.Flow) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KogitoServerlessWorkflowSpec. diff --git a/bundle/manifests/kogito-serverless-operator.clusterserviceversion.yaml b/bundle/manifests/kogito-serverless-operator.clusterserviceversion.yaml index d2dd7977ef7..1a7e19a88d5 100644 --- a/bundle/manifests/kogito-serverless-operator.clusterserviceversion.yaml +++ b/bundle/manifests/kogito-serverless-operator.clusterserviceversion.yaml @@ -31,63 +31,65 @@ metadata: "name": "greeting" }, "spec": { - "functions": [ - { - "name": "greetFunction", - "operation": "sysout", - "type": "custom" - } - ], - "start": "ChooseOnLanguage", - "states": [ - { - "dataConditions": [ - { - "condition": "${ .language == \"English\" }", - "transition": "GreetInEnglish" + "flow": { + "functions": [ + { + "name": "greetFunction", + "operation": "sysout", + "type": "custom" + } + ], + "start": "ChooseOnLanguage", + "states": [ + { + "dataConditions": [ + { + "condition": "${ .language == \"English\" }", + "transition": "GreetInEnglish" + }, + { + "condition": "${ .language == \"Spanish\" }", + "transition": "GreetInSpanish" + } + ], + "defaultCondition": "GreetInEnglish", + "name": "ChooseOnLanguage", + "type": "switch" + }, + { + "data": { + "greeting": "Hello from JSON Workflow, " }, - { - "condition": "${ .language == \"Spanish\" }", - "transition": "GreetInSpanish" - } - ], - "defaultCondition": "GreetInEnglish", - "name": "ChooseOnLanguage", - "type": "switch" - }, - { - "data": { - "greeting": "Hello from JSON Workflow, " + "name": "GreetInEnglish", + "transition": "GreetPerson", + "type": "inject" }, - "name": "GreetInEnglish", - "transition": "GreetPerson", - "type": "inject" - }, - { - "data": { - "greeting": "Saludos desde JSON Workflow, " + { + "data": { + "greeting": "Saludos desde JSON Workflow, " + }, + "name": "GreetInSpanish", + "transition": "GreetPerson", + "type": "inject" }, - "name": "GreetInSpanish", - "transition": "GreetPerson", - "type": "inject" - }, - { - "actions": [ - { - "functionRef": { - "arguments": { - "message": ".greeting+.name" + { + "actions": [ + { + "functionRef": { + "arguments": { + "message": ".greeting+.name" + }, + "refName": "greetFunction" }, - "refName": "greetFunction" - }, - "name": "greetAction" - } - ], - "end": true, - "name": "GreetPerson", - "type": "operation" - } - ] + "name": "greetAction" + } + ], + "end": true, + "name": "GreetPerson", + "type": "operation" + } + ] + } } } ] diff --git a/bundle/manifests/sw.kogito.kie.org_kogitoserverlessworkflows.yaml b/bundle/manifests/sw.kogito.kie.org_kogitoserverlessworkflows.yaml index a7b44b432ff..f82363467ff 100644 --- a/bundle/manifests/sw.kogito.kie.org_kogitoserverlessworkflows.yaml +++ b/bundle/manifests/sw.kogito.kie.org_kogitoserverlessworkflows.yaml @@ -55,2163 +55,128 @@ spec: description: KogitoServerlessWorkflowSpec defines the desired state of KogitoServerlessWorkflow properties: - annotations: - description: Annotations List of helpful terms describing the workflows - intended purpose, subject areas, or other important qualities. - items: - type: string - type: array - auth: - description: Auth definitions can be used to define authentication - information that should be applied to resources defined in the operation - property of function definitions. It is not used as authentication - information for the function invocation, but just to access the - resource containing the function invocation information. - x-kubernetes-preserve-unknown-fields: true - autoRetries: - description: AutoRetries If set to true, actions should automatically - be retried on unchecked errors. Default is false - type: boolean - constants: - additionalProperties: - description: RawMessage is a raw encoded JSON value. It implements - Marshaler and Unmarshaler and can be used to delay JSON decoding - or precompute a JSON encoding. - format: byte - type: string - description: Constants Workflow constants are used to define static, - and immutable, data which is available to Workflow Expressions. - type: object - dataInputSchema: - description: DataInputSchema URI of the JSON Schema used to validate - the workflow data input + flow: + description: Workflow base definition properties: - failOnValidationErrors: - type: boolean - schema: - type: string - required: - - failOnValidationErrors - - schema - type: object - description: - description: Workflow description. - type: string - errors: - description: Defines checked errors that can be explicitly handled - during workflow execution. - items: - description: Error declaration for workflow definitions - properties: - code: - description: Code OnError code. Can be used in addition to the - name to help runtimes resolve to technical errors/exceptions. - Should not be defined if error is set to '*'. - type: string - description: - description: OnError description. - type: string - name: - description: Name Domain-specific error name. - type: string - required: - - name - type: object - type: array - events: - items: - description: Event used to define events and their correlations - properties: - correlation: - description: Define event correlation rules for this event. - Only used for consumed events. - items: - description: Correlation define event correlation rules for - an event. Only used for `consumed` events - properties: - contextAttributeName: - description: CloudEvent Extension Context Attribute name - type: string - contextAttributeValue: - description: CloudEvent Extension Context Attribute value - type: string - required: - - contextAttributeName - type: object - type: array - dataOnly: - description: If `true`, only the Event payload is accessible - to consuming Workflow states. If `false`, both event payload - and context attributes should be accessible. Defaults to true. - type: boolean - kind: - default: consumed - description: Defines the CloudEvent as either 'consumed' or - 'produced' by the workflow. Defaults to `consumed`. - enum: - - consumed - - produced - type: string - metadata: - additionalProperties: - type: object - description: Metadata information - type: object - name: - description: Unique event name. - type: string - source: - description: CloudEvent source. - type: string - type: - description: CloudEvent type. - type: string - required: - - name - - type - type: object - type: array - expressionLang: - default: jq - description: Identifies the expression language used for workflow - expressions. Default is 'jq'. - enum: - - jq - - jsonpath - type: string - functions: - items: - description: Function ... - properties: - authRef: - description: References an auth definition name to be used to - access to resource defined in the operation parameter. - type: string - metadata: - additionalProperties: - type: object - description: Metadata information - type: object - name: - description: Unique function name - type: string - operation: - description: If type is `rest`, #. - If type is `rpc`, ##. - If type is `expression`, defines the workflow expression. - If the type is `custom`, #. - type: string - type: - default: rest - description: Defines the function type. Is either `custom`, - `rest`, `rpc`, `expression`, `graphql`, `odata` or `asyncapi`. - Default is `rest`. - enum: - - rest - - rpc - - expression - - graphql - - odata - - asyncapi - - custom - type: string - required: - - name - - operation - type: object - type: array - id: - description: Workflow unique identifier - type: string - keepActive: - description: If "true", workflow instances is not terminated when - there are no active execution paths. Instance can be terminated - with "terminate end definition" or reaching defined "workflowExecTimeout" - type: boolean - key: - description: Key Domain-specific workflow identifier - type: string - metadata: - description: Metadata custom information shared with the runtime. - x-kubernetes-preserve-unknown-fields: true - name: - description: Workflow name - type: string - retries: - items: - description: Retry ... - properties: - delay: - description: Time delay between retry attempts (ISO 8601 duration - format) + annotations: + description: Annotations List of helpful terms describing the + workflows intended purpose, subject areas, or other important + qualities. + items: type: string - increment: - description: Static value by which the delay increases during - each attempt (ISO 8601 time format) + type: array + auth: + description: Auth definitions can be used to define authentication + information that should be applied to resources defined in the + operation property of function definitions. It is not used as + authentication information for the function invocation, but + just to access the resource containing the function invocation + information. + x-kubernetes-preserve-unknown-fields: true + autoRetries: + description: AutoRetries If set to true, actions should automatically + be retried on unchecked errors. Default is false + type: boolean + constants: + additionalProperties: + description: RawMessage is a raw encoded JSON value. It implements + Marshaler and Unmarshaler and can be used to delay JSON decoding + or precompute a JSON encoding. + format: byte type: string - jitter: - description: 'If float type, maximum amount of random time added - or subtracted from the delay between each retry relative to - total delay (between 0 and 1). If string type, absolute maximum - amount of random time added or subtracted from the delay between - each retry (ISO 8601 duration format) TODO: make iso8601duration - compatible this type' + description: Constants Workflow constants are used to define static, + and immutable, data which is available to Workflow Expressions. + type: object + dataInputSchema: + description: DataInputSchema URI of the JSON Schema used to validate + the workflow data input + properties: + failOnValidationErrors: + type: boolean + schema: + type: string + required: + - failOnValidationErrors + - schema + type: object + description: + description: Workflow description. + type: string + errors: + description: Defines checked errors that can be explicitly handled + during workflow execution. + items: + description: Error declaration for workflow definitions properties: - floatVal: - type: number - strVal: + code: + description: Code OnError code. Can be used in addition + to the name to help runtimes resolve to technical errors/exceptions. + Should not be defined if error is set to '*'. type: string - type: - description: Type represents the stored type of Float32OrString. - format: int64 - type: integer - type: object - maxAttempts: - anyOf: - - type: integer - - type: string - description: Maximum number of retry attempts. - x-kubernetes-int-or-string: true - maxDelay: - description: Maximum time delay between retry attempts (ISO - 8601 duration format) - type: string - multiplier: - description: Numeric value, if specified the delay between retries - is multiplied by this value. - properties: - floatVal: - type: number - strVal: + description: + description: OnError description. type: string - type: - description: Type represents the stored type of Float32OrString. - format: int64 - type: integer + name: + description: Name Domain-specific error name. + type: string + required: + - name type: object - name: - description: Unique retry strategy name - type: string - required: - - maxAttempts - - name - type: object - type: array - secrets: - description: Secrets allow you to access sensitive information, such - as passwords, OAuth tokens, ssh keys, etc, inside your Workflow - Expressions. - items: - type: string - type: array - specVersion: - default: "0.8" - description: Serverless Workflow schema version - type: string - start: - description: Workflow start definition. - x-kubernetes-preserve-unknown-fields: true - states: - items: - properties: - callbackState: - description: callbackState executes a function and waits for - callback event that indicates completion of the task. + type: array + events: + items: + description: Event used to define events and their correlations properties: - action: - description: Defines the action to be executed. - properties: - actionDataFilter: - description: Filter the state data to select only the - data that can be used within function definition arguments - using its fromStateData property. Filter the action - results to select only the result data that should - be added/merged back into the state data using its - results property. Select the part of state data which - the action data results should be added/merged to - using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters state - data that can be used by the action. - type: string - results: - description: Workflow expression that filters the - actions data results. - type: string - toStateData: - description: Workflow expression that selects a - state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element. - type: string - useResults: - description: If set to false, action data results - are not added/merged to state data. In this case - 'results' and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate to - true for this action to be performed. If false, action - is disregarded. - type: string - eventRef: - description: References a 'trigger' and 'result' reusable - event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context attributes - to the produced event. - type: object - data: - description: If string type, an expression which - selects parts of the states data output to become - the data (payload) of the event referenced by - triggerEventRef. If object type, a custom object - to become the data (payload) of the event referenced - by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should be - invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name of a 'consumed' - event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 format) - to wait for the result event. If not defined it - be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name of a 'produced' - event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed to - the referenced function TODO: validate it as required - if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should be - invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection set. - TODO: validate it as required if function type - is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined workflow - errors for which the action should not be retried. - Used only when `autoRetries` is set to `true` - items: + correlation: + description: Define event correlation rules for this event. + Only used for consumed events. + items: + description: Correlation define event correlation rules + for an event. Only used for `consumed` events + properties: + contextAttributeName: + description: CloudEvent Extension Context Attribute + name type: string - type: array - retryRef: - description: References a defined workflow retry definition. - If not defined uses the default runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined workflow - errors for which the action should be retried. Used - only when `autoRetries` is set to `false` - items: + contextAttributeValue: + description: CloudEvent Extension Context Attribute + value type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO 8601 duration - format) to sleep after function/subflow invocation. - Does not apply if 'eventRef' is defined. - type: string - before: - description: Defines amount of time (ISO 8601 duration - format) to sleep before function/subflow invocation. - Does not apply if 'eventRef' is defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should be - invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how subflow - execution should behave when parent workflow completes - if invoke is 'async'. Defaults to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object - type: object - eventDataFilter: - description: Event data filter definition. - properties: - data: - description: Workflow expression that filters of the - event data (payload). - type: string - toStateData: - description: Workflow expression that selects a state - data element to which the action results should be - added/merged into. If not specified denotes the top-level - state data element - type: string - useData: - description: If set to false, event payload is not added/merged - to state data. In this case 'data' and 'toStateData' - should be ignored. Default is true. - type: boolean - type: object - eventRef: - description: References a unique callback event name in - the defined workflow events. + required: + - contextAttributeName + type: object + type: array + dataOnly: + description: If `true`, only the Event payload is accessible + to consuming Workflow states. If `false`, both event payload + and context attributes should be accessible. Defaults + to true. + type: boolean + kind: + default: consumed + description: Defines the CloudEvent as either 'consumed' + or 'produced' by the workflow. Defaults to `consumed`. + enum: + - consumed + - produced type: string - timeouts: - description: Time period to wait for incoming events (ISO - 8601 format) - properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - eventTimeout: - description: Default timeout for consuming defined events - (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object + metadata: + additionalProperties: + type: object + description: Metadata information type: object - required: - - action - - eventRef - type: object - compensatedBy: - description: Unique Name of a workflow state which is responsible - for compensation of this state. - type: string - delayState: - description: delayState Causes the workflow execution to delay - for a specified duration. - properties: - timeDelay: - description: Amount of time (ISO 8601 format) to delay + name: + description: Unique event name. + type: string + source: + description: CloudEvent source. + type: string + type: + description: CloudEvent type. type: string required: - - timeDelay - type: object - end: - description: State end definition. - x-kubernetes-preserve-unknown-fields: true - eventState: - description: event states await one or more events and perform - actions when they are received. If defined as the workflow - starting state, the event state definition controls when the - workflow instances should be created. - properties: - exclusive: - default: true - description: If true consuming one of the defined events - causes its associated actions to be performed. If false - all the defined events must be consumed in order for actions - to be performed. Defaults to true. - type: boolean - onEvents: - description: Define the events to be consumed and optional - actions to be performed. - items: - description: OnEvents define which actions are be performed - for the one or more events. - properties: - actionMode: - default: sequential - description: Should actions be performed sequentially - or in parallel. Default is sequential. - enum: - - sequential - - parallel - type: string - actions: - description: Actions to be performed if expression - matches - items: - description: Action specify invocations of services - or other workflows during workflow execution. - properties: - actionDataFilter: - description: Filter the state data to select - only the data that can be used within function - definition arguments using its fromStateData - property. Filter the action results to select - only the result data that should be added/merged - back into the state data using its results - property. Select the part of state data which - the action data results should be added/merged - to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action - results should be added/merged into. If - not specified denotes the top-level state - data element. - type: string - useResults: - description: If set to false, action data - results are not added/merged to state - data. In this case 'results' and 'toStateData' - should be ignored. Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If - false, action is disregarded. - type: string - eventRef: - description: References a 'trigger' and 'result' - reusable event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression - which selects parts of the states data - output to become the data (payload) of - the event referenced by triggerEventRef. - If object type, a custom object to become - the data (payload) of the event referenced - by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name - of a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO - 8601 format) to wait for the result event. - If not defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name - of a 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function - definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate - it as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if - function type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should - not be retried. Used only when `autoRetries` - is set to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry - definition. If not defined uses the default - runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should - be retried. Used only when `autoRetries` is - set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO - 8601 duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string - before: - description: Defines amount of time (ISO - 8601 duration format) to sleep before - function/subflow invocation. Does not - apply if 'eventRef' is defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should - be invoked sync or async. Defaults to - sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies - how subflow execution should behave when - parent workflow completes if invoke is - 'async'. Defaults to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object - type: object - type: array - eventDataFilter: - description: eventDataFilter defines the callback - event data filter definition - properties: - data: - description: Workflow expression that filters - of the event data (payload). - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element - type: string - useData: - description: If set to false, event payload is - not added/merged to state data. In this case - 'data' and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - eventRefs: - description: References one or more unique event names - in the defined workflow events. - items: - type: string - minItems: 1 - type: array - required: - - eventRefs - type: object - minItems: 1 - type: array - timeouts: - description: State specific timeouts. - properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - eventTimeout: - description: Default timeout for consuming defined events - (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - onEvents - type: object - forEachState: - description: forEachState used to execute actions for each element - of a data set. - properties: - actions: - description: Actions to be executed for each of the elements - of inputCollection. - items: - description: Action specify invocations of services or - other workflows during workflow execution. - properties: - actionDataFilter: - description: Filter the state data to select only - the data that can be used within function definition - arguments using its fromStateData property. Filter - the action results to select only the result data - that should be added/merged back into the state - data using its results property. Select the part - of state data which the action data results should - be added/merged to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element. - type: string - useResults: - description: If set to false, action data results - are not added/merged to state data. In this - case 'results' and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If false, - action is disregarded. - type: string - eventRef: - description: References a 'trigger' and 'result' reusable - event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression which - selects parts of the states data output to become - the data (payload) of the event referenced by - triggerEventRef. If object type, a custom object - to become the data (payload) of the event referenced - by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name of a - 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 - format) to wait for the result event. If not - defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name of a - 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate it - as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if function - type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should not - be retried. Used only when `autoRetries` is set - to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry definition. - If not defined uses the default runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should be retried. - Used only when `autoRetries` is set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO 8601 - duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' is - defined. - type: string - before: - description: Defines amount of time (ISO 8601 - duration format) to sleep before function/subflow - invocation. Does not apply if 'eventRef' is - defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should be - invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how subflow - execution should behave when parent workflow - completes if invoke is 'async'. Defaults to - terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object - type: object - minItems: 1 - type: array - batchSize: - anyOf: - - type: integer - - type: string - description: Specifies how many iterations may run in parallel - at the same time. Used if mode property is set to parallel - (default). If not specified, its value should be the size - of the inputCollection. - x-kubernetes-int-or-string: true - inputCollection: - description: Workflow expression selecting an array element - of the states' data. - type: string - iterationParam: - description: Name of the iteration parameter that can be - referenced in actions/workflow. For each parallel iteration, - this param should contain a unique element of the inputCollection - array. - type: string - mode: - default: parallel - description: Specifies how iterations are to be performed - (sequential or in parallel), defaults to parallel. - enum: - - sequential - - parallel - type: string - outputCollection: - description: Workflow expression specifying an array element - of the states data to add the results of each iteration. - type: string - timeouts: - description: State specific timeout. - properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - inputCollection - type: object - id: - description: Unique State id. - type: string - injectState: - description: injectState used to inject static data into state - data input. - properties: - data: - additionalProperties: - type: object - description: JSON object which can be set as state's data - input and can be manipulated via filter - minProperties: 1 - type: object - timeouts: - description: State specific timeouts - properties: - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - data - type: object - metadata: - additionalProperties: - type: object - description: Metadata information. - type: object - name: - description: State name. - type: string - onErrors: - description: States error handling and retries definitions. - items: - description: OnError ... - properties: - end: - description: End workflow execution in case of this error. - If retryRef is defined, this ends workflow only if retries - were unsuccessful. - x-kubernetes-preserve-unknown-fields: true - errorRef: - description: ErrorRef Reference to a unique workflow error - definition. Used of errorRefs is not used - type: string - errorRefs: - description: ErrorRefs References one or more workflow - error definitions. Used if errorRef is not used - items: - type: string - type: array - transition: - description: Transition to next state to handle the error. - If retryRef is defined, this transition is taken only - if retries were unsuccessful. - x-kubernetes-preserve-unknown-fields: true - type: object - type: array - operationState: - description: operationState defines a set of actions to be performed - in sequence or in parallel. - properties: - actionMode: - default: sequential - description: Specifies whether actions are performed in - sequence or in parallel, defaults to sequential. - enum: - - sequential - - parallel - type: string - actions: - description: Actions to be performed - items: - description: Action specify invocations of services or - other workflows during workflow execution. - properties: - actionDataFilter: - description: Filter the state data to select only - the data that can be used within function definition - arguments using its fromStateData property. Filter - the action results to select only the result data - that should be added/merged back into the state - data using its results property. Select the part - of state data which the action data results should - be added/merged to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element. - type: string - useResults: - description: If set to false, action data results - are not added/merged to state data. In this - case 'results' and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If false, - action is disregarded. - type: string - eventRef: - description: References a 'trigger' and 'result' reusable - event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression which - selects parts of the states data output to become - the data (payload) of the event referenced by - triggerEventRef. If object type, a custom object - to become the data (payload) of the event referenced - by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name of a - 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 - format) to wait for the result event. If not - defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name of a - 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate it - as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if function - type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should not - be retried. Used only when `autoRetries` is set - to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry definition. - If not defined uses the default runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should be retried. - Used only when `autoRetries` is set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO 8601 - duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' is - defined. - type: string - before: - description: Defines amount of time (ISO 8601 - duration format) to sleep before function/subflow - invocation. Does not apply if 'eventRef' is - defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should be - invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how subflow - execution should behave when parent workflow - completes if invoke is 'async'. Defaults to - terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object - type: object - minItems: 1 - type: array - timeouts: - description: State specific timeouts - properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Defines workflow state execution timeout. - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - actions - type: object - parallelState: - description: parallelState Consists of a number of states that - are executed in parallel. - properties: - branches: - description: List of branches for this parallel state. - items: - description: Branch Definition - properties: - actions: - description: Actions to be executed in this branch - items: - description: Action specify invocations of services - or other workflows during workflow execution. - properties: - actionDataFilter: - description: Filter the state data to select - only the data that can be used within function - definition arguments using its fromStateData - property. Filter the action results to select - only the result data that should be added/merged - back into the state data using its results - property. Select the part of state data which - the action data results should be added/merged - to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action - results should be added/merged into. If - not specified denotes the top-level state - data element. - type: string - useResults: - description: If set to false, action data - results are not added/merged to state - data. In this case 'results' and 'toStateData' - should be ignored. Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If - false, action is disregarded. - type: string - eventRef: - description: References a 'trigger' and 'result' - reusable event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression - which selects parts of the states data - output to become the data (payload) of - the event referenced by triggerEventRef. - If object type, a custom object to become - the data (payload) of the event referenced - by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name - of a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO - 8601 format) to wait for the result event. - If not defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name - of a 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function - definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate - it as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if - function type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should - not be retried. Used only when `autoRetries` - is set to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry - definition. If not defined uses the default - runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should - be retried. Used only when `autoRetries` is - set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO - 8601 duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string - before: - description: Defines amount of time (ISO - 8601 duration format) to sleep before - function/subflow invocation. Does not - apply if 'eventRef' is defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should - be invoked sync or async. Defaults to - sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies - how subflow execution should behave when - parent workflow completes if invoke is - 'async'. Defaults to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object - type: object - minItems: 1 - type: array - name: - description: Branch name - type: string - timeouts: - description: Branch specific timeout settings - properties: - actionExecTimeout: - description: Single actions definition execution - timeout duration (ISO 8601 duration format) - type: string - branchExecTimeout: - description: Single branch execution timeout duration - (ISO 8601 duration format) - type: string - type: object - required: - - actions - - name - type: object - minItems: 1 - type: array - completionType: - default: allOf - description: Option types on how to complete branch execution. - Defaults to `allOf`. - enum: - - allOf - - atLeast - type: string - numCompleted: - anyOf: - - type: integer - - type: string - description: 'Used when branchCompletionType is set to atLeast - to specify the least number of branches that must complete - in order for the state to transition/end. TODO: change - this field to unmarshal result as int' - x-kubernetes-int-or-string: true - timeouts: - description: State specific timeouts - properties: - branchExecTimeout: - description: Default single branch execution timeout - (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - branches - type: object - sleepState: - description: sleepState suspends workflow execution for a given - time duration. - properties: - duration: - description: Duration (ISO 8601 duration format) to sleep - type: string - timeouts: - description: Timeouts State specific timeouts - properties: - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - duration - type: object - stateDataFilter: - description: State data filter. - properties: - input: - description: Workflow expression to filter the state data - input - type: string - output: - description: Workflow expression that filters the state - data output - type: string - type: object - switchState: - description: 'switchState is workflow''s gateways: direct transitions - onf a workflow based on certain conditions.' - properties: - dataConditions: - description: Defines conditions evaluated against data - items: - description: DataCondition specify a data-based condition - statement which causes a transition to another workflow - state if evaluated to true. - properties: - condition: - description: Workflow expression evaluated against - state data. Must evaluate to true or false. - type: string - end: - description: TODO End or Transition needs to be exclusive - tag, one or another should be set. Explicit transition - to end - properties: - compensate: - description: If set to true, triggers workflow - compensation before workflow execution completes. - Default is false. - type: boolean - continueAs: - description: Defines that current workflow execution - should stop, and execution should continue as - a new workflow instance of the provided id - properties: - data: - description: If string type, an expression - which selects parts of the states data output - to become the workflow data input of continued - execution. If object type, a custom object - to become the workflow data input of the - continued execution - type: object - version: - description: Version of the workflow to continue - execution as. - type: string - workflowExecTimeout: - description: WorkflowExecTimeout Workflow - execution timeout to be used by the workflow - continuing execution. Overwrites any specific - settings set by that workflow - properties: - duration: - default: unlimited - description: Workflow execution timeout - duration (ISO 8601 duration format). - If not specified should be 'unlimited'. - type: string - interrupt: - description: If false, workflow instance - is allowed to finish current execution. - If true, current workflow execution - is stopped immediately. Default is false. - type: boolean - runBefore: - description: Name of a workflow state - to be executed before workflow instance - is terminated. - type: string - required: - - duration - type: object - workflowId: - description: Unique id of the workflow to - continue execution as. - type: string - required: - - workflowId - type: object - produceEvents: - description: Array of producedEvent definitions. - Defines events that should be produced. - items: - description: ProduceEvent Defines the event - (CloudEvent format) to be produced when workflow - execution completes or during a workflow transitions. - The eventRef property must match the name - of one of the defined produced events in the - events definition. - properties: - contextAttributes: - additionalProperties: - type: string - description: Add additional event extension - context attributes. - type: object - data: - description: If String, expression which - selects parts of the states data output - to become the data of the produced event. - If object a custom object to become the - data of produced event. - type: object - eventRef: - description: Reference to a defined unique - event name in the events definition - type: string - required: - - eventRef - type: object - type: array - terminate: - description: If true, completes all execution - flows in the given workflow instance. - type: boolean - type: object - metadata: - additionalProperties: - type: object - description: Metadata information. - type: object - name: - description: Data condition name. - type: string - transition: - description: Workflow transition if condition is evaluated - to true - properties: - compensate: - default: false - description: If set to true, triggers workflow - compensation before this transition is taken. - Default is false. - type: boolean - nextState: - description: Name of the state to transition to - next. - type: string - produceEvents: - description: Array of producedEvent definitions. - Events to be produced before the transition - takes place. - items: - description: ProduceEvent Defines the event - (CloudEvent format) to be produced when workflow - execution completes or during a workflow transitions. - The eventRef property must match the name - of one of the defined produced events in the - events definition. - properties: - contextAttributes: - additionalProperties: - type: string - description: Add additional event extension - context attributes. - type: object - data: - description: If String, expression which - selects parts of the states data output - to become the data of the produced event. - If object a custom object to become the - data of produced event. - type: object - eventRef: - description: Reference to a defined unique - event name in the events definition - type: string - required: - - eventRef - type: object - type: array - required: - - nextState - type: object - required: - - condition - - end - type: object - type: array - defaultCondition: - description: Default transition of the workflow if there - is no matching data conditions. Can include a transition - or end definition. - properties: - end: - description: If this state an end state - x-kubernetes-preserve-unknown-fields: true - transition: - description: Serverless workflow states can have one - or more incoming and outgoing transitions (from/to - other states). Each state can define a transition - definition that is used to determine which state to - transition to next. - x-kubernetes-preserve-unknown-fields: true - type: object - eventConditions: - description: Defines conditions evaluated against events. - items: - description: EventCondition specify events which the switch - state must wait for. - properties: - end: - description: TODO End or Transition needs to be exclusive - tag, one or another should be set. Explicit transition - to end - x-kubernetes-preserve-unknown-fields: true - eventDataFilter: - description: Event data filter definition. - properties: - data: - description: Workflow expression that filters - of the event data (payload). - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element - type: string - useData: - description: If set to false, event payload is - not added/merged to state data. In this case - 'data' and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - eventRef: - description: References a unique event name in the - defined workflow events. - type: string - metadata: - description: Metadata information. - x-kubernetes-preserve-unknown-fields: true - name: - description: Event condition name. - type: string - transition: - description: Workflow transition if condition is evaluated - to true - x-kubernetes-preserve-unknown-fields: true - required: - - eventRef - type: object - type: array - timeouts: - description: SwitchState specific timeouts - properties: - eventTimeout: - description: 'Specify the expire value to transitions - to defaultCondition. When event-based conditions do - not arrive. NOTE: this is only available for EventConditions' - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - defaultCondition - type: object - transition: - description: Next transition of the workflow after the time - delay. - x-kubernetes-preserve-unknown-fields: true - type: - description: stateType can be any of delay, callback, event, - foreach, inject, operation, parallel, sleep, switch - enum: - - delay - - callback - - event - - foreach - - inject - - operation - - parallel - - sleep - - switch - type: string - usedForCompensation: - description: If true, this state is used to compensate another - state. Default is false. - type: boolean - required: - - name - - type - type: object - minItems: 1 - type: array - x-kubernetes-preserve-unknown-fields: true - timeouts: - description: Defines the workflow default timeout settings. - properties: - actionExecTimeout: - description: ActionExecTimeout Single actions definition execution - timeout duration (ISO 8601 duration format). - type: string - branchExecTimeout: - description: BranchExecTimeout Single branch execution timeout - duration (ISO 8601 duration format). - type: string - eventTimeout: - description: EventTimeout Timeout duration to wait for consuming - defined events (ISO 8601 duration format). - type: string - stateExecTimeout: - description: StateExecTimeout Total state execution timeout (including - retries) (ISO 8601 duration format). - properties: - single: - description: Single state execution timeout, not including - retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including retries - (ISO 8601 duration format) - type: string - required: - - total - type: object - workflowExecTimeout: - description: WorkflowExecTimeout Workflow execution timeout duration - (ISO 8601 duration format). If not specified should be 'unlimited'. - properties: - duration: - default: unlimited - description: Workflow execution timeout duration (ISO 8601 - duration format). If not specified should be 'unlimited'. - type: string - interrupt: - description: If false, workflow instance is allowed to finish - current execution. If true, current workflow execution is - stopped immediately. Default is false. - type: boolean - runBefore: - description: Name of a workflow state to be executed before - workflow instance is terminated. - type: string - required: - - duration - type: object - type: object - version: - description: Workflow version. - type: string - required: - - specVersion - - states - type: object - status: - description: KogitoServerlessWorkflowStatus defines the observed state - of KogitoServerlessWorkflow - properties: - address: - description: "Addressable provides a generic mechanism for a custom - resource definition to indicate a destination for message delivery. - \n Addressable is the schema for the destination information. This - is typically stored in the object's `status`, as this information - may be generated by the controller." - properties: - url: - type: string - type: object - applied: - description: KogitoServerlessWorkflowSpec defines the desired state - of KogitoServerlessWorkflow - properties: - annotations: - description: Annotations List of helpful terms describing the - workflows intended purpose, subject areas, or other important - qualities. - items: - type: string - type: array - auth: - description: Auth definitions can be used to define authentication - information that should be applied to resources defined in the - operation property of function definitions. It is not used as - authentication information for the function invocation, but - just to access the resource containing the function invocation - information. - x-kubernetes-preserve-unknown-fields: true - autoRetries: - description: AutoRetries If set to true, actions should automatically - be retried on unchecked errors. Default is false - type: boolean - constants: - additionalProperties: - description: RawMessage is a raw encoded JSON value. It implements - Marshaler and Unmarshaler and can be used to delay JSON decoding - or precompute a JSON encoding. - format: byte - type: string - description: Constants Workflow constants are used to define static, - and immutable, data which is available to Workflow Expressions. - type: object - dataInputSchema: - description: DataInputSchema URI of the JSON Schema used to validate - the workflow data input - properties: - failOnValidationErrors: - type: boolean - schema: - type: string - required: - - failOnValidationErrors - - schema - type: object - description: - description: Workflow description. - type: string - errors: - description: Defines checked errors that can be explicitly handled - during workflow execution. - items: - description: Error declaration for workflow definitions - properties: - code: - description: Code OnError code. Can be used in addition - to the name to help runtimes resolve to technical errors/exceptions. - Should not be defined if error is set to '*'. - type: string - description: - description: OnError description. - type: string - name: - description: Name Domain-specific error name. - type: string - required: - - name - type: object - type: array - events: - items: - description: Event used to define events and their correlations - properties: - correlation: - description: Define event correlation rules for this event. - Only used for consumed events. - items: - description: Correlation define event correlation rules - for an event. Only used for `consumed` events - properties: - contextAttributeName: - description: CloudEvent Extension Context Attribute - name - type: string - contextAttributeValue: - description: CloudEvent Extension Context Attribute - value - type: string - required: - - contextAttributeName - type: object - type: array - dataOnly: - description: If `true`, only the Event payload is accessible - to consuming Workflow states. If `false`, both event payload - and context attributes should be accessible. Defaults - to true. - type: boolean - kind: - default: consumed - description: Defines the CloudEvent as either 'consumed' - or 'produced' by the workflow. Defaults to `consumed`. - enum: - - consumed - - produced - type: string - metadata: - additionalProperties: - type: object - description: Metadata information - type: object - name: - description: Unique event name. - type: string - source: - description: CloudEvent source. - type: string - type: - description: CloudEvent type. - type: string - required: - - name - - type + - name + - type type: object type: array expressionLang: @@ -2263,330 +228,1208 @@ spec: - operation type: object type: array - id: - description: Workflow unique identifier - type: string - keepActive: - description: If "true", workflow instances is not terminated when - there are no active execution paths. Instance can be terminated - with "terminate end definition" or reaching defined "workflowExecTimeout" - type: boolean - key: - description: Key Domain-specific workflow identifier + id: + description: Workflow unique identifier + type: string + keepActive: + description: If "true", workflow instances is not terminated when + there are no active execution paths. Instance can be terminated + with "terminate end definition" or reaching defined "workflowExecTimeout" + type: boolean + key: + description: Key Domain-specific workflow identifier + type: string + metadata: + description: Metadata custom information shared with the runtime. + x-kubernetes-preserve-unknown-fields: true + name: + description: Workflow name + type: string + retries: + items: + description: Retry ... + properties: + delay: + description: Time delay between retry attempts (ISO 8601 + duration format) + type: string + increment: + description: Static value by which the delay increases during + each attempt (ISO 8601 time format) + type: string + jitter: + description: 'If float type, maximum amount of random time + added or subtracted from the delay between each retry + relative to total delay (between 0 and 1). If string type, + absolute maximum amount of random time added or subtracted + from the delay between each retry (ISO 8601 duration format) + TODO: make iso8601duration compatible this type' + properties: + floatVal: + type: number + strVal: + type: string + type: + description: Type represents the stored type of Float32OrString. + format: int64 + type: integer + type: object + maxAttempts: + anyOf: + - type: integer + - type: string + description: Maximum number of retry attempts. + x-kubernetes-int-or-string: true + maxDelay: + description: Maximum time delay between retry attempts (ISO + 8601 duration format) + type: string + multiplier: + description: Numeric value, if specified the delay between + retries is multiplied by this value. + properties: + floatVal: + type: number + strVal: + type: string + type: + description: Type represents the stored type of Float32OrString. + format: int64 + type: integer + type: object + name: + description: Unique retry strategy name + type: string + required: + - maxAttempts + - name + type: object + type: array + secrets: + description: Secrets allow you to access sensitive information, + such as passwords, OAuth tokens, ssh keys, etc, inside your + Workflow Expressions. + items: + type: string + type: array + specVersion: + default: "0.8" + description: Serverless Workflow schema version type: string - metadata: - description: Metadata custom information shared with the runtime. + start: + description: Workflow start definition. x-kubernetes-preserve-unknown-fields: true - name: - description: Workflow name - type: string - retries: + states: items: - description: Retry ... properties: - delay: - description: Time delay between retry attempts (ISO 8601 - duration format) - type: string - increment: - description: Static value by which the delay increases during - each attempt (ISO 8601 time format) - type: string - jitter: - description: 'If float type, maximum amount of random time - added or subtracted from the delay between each retry - relative to total delay (between 0 and 1). If string type, - absolute maximum amount of random time added or subtracted - from the delay between each retry (ISO 8601 duration format) - TODO: make iso8601duration compatible this type' + callbackState: + description: callbackState executes a function and waits + for callback event that indicates completion of the task. properties: - floatVal: - type: number - strVal: + action: + description: Defines the action to be executed. + properties: + actionDataFilter: + description: Filter the state data to select only + the data that can be used within function definition + arguments using its fromStateData property. Filter + the action results to select only the result data + that should be added/merged back into the state + data using its results property. Select the part + of state data which the action data results should + be added/merged to using the toStateData property. + properties: + fromStateData: + description: Workflow expression that filters + state data that can be used by the action. + type: string + results: + description: Workflow expression that filters + the actions data results. + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action results + should be added/merged into. If not specified + denotes the top-level state data element. + type: string + useResults: + description: If set to false, action data results + are not added/merged to state data. In this + case 'results' and 'toStateData' should be + ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must evaluate + to true for this action to be performed. If false, + action is disregarded. + type: string + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension context + attributes to the produced event. + type: object + data: + description: If string type, an expression which + selects parts of the states data output to + become the data (payload) of the event referenced + by triggerEventRef. If object type, a custom + object to become the data (payload) of the + event referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique name of + a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO 8601 + format) to wait for the result event. If not + defined it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name of + a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be passed + to the referenced function TODO: validate + it as required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is graphql. + String containing a valid GraphQL selection + set. TODO: validate it as required if function + type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to defined + workflow errors for which the action should not + be retried. Used only when `autoRetries` is set + to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow retry + definition. If not defined uses the default runtime + retry definition. + type: string + retryableErrors: + description: List of unique references to defined + workflow errors for which the action should be + retried. Used only when `autoRetries` is set to + `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow execution + should sleep before / after function execution. + properties: + after: + description: Defines amount of time (ISO 8601 + duration format) to sleep after function/subflow + invocation. Does not apply if 'eventRef' is + defined. + type: string + before: + description: Defines amount of time (ISO 8601 + duration format) to sleep before function/subflow + invocation. Does not apply if 'eventRef' is + defined. + type: string + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow should + be invoked sync or async. Defaults to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies how + subflow execution should behave when parent + workflow completes if invoke is 'async'. Defaults + to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object + type: object + eventDataFilter: + description: Event data filter definition. + properties: + data: + description: Workflow expression that filters of + the event data (payload). + type: string + toStateData: + description: Workflow expression that selects a + state data element to which the action results + should be added/merged into. If not specified + denotes the top-level state data element + type: string + useData: + description: If set to false, event payload is not + added/merged to state data. In this case 'data' + and 'toStateData' should be ignored. Default is + true. + type: boolean + type: object + eventRef: + description: References a unique callback event name + in the defined workflow events. type: string - type: - description: Type represents the stored type of Float32OrString. - format: int64 - type: integer + timeouts: + description: Time period to wait for incoming events + (ISO 8601 format) + properties: + actionExecTimeout: + description: Default single actions definition execution + timeout (ISO 8601 duration format) + type: string + eventTimeout: + description: Default timeout for consuming defined + events (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - action + - eventRef type: object - maxAttempts: - anyOf: - - type: integer - - type: string - description: Maximum number of retry attempts. - x-kubernetes-int-or-string: true - maxDelay: - description: Maximum time delay between retry attempts (ISO - 8601 duration format) + compensatedBy: + description: Unique Name of a workflow state which is responsible + for compensation of this state. type: string - multiplier: - description: Numeric value, if specified the delay between - retries is multiplied by this value. + delayState: + description: delayState Causes the workflow execution to + delay for a specified duration. properties: - floatVal: - type: number - strVal: + timeDelay: + description: Amount of time (ISO 8601 format) to delay type: string - type: - description: Type represents the stored type of Float32OrString. - format: int64 - type: integer + required: + - timeDelay type: object - name: - description: Unique retry strategy name - type: string - required: - - maxAttempts - - name - type: object - type: array - secrets: - description: Secrets allow you to access sensitive information, - such as passwords, OAuth tokens, ssh keys, etc, inside your - Workflow Expressions. - items: - type: string - type: array - specVersion: - default: "0.8" - description: Serverless Workflow schema version - type: string - start: - description: Workflow start definition. - x-kubernetes-preserve-unknown-fields: true - states: - items: - properties: - callbackState: - description: callbackState executes a function and waits - for callback event that indicates completion of the task. + end: + description: State end definition. + x-kubernetes-preserve-unknown-fields: true + eventState: + description: event states await one or more events and perform + actions when they are received. If defined as the workflow + starting state, the event state definition controls when + the workflow instances should be created. properties: - action: - description: Defines the action to be executed. - properties: - actionDataFilter: - description: Filter the state data to select only - the data that can be used within function definition - arguments using its fromStateData property. Filter - the action results to select only the result data - that should be added/merged back into the state - data using its results property. Select the part - of state data which the action data results should - be added/merged to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element. + exclusive: + default: true + description: If true consuming one of the defined events + causes its associated actions to be performed. If + false all the defined events must be consumed in order + for actions to be performed. Defaults to true. + type: boolean + onEvents: + description: Define the events to be consumed and optional + actions to be performed. + items: + description: OnEvents define which actions are be + performed for the one or more events. + properties: + actionMode: + default: sequential + description: Should actions be performed sequentially + or in parallel. Default is sequential. + enum: + - sequential + - parallel + type: string + actions: + description: Actions to be performed if expression + matches + items: + description: Action specify invocations of services + or other workflows during workflow execution. + properties: + actionDataFilter: + description: Filter the state data to select + only the data that can be used within + function definition arguments using its + fromStateData property. Filter the action + results to select only the result data + that should be added/merged back into + the state data using its results property. + Select the part of state data which the + action data results should be added/merged + to using the toStateData property. + properties: + fromStateData: + description: Workflow expression that + filters state data that can be used + by the action. + type: string + results: + description: Workflow expression that + filters the actions data results. + type: string + toStateData: + description: Workflow expression that + selects a state data element to which + the action results should be added/merged + into. If not specified denotes the + top-level state data element. + type: string + useResults: + description: If set to false, action + data results are not added/merged + to state data. In this case 'results' + and 'toStateData' should be ignored. + Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must + evaluate to true for this action to be + performed. If false, action is disregarded. + type: string + eventRef: + description: References a 'trigger' and + 'result' reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension + context attributes to the produced + event. + type: object + data: + description: If string type, an expression + which selects parts of the states + data output to become the data (payload) + of the event referenced by triggerEventRef. + If object type, a custom object to + become the data (payload) of the event + referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique + name of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time + (ISO 8601 format) to wait for the + result event. If not defined it be + set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique + name of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to + be passed to the referenced function + TODO: validate it as required if function + type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced + function. + type: string + selectionSet: + description: 'Used if function type + is graphql. String containing a valid + GraphQL selection set. TODO: validate + it as required if function type is + graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to + defined workflow errors for which the + action should not be retried. Used only + when `autoRetries` is set to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow + retry definition. If not defined uses + the default runtime retry definition. + type: string + retryableErrors: + description: List of unique references to + defined workflow errors for which the + action should be retried. Used only when + `autoRetries` is set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow + execution should sleep before / after + function execution. + properties: + after: + description: Defines amount of time + (ISO 8601 duration format) to sleep + after function/subflow invocation. + Does not apply if 'eventRef' is defined. + type: string + before: + description: Defines amount of time + (ISO 8601 duration format) to sleep + before function/subflow invocation. + Does not apply if 'eventRef' is defined. + type: string + type: object + subFlowRef: + description: References a workflow to be + invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow + should be invoked sync or async. Defaults + to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave + when parent workflow completes if + invoke is 'async'. Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object + type: object + type: array + eventDataFilter: + description: eventDataFilter defines the callback + event data filter definition + properties: + data: + description: Workflow expression that filters + of the event data (payload). + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action + results should be added/merged into. If + not specified denotes the top-level state + data element + type: string + useData: + description: If set to false, event payload + is not added/merged to state data. In this + case 'data' and 'toStateData' should be + ignored. Default is true. + type: boolean + type: object + eventRefs: + description: References one or more unique event + names in the defined workflow events. + items: type: string - useResults: - description: If set to false, action data results - are not added/merged to state data. In this - case 'results' and 'toStateData' should be - ignored. Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If false, - action is disregarded. + minItems: 1 + type: array + required: + - eventRefs + type: object + minItems: 1 + type: array + timeouts: + description: State specific timeouts. + properties: + actionExecTimeout: + description: Default single actions definition execution + timeout (ISO 8601 duration format) type: string - eventRef: - description: References a 'trigger' and 'result' - reusable event definitions. + eventTimeout: + description: Default timeout for consuming defined + events (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression which - selects parts of the states data output to - become the data (payload) of the event referenced - by triggerEventRef. If object type, a custom - object to become the data (payload) of the - event referenced by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name of - a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 - format) to wait for the result event. If not - defined it be set to the actionExecutionTimeout + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) type: string - triggerEventRef: - description: Reference to the unique name of - a 'produced' event definition, + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) type: string required: - - resultEventRef - - triggerEventRef + - total type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: + type: object + required: + - onEvents + type: object + forEachState: + description: forEachState used to execute actions for each + element of a data set. + properties: + actions: + description: Actions to be executed for each of the + elements of inputCollection. + items: + description: Action specify invocations of services + or other workflows during workflow execution. + properties: + actionDataFilter: + description: Filter the state data to select only + the data that can be used within function definition + arguments using its fromStateData property. + Filter the action results to select only the + result data that should be added/merged back + into the state data using its results property. + Select the part of state data which the action + data results should be added/merged to using + the toStateData property. + properties: + fromStateData: + description: Workflow expression that filters + state data that can be used by the action. + type: string + results: + description: Workflow expression that filters + the actions data results. + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action + results should be added/merged into. If + not specified denotes the top-level state + data element. + type: string + useResults: + description: If set to false, action data + results are not added/merged to state data. + In this case 'results' and 'toStateData' + should be ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must evaluate + to true for this action to be performed. If + false, action is disregarded. + type: string + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension context + attributes to the produced event. type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate - it as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if function - type is graphql' + data: + description: If string type, an expression + which selects parts of the states data output + to become the data (payload) of the event + referenced by triggerEventRef. If object + type, a custom object to become the data + (payload) of the event referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique name + of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO 8601 + format) to wait for the result event. If + not defined it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name + of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be passed + to the referenced function TODO: validate + it as required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is graphql. + String containing a valid GraphQL selection + set. TODO: validate it as required if function + type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to defined + workflow errors for which the action should + not be retried. Used only when `autoRetries` + is set to `true` + items: type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should not - be retried. Used only when `autoRetries` is set - to `true` - items: + type: array + retryRef: + description: References a defined workflow retry + definition. If not defined uses the default + runtime retry definition. type: string - type: array - retryRef: - description: References a defined workflow retry - definition. If not defined uses the default runtime - retry definition. + retryableErrors: + description: List of unique references to defined + workflow errors for which the action should + be retried. Used only when `autoRetries` is + set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow execution + should sleep before / after function execution. + properties: + after: + description: Defines amount of time (ISO 8601 + duration format) to sleep after function/subflow + invocation. Does not apply if 'eventRef' + is defined. + type: string + before: + description: Defines amount of time (ISO 8601 + duration format) to sleep before function/subflow + invocation. Does not apply if 'eventRef' + is defined. + type: string + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow should + be invoked sync or async. Defaults to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies how + subflow execution should behave when parent + workflow completes if invoke is 'async'. + Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object + type: object + minItems: 1 + type: array + batchSize: + anyOf: + - type: integer + - type: string + description: Specifies how many iterations may run in + parallel at the same time. Used if mode property is + set to parallel (default). If not specified, its value + should be the size of the inputCollection. + x-kubernetes-int-or-string: true + inputCollection: + description: Workflow expression selecting an array + element of the states' data. + type: string + iterationParam: + description: Name of the iteration parameter that can + be referenced in actions/workflow. For each parallel + iteration, this param should contain a unique element + of the inputCollection array. + type: string + mode: + default: parallel + description: Specifies how iterations are to be performed + (sequential or in parallel), defaults to parallel. + enum: + - sequential + - parallel + type: string + outputCollection: + description: Workflow expression specifying an array + element of the states data to add the results of each + iteration. + type: string + timeouts: + description: State specific timeout. + properties: + actionExecTimeout: + description: Default single actions definition execution + timeout (ISO 8601 duration format) type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should be - retried. Used only when `autoRetries` is set to - `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) properties: - after: - description: Defines amount of time (ISO 8601 - duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' is - defined. + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) type: string - before: - description: Defines amount of time (ISO 8601 - duration format) to sleep before function/subflow - invocation. Does not apply if 'eventRef' is - defined. + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) type: string + required: + - total type: object - subFlowRef: - description: References a workflow to be invoked. + type: object + required: + - inputCollection + type: object + id: + description: Unique State id. + type: string + injectState: + description: injectState used to inject static data into + state data input. + properties: + data: + additionalProperties: + type: object + description: JSON object which can be set as state's + data input and can be manipulated via filter + minProperties: 1 + type: object + timeouts: + description: State specific timeouts + properties: + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) properties: - invoke: - default: sync - description: Specifies if the subflow should - be invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how - subflow execution should behave when parent - workflow completes if invoke is 'async'. Defaults - to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) type: string - workflowId: - description: Sub-workflow unique id + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) type: string required: - - workflowId + - total type: object type: object - eventDataFilter: - description: Event data filter definition. - properties: - data: - description: Workflow expression that filters of - the event data (payload). - type: string - toStateData: - description: Workflow expression that selects a - state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element + required: + - data + type: object + metadata: + additionalProperties: + type: object + description: Metadata information. + type: object + name: + description: State name. + type: string + onErrors: + description: States error handling and retries definitions. + items: + description: OnError ... + properties: + end: + description: End workflow execution in case of this + error. If retryRef is defined, this ends workflow + only if retries were unsuccessful. + x-kubernetes-preserve-unknown-fields: true + errorRef: + description: ErrorRef Reference to a unique workflow + error definition. Used of errorRefs is not used + type: string + errorRefs: + description: ErrorRefs References one or more workflow + error definitions. Used if errorRef is not used + items: type: string - useData: - description: If set to false, event payload is not - added/merged to state data. In this case 'data' - and 'toStateData' should be ignored. Default is - true. - type: boolean - type: object - eventRef: - description: References a unique callback event name - in the defined workflow events. + type: array + transition: + description: Transition to next state to handle the + error. If retryRef is defined, this transition is + taken only if retries were unsuccessful. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + operationState: + description: operationState defines a set of actions to + be performed in sequence or in parallel. + properties: + actionMode: + default: sequential + description: Specifies whether actions are performed + in sequence or in parallel, defaults to sequential. + enum: + - sequential + - parallel type: string + actions: + description: Actions to be performed + items: + description: Action specify invocations of services + or other workflows during workflow execution. + properties: + actionDataFilter: + description: Filter the state data to select only + the data that can be used within function definition + arguments using its fromStateData property. + Filter the action results to select only the + result data that should be added/merged back + into the state data using its results property. + Select the part of state data which the action + data results should be added/merged to using + the toStateData property. + properties: + fromStateData: + description: Workflow expression that filters + state data that can be used by the action. + type: string + results: + description: Workflow expression that filters + the actions data results. + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action + results should be added/merged into. If + not specified denotes the top-level state + data element. + type: string + useResults: + description: If set to false, action data + results are not added/merged to state data. + In this case 'results' and 'toStateData' + should be ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must evaluate + to true for this action to be performed. If + false, action is disregarded. + type: string + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension context + attributes to the produced event. + type: object + data: + description: If string type, an expression + which selects parts of the states data output + to become the data (payload) of the event + referenced by triggerEventRef. If object + type, a custom object to become the data + (payload) of the event referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique name + of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO 8601 + format) to wait for the result event. If + not defined it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name + of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be passed + to the referenced function TODO: validate + it as required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is graphql. + String containing a valid GraphQL selection + set. TODO: validate it as required if function + type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to defined + workflow errors for which the action should + not be retried. Used only when `autoRetries` + is set to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow retry + definition. If not defined uses the default + runtime retry definition. + type: string + retryableErrors: + description: List of unique references to defined + workflow errors for which the action should + be retried. Used only when `autoRetries` is + set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow execution + should sleep before / after function execution. + properties: + after: + description: Defines amount of time (ISO 8601 + duration format) to sleep after function/subflow + invocation. Does not apply if 'eventRef' + is defined. + type: string + before: + description: Defines amount of time (ISO 8601 + duration format) to sleep before function/subflow + invocation. Does not apply if 'eventRef' + is defined. + type: string + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow should + be invoked sync or async. Defaults to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies how + subflow execution should behave when parent + workflow completes if invoke is 'async'. + Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object + type: object + minItems: 1 + type: array timeouts: - description: Time period to wait for incoming events - (ISO 8601 format) + description: State specific timeouts properties: actionExecTimeout: description: Default single actions definition execution timeout (ISO 8601 duration format) type: string - eventTimeout: - description: Default timeout for consuming defined - events (ISO 8601 duration format) - type: string stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) + description: Defines workflow state execution timeout. properties: single: description: Single state execution timeout, @@ -2601,57 +1444,19 @@ spec: type: object type: object required: - - action - - eventRef - type: object - compensatedBy: - description: Unique Name of a workflow state which is responsible - for compensation of this state. - type: string - delayState: - description: delayState Causes the workflow execution to - delay for a specified duration. - properties: - timeDelay: - description: Amount of time (ISO 8601 format) to delay - type: string - required: - - timeDelay + - actions type: object - end: - description: State end definition. - x-kubernetes-preserve-unknown-fields: true - eventState: - description: event states await one or more events and perform - actions when they are received. If defined as the workflow - starting state, the event state definition controls when - the workflow instances should be created. + parallelState: + description: parallelState Consists of a number of states + that are executed in parallel. properties: - exclusive: - default: true - description: If true consuming one of the defined events - causes its associated actions to be performed. If - false all the defined events must be consumed in order - for actions to be performed. Defaults to true. - type: boolean - onEvents: - description: Define the events to be consumed and optional - actions to be performed. + branches: + description: List of branches for this parallel state. items: - description: OnEvents define which actions are be - performed for the one or more events. + description: Branch Definition properties: - actionMode: - default: sequential - description: Should actions be performed sequentially - or in parallel. Default is sequential. - enum: - - sequential - - parallel - type: string actions: - description: Actions to be performed if expression - matches + description: Actions to be executed in this branch items: description: Action specify invocations of services or other workflows during workflow execution. @@ -2857,51 +1662,52 @@ spec: - workflowId type: object type: object + minItems: 1 type: array - eventDataFilter: - description: eventDataFilter defines the callback - event data filter definition + name: + description: Branch name + type: string + timeouts: + description: Branch specific timeout settings properties: - data: - description: Workflow expression that filters - of the event data (payload). + actionExecTimeout: + description: Single actions definition execution + timeout duration (ISO 8601 duration format) type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action - results should be added/merged into. If - not specified denotes the top-level state - data element + branchExecTimeout: + description: Single branch execution timeout + duration (ISO 8601 duration format) type: string - useData: - description: If set to false, event payload - is not added/merged to state data. In this - case 'data' and 'toStateData' should be - ignored. Default is true. - type: boolean type: object - eventRefs: - description: References one or more unique event - names in the defined workflow events. - items: - type: string - minItems: 1 - type: array required: - - eventRefs + - actions + - name type: object minItems: 1 type: array + completionType: + default: allOf + description: Option types on how to complete branch + execution. Defaults to `allOf`. + enum: + - allOf + - atLeast + type: string + numCompleted: + anyOf: + - type: integer + - type: string + description: 'Used when branchCompletionType is set + to atLeast to specify the least number of branches + that must complete in order for the state to transition/end. + TODO: change this field to unmarshal result as int' + x-kubernetes-int-or-string: true timeouts: - description: State specific timeouts. + description: State specific timeouts properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - eventTimeout: - description: Default timeout for consuming defined - events (ISO 8601 duration format) + branchExecTimeout: + description: Default single branch execution timeout + (ISO 8601 duration format) type: string stateExecTimeout: description: Default workflow state execution timeout @@ -2920,1250 +1726,2595 @@ spec: type: object type: object required: - - onEvents + - branches type: object - forEachState: - description: forEachState used to execute actions for each - element of a data set. + sleepState: + description: sleepState suspends workflow execution for + a given time duration. + properties: + duration: + description: Duration (ISO 8601 duration format) to + sleep + type: string + timeouts: + description: Timeouts State specific timeouts + properties: + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - duration + type: object + stateDataFilter: + description: State data filter. + properties: + input: + description: Workflow expression to filter the state + data input + type: string + output: + description: Workflow expression that filters the state + data output + type: string + type: object + switchState: + description: 'switchState is workflow''s gateways: direct + transitions onf a workflow based on certain conditions.' properties: - actions: - description: Actions to be executed for each of the - elements of inputCollection. + dataConditions: + description: Defines conditions evaluated against data items: - description: Action specify invocations of services - or other workflows during workflow execution. + description: DataCondition specify a data-based condition + statement which causes a transition to another workflow + state if evaluated to true. properties: - actionDataFilter: - description: Filter the state data to select only - the data that can be used within function definition - arguments using its fromStateData property. - Filter the action results to select only the - result data that should be added/merged back - into the state data using its results property. - Select the part of state data which the action - data results should be added/merged to using - the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action - results should be added/merged into. If - not specified denotes the top-level state - data element. - type: string - useResults: - description: If set to false, action data - results are not added/merged to state data. - In this case 'results' and 'toStateData' - should be ignored. Default is true. - type: boolean - type: object condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If - false, action is disregarded. + description: Workflow expression evaluated against + state data. Must evaluate to true or false. type: string - eventRef: - description: References a 'trigger' and 'result' - reusable event definitions. + end: + description: TODO End or Transition needs to be + exclusive tag, one or another should be set. + Explicit transition to end properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression - which selects parts of the states data output - to become the data (payload) of the event - referenced by triggerEventRef. If object - type, a custom object to become the data - (payload) of the event referenced by triggerEventRef. + compensate: + description: If set to true, triggers workflow + compensation before workflow execution completes. + Default is false. + type: boolean + continueAs: + description: Defines that current workflow + execution should stop, and execution should + continue as a new workflow instance of the + provided id + properties: + data: + description: If string type, an expression + which selects parts of the states data + output to become the workflow data input + of continued execution. If object type, + a custom object to become the workflow + data input of the continued execution + type: object + version: + description: Version of the workflow to + continue execution as. + type: string + workflowExecTimeout: + description: WorkflowExecTimeout Workflow + execution timeout to be used by the + workflow continuing execution. Overwrites + any specific settings set by that workflow + properties: + duration: + default: unlimited + description: Workflow execution timeout + duration (ISO 8601 duration format). + If not specified should be 'unlimited'. + type: string + interrupt: + description: If false, workflow instance + is allowed to finish current execution. + If true, current workflow execution + is stopped immediately. Default + is false. + type: boolean + runBefore: + description: Name of a workflow state + to be executed before workflow instance + is terminated. + type: string + required: + - duration + type: object + workflowId: + description: Unique id of the workflow + to continue execution as. + type: string + required: + - workflowId type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name - of a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 - format) to wait for the result event. If - not defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name - of a 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: + produceEvents: + description: Array of producedEvent definitions. + Defines events that should be produced. + items: + description: ProduceEvent Defines the event + (CloudEvent format) to be produced when + workflow execution completes or during + a workflow transitions. The eventRef property + must match the name of one of the defined + produced events in the events definition. + properties: + contextAttributes: + additionalProperties: + type: string + description: Add additional event extension + context attributes. + type: object + data: + description: If String, expression which + selects parts of the states data output + to become the data of the produced + event. If object a custom object to + become the data of produced event. + type: object + eventRef: + description: Reference to a defined + unique event name in the events definition + type: string + required: + - eventRef type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate - it as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if function - type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should - not be retried. Used only when `autoRetries` - is set to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry - definition. If not defined uses the default - runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should - be retried. Used only when `autoRetries` is - set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO 8601 - duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string - before: - description: Defines amount of time (ISO 8601 - duration format) to sleep before function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string + type: array + terminate: + description: If true, completes all execution + flows in the given workflow instance. + type: boolean type: object - subFlowRef: - description: References a workflow to be invoked. + metadata: + additionalProperties: + type: object + description: Metadata information. + type: object + name: + description: Data condition name. + type: string + transition: + description: Workflow transition if condition + is evaluated to true properties: - invoke: - default: sync - description: Specifies if the subflow should - be invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how - subflow execution should behave when parent - workflow completes if invoke is 'async'. - Defaults to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id + compensate: + default: false + description: If set to true, triggers workflow + compensation before this transition is taken. + Default is false. + type: boolean + nextState: + description: Name of the state to transition + to next. type: string + produceEvents: + description: Array of producedEvent definitions. + Events to be produced before the transition + takes place. + items: + description: ProduceEvent Defines the event + (CloudEvent format) to be produced when + workflow execution completes or during + a workflow transitions. The eventRef property + must match the name of one of the defined + produced events in the events definition. + properties: + contextAttributes: + additionalProperties: + type: string + description: Add additional event extension + context attributes. + type: object + data: + description: If String, expression which + selects parts of the states data output + to become the data of the produced + event. If object a custom object to + become the data of produced event. + type: object + eventRef: + description: Reference to a defined + unique event name in the events definition + type: string + required: + - eventRef + type: object + type: array required: - - workflowId + - nextState type: object + required: + - condition + - end type: object - minItems: 1 type: array - batchSize: - anyOf: - - type: integer - - type: string - description: Specifies how many iterations may run in - parallel at the same time. Used if mode property is - set to parallel (default). If not specified, its value - should be the size of the inputCollection. - x-kubernetes-int-or-string: true - inputCollection: - description: Workflow expression selecting an array - element of the states' data. - type: string - iterationParam: - description: Name of the iteration parameter that can - be referenced in actions/workflow. For each parallel - iteration, this param should contain a unique element - of the inputCollection array. - type: string - mode: - default: parallel - description: Specifies how iterations are to be performed - (sequential or in parallel), defaults to parallel. - enum: - - sequential - - parallel - type: string - outputCollection: - description: Workflow expression specifying an array - element of the states data to add the results of each - iteration. - type: string - timeouts: - description: State specific timeout. - properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - inputCollection - type: object - id: - description: Unique State id. - type: string - injectState: - description: injectState used to inject static data into - state data input. - properties: - data: - additionalProperties: - type: object - description: JSON object which can be set as state's - data input and can be manipulated via filter - minProperties: 1 - type: object - timeouts: - description: State specific timeouts + defaultCondition: + description: Default transition of the workflow if there + is no matching data conditions. Can include a transition + or end definition. properties: - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) - type: string - required: - - total - type: object + end: + description: If this state an end state + x-kubernetes-preserve-unknown-fields: true + transition: + description: Serverless workflow states can have + one or more incoming and outgoing transitions + (from/to other states). Each state can define + a transition definition that is used to determine + which state to transition to next. + x-kubernetes-preserve-unknown-fields: true type: object - required: - - data - type: object - metadata: - additionalProperties: - type: object - description: Metadata information. - type: object - name: - description: State name. - type: string - onErrors: - description: States error handling and retries definitions. - items: - description: OnError ... - properties: - end: - description: End workflow execution in case of this - error. If retryRef is defined, this ends workflow - only if retries were unsuccessful. - x-kubernetes-preserve-unknown-fields: true - errorRef: - description: ErrorRef Reference to a unique workflow - error definition. Used of errorRefs is not used - type: string - errorRefs: - description: ErrorRefs References one or more workflow - error definitions. Used if errorRef is not used - items: - type: string - type: array - transition: - description: Transition to next state to handle the - error. If retryRef is defined, this transition is - taken only if retries were unsuccessful. - x-kubernetes-preserve-unknown-fields: true - type: object - type: array - operationState: - description: operationState defines a set of actions to - be performed in sequence or in parallel. - properties: - actionMode: - default: sequential - description: Specifies whether actions are performed - in sequence or in parallel, defaults to sequential. - enum: - - sequential - - parallel - type: string - actions: - description: Actions to be performed + eventConditions: + description: Defines conditions evaluated against events. items: - description: Action specify invocations of services - or other workflows during workflow execution. - properties: - actionDataFilter: - description: Filter the state data to select only - the data that can be used within function definition - arguments using its fromStateData property. - Filter the action results to select only the - result data that should be added/merged back - into the state data using its results property. - Select the part of state data which the action - data results should be added/merged to using - the toStateData property. + description: EventCondition specify events which the + switch state must wait for. + properties: + end: + description: TODO End or Transition needs to be + exclusive tag, one or another should be set. + Explicit transition to end + x-kubernetes-preserve-unknown-fields: true + eventDataFilter: + description: Event data filter definition. properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: + data: description: Workflow expression that filters - the actions data results. + of the event data (payload). type: string toStateData: description: Workflow expression that selects a state data element to which the action results should be added/merged into. If not specified denotes the top-level state - data element. + data element type: string - useResults: - description: If set to false, action data - results are not added/merged to state data. - In this case 'results' and 'toStateData' - should be ignored. Default is true. + useData: + description: If set to false, event payload + is not added/merged to state data. In this + case 'data' and 'toStateData' should be + ignored. Default is true. type: boolean type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If - false, action is disregarded. - type: string eventRef: - description: References a 'trigger' and 'result' - reusable event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression - which selects parts of the states data output - to become the data (payload) of the event - referenced by triggerEventRef. If object - type, a custom object to become the data - (payload) of the event referenced by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name - of a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 - format) to wait for the result event. If - not defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name - of a 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate - it as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if function - type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. + description: References a unique event name in + the defined workflow events. type: string + metadata: + description: Metadata information. + x-kubernetes-preserve-unknown-fields: true name: - description: Defines Unique action name. + description: Event condition name. + type: string + transition: + description: Workflow transition if condition + is evaluated to true + x-kubernetes-preserve-unknown-fields: true + required: + - eventRef + type: object + type: array + timeouts: + description: SwitchState specific timeouts + properties: + eventTimeout: + description: 'Specify the expire value to transitions + to defaultCondition. When event-based conditions + do not arrive. NOTE: this is only available for + EventConditions' + type: string + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - defaultCondition + type: object + transition: + description: Next transition of the workflow after the time + delay. + x-kubernetes-preserve-unknown-fields: true + type: + description: stateType can be any of delay, callback, event, + foreach, inject, operation, parallel, sleep, switch + enum: + - delay + - callback + - event + - foreach + - inject + - operation + - parallel + - sleep + - switch + type: string + usedForCompensation: + description: If true, this state is used to compensate another + state. Default is false. + type: boolean + required: + - name + - type + type: object + minItems: 1 + type: array + x-kubernetes-preserve-unknown-fields: true + timeouts: + description: Defines the workflow default timeout settings. + properties: + actionExecTimeout: + description: ActionExecTimeout Single actions definition execution + timeout duration (ISO 8601 duration format). + type: string + branchExecTimeout: + description: BranchExecTimeout Single branch execution timeout + duration (ISO 8601 duration format). + type: string + eventTimeout: + description: EventTimeout Timeout duration to wait for consuming + defined events (ISO 8601 duration format). + type: string + stateExecTimeout: + description: StateExecTimeout Total state execution timeout + (including retries) (ISO 8601 duration format). + properties: + single: + description: Single state execution timeout, not including + retries (ISO 8601 duration format) + type: string + total: + description: Total state execution timeout, including + retries (ISO 8601 duration format) + type: string + required: + - total + type: object + workflowExecTimeout: + description: WorkflowExecTimeout Workflow execution timeout + duration (ISO 8601 duration format). If not specified should + be 'unlimited'. + properties: + duration: + default: unlimited + description: Workflow execution timeout duration (ISO + 8601 duration format). If not specified should be 'unlimited'. + type: string + interrupt: + description: If false, workflow instance is allowed to + finish current execution. If true, current workflow + execution is stopped immediately. Default is false. + type: boolean + runBefore: + description: Name of a workflow state to be executed before + workflow instance is terminated. + type: string + required: + - duration + type: object + type: object + version: + description: Workflow version. + type: string + required: + - specVersion + - states + type: object + required: + - flow + type: object + status: + description: KogitoServerlessWorkflowStatus defines the observed state + of KogitoServerlessWorkflow + properties: + address: + description: "Addressable provides a generic mechanism for a custom + resource definition to indicate a destination for message delivery. + \n Addressable is the schema for the destination information. This + is typically stored in the object's `status`, as this information + may be generated by the controller." + properties: + url: + type: string + type: object + applied: + description: KogitoServerlessWorkflowSpec defines the desired state + of KogitoServerlessWorkflow + properties: + flow: + description: Workflow base definition + properties: + annotations: + description: Annotations List of helpful terms describing + the workflows intended purpose, subject areas, or other + important qualities. + items: + type: string + type: array + auth: + description: Auth definitions can be used to define authentication + information that should be applied to resources defined + in the operation property of function definitions. It is + not used as authentication information for the function + invocation, but just to access the resource containing the + function invocation information. + x-kubernetes-preserve-unknown-fields: true + autoRetries: + description: AutoRetries If set to true, actions should automatically + be retried on unchecked errors. Default is false + type: boolean + constants: + additionalProperties: + description: RawMessage is a raw encoded JSON value. It + implements Marshaler and Unmarshaler and can be used to + delay JSON decoding or precompute a JSON encoding. + format: byte + type: string + description: Constants Workflow constants are used to define + static, and immutable, data which is available to Workflow + Expressions. + type: object + dataInputSchema: + description: DataInputSchema URI of the JSON Schema used to + validate the workflow data input + properties: + failOnValidationErrors: + type: boolean + schema: + type: string + required: + - failOnValidationErrors + - schema + type: object + description: + description: Workflow description. + type: string + errors: + description: Defines checked errors that can be explicitly + handled during workflow execution. + items: + description: Error declaration for workflow definitions + properties: + code: + description: Code OnError code. Can be used in addition + to the name to help runtimes resolve to technical + errors/exceptions. Should not be defined if error + is set to '*'. + type: string + description: + description: OnError description. + type: string + name: + description: Name Domain-specific error name. + type: string + required: + - name + type: object + type: array + events: + items: + description: Event used to define events and their correlations + properties: + correlation: + description: Define event correlation rules for this + event. Only used for consumed events. + items: + description: Correlation define event correlation + rules for an event. Only used for `consumed` events + properties: + contextAttributeName: + description: CloudEvent Extension Context Attribute + name type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should - not be retried. Used only when `autoRetries` - is set to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry - definition. If not defined uses the default - runtime retry definition. + contextAttributeValue: + description: CloudEvent Extension Context Attribute + value type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should - be retried. Used only when `autoRetries` is - set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO 8601 - duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string - before: - description: Defines amount of time (ISO 8601 - duration format) to sleep before function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should - be invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how - subflow execution should behave when parent - workflow completes if invoke is 'async'. - Defaults to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object + required: + - contextAttributeName type: object - minItems: 1 type: array - timeouts: - description: State specific timeouts + dataOnly: + description: If `true`, only the Event payload is accessible + to consuming Workflow states. If `false`, both event + payload and context attributes should be accessible. + Defaults to true. + type: boolean + kind: + default: consumed + description: Defines the CloudEvent as either 'consumed' + or 'produced' by the workflow. Defaults to `consumed`. + enum: + - consumed + - produced + type: string + metadata: + additionalProperties: + type: object + description: Metadata information + type: object + name: + description: Unique event name. + type: string + source: + description: CloudEvent source. + type: string + type: + description: CloudEvent type. + type: string + required: + - name + - type + type: object + type: array + expressionLang: + default: jq + description: Identifies the expression language used for workflow + expressions. Default is 'jq'. + enum: + - jq + - jsonpath + type: string + functions: + items: + description: Function ... + properties: + authRef: + description: References an auth definition name to be + used to access to resource defined in the operation + parameter. + type: string + metadata: + additionalProperties: + type: object + description: Metadata information + type: object + name: + description: Unique function name + type: string + operation: + description: If type is `rest`, #. + If type is `rpc`, ##. + If type is `expression`, defines the workflow expression. + If the type is `custom`, #. + type: string + type: + default: rest + description: Defines the function type. Is either `custom`, + `rest`, `rpc`, `expression`, `graphql`, `odata` or + `asyncapi`. Default is `rest`. + enum: + - rest + - rpc + - expression + - graphql + - odata + - asyncapi + - custom + type: string + required: + - name + - operation + type: object + type: array + id: + description: Workflow unique identifier + type: string + keepActive: + description: If "true", workflow instances is not terminated + when there are no active execution paths. Instance can be + terminated with "terminate end definition" or reaching defined + "workflowExecTimeout" + type: boolean + key: + description: Key Domain-specific workflow identifier + type: string + metadata: + description: Metadata custom information shared with the runtime. + x-kubernetes-preserve-unknown-fields: true + name: + description: Workflow name + type: string + retries: + items: + description: Retry ... + properties: + delay: + description: Time delay between retry attempts (ISO + 8601 duration format) + type: string + increment: + description: Static value by which the delay increases + during each attempt (ISO 8601 time format) + type: string + jitter: + description: 'If float type, maximum amount of random + time added or subtracted from the delay between each + retry relative to total delay (between 0 and 1). If + string type, absolute maximum amount of random time + added or subtracted from the delay between each retry + (ISO 8601 duration format) TODO: make iso8601duration + compatible this type' properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) + floatVal: + type: number + strVal: type: string - stateExecTimeout: - description: Defines workflow state execution timeout. + type: + description: Type represents the stored type of + Float32OrString. + format: int64 + type: integer + type: object + maxAttempts: + anyOf: + - type: integer + - type: string + description: Maximum number of retry attempts. + x-kubernetes-int-or-string: true + maxDelay: + description: Maximum time delay between retry attempts + (ISO 8601 duration format) + type: string + multiplier: + description: Numeric value, if specified the delay between + retries is multiplied by this value. + properties: + floatVal: + type: number + strVal: + type: string + type: + description: Type represents the stored type of + Float32OrString. + format: int64 + type: integer + type: object + name: + description: Unique retry strategy name + type: string + required: + - maxAttempts + - name + type: object + type: array + secrets: + description: Secrets allow you to access sensitive information, + such as passwords, OAuth tokens, ssh keys, etc, inside your + Workflow Expressions. + items: + type: string + type: array + specVersion: + default: "0.8" + description: Serverless Workflow schema version + type: string + start: + description: Workflow start definition. + x-kubernetes-preserve-unknown-fields: true + states: + items: + properties: + callbackState: + description: callbackState executes a function and waits + for callback event that indicates completion of the + task. + properties: + action: + description: Defines the action to be executed. properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) + actionDataFilter: + description: Filter the state data to select + only the data that can be used within function + definition arguments using its fromStateData + property. Filter the action results to select + only the result data that should be added/merged + back into the state data using its results + property. Select the part of state data which + the action data results should be added/merged + to using the toStateData property. + properties: + fromStateData: + description: Workflow expression that filters + state data that can be used by the action. + type: string + results: + description: Workflow expression that filters + the actions data results. + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action + results should be added/merged into. If + not specified denotes the top-level state + data element. + type: string + useResults: + description: If set to false, action data + results are not added/merged to state + data. In this case 'results' and 'toStateData' + should be ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must evaluate + to true for this action to be performed. If + false, action is disregarded. + type: string + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension context + attributes to the produced event. + type: object + data: + description: If string type, an expression + which selects parts of the states data + output to become the data (payload) of + the event referenced by triggerEventRef. + If object type, a custom object to become + the data (payload) of the event referenced + by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique name + of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO + 8601 format) to wait for the result event. + If not defined it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name + of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be passed + to the referenced function TODO: validate + it as required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is graphql. + String containing a valid GraphQL selection + set. TODO: validate it as required if + function type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) + name: + description: Defines Unique action name. type: string - required: - - total - type: object - type: object - required: - - actions - type: object - parallelState: - description: parallelState Consists of a number of states - that are executed in parallel. - properties: - branches: - description: List of branches for this parallel state. - items: - description: Branch Definition - properties: - actions: - description: Actions to be executed in this branch - items: - description: Action specify invocations of services - or other workflows during workflow execution. + nonRetryableErrors: + description: List of unique references to defined + workflow errors for which the action should + not be retried. Used only when `autoRetries` + is set to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow retry + definition. If not defined uses the default + runtime retry definition. + type: string + retryableErrors: + description: List of unique references to defined + workflow errors for which the action should + be retried. Used only when `autoRetries` is + set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow execution + should sleep before / after function execution. properties: - actionDataFilter: - description: Filter the state data to select - only the data that can be used within - function definition arguments using its - fromStateData property. Filter the action - results to select only the result data - that should be added/merged back into - the state data using its results property. - Select the part of state data which the - action data results should be added/merged - to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that - filters state data that can be used - by the action. - type: string - results: - description: Workflow expression that - filters the actions data results. - type: string - toStateData: - description: Workflow expression that - selects a state data element to which - the action results should be added/merged - into. If not specified denotes the - top-level state data element. - type: string - useResults: - description: If set to false, action - data results are not added/merged - to state data. In this case 'results' - and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must - evaluate to true for this action to be - performed. If false, action is disregarded. + after: + description: Defines amount of time (ISO + 8601 duration format) to sleep after function/subflow + invocation. Does not apply if 'eventRef' + is defined. type: string - eventRef: - description: References a 'trigger' and - 'result' reusable event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension - context attributes to the produced - event. - type: object - data: - description: If string type, an expression - which selects parts of the states - data output to become the data (payload) - of the event referenced by triggerEventRef. - If object type, a custom object to - become the data (payload) of the event - referenced by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function - should be invoked sync or async. Default - is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique - name of a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time - (ISO 8601 format) to wait for the - result event. If not defined it be - set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique - name of a 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function - definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to - be passed to the referenced function - TODO: validate it as required if function - type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function - should be invoked sync or async. Default - is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced - function. - type: string - selectionSet: - description: 'Used if function type - is graphql. String containing a valid - GraphQL selection set. TODO: validate - it as required if function type is - graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. + before: + description: Defines amount of time (ISO + 8601 duration format) to sleep before + function/subflow invocation. Does not + apply if 'eventRef' is defined. type: string - name: - description: Defines Unique action name. + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow should + be invoked sync or async. Defaults to + sync. + enum: + - async + - sync type: string - nonRetryableErrors: - description: List of unique references to - defined workflow errors for which the - action should not be retried. Used only - when `autoRetries` is set to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow - retry definition. If not defined uses - the default runtime retry definition. + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave when + parent workflow completes if invoke is + 'async'. Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object + type: object + eventDataFilter: + description: Event data filter definition. + properties: + data: + description: Workflow expression that filters + of the event data (payload). + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action results + should be added/merged into. If not specified + denotes the top-level state data element + type: string + useData: + description: If set to false, event payload + is not added/merged to state data. In this + case 'data' and 'toStateData' should be ignored. + Default is true. + type: boolean + type: object + eventRef: + description: References a unique callback event + name in the defined workflow events. + type: string + timeouts: + description: Time period to wait for incoming events + (ISO 8601 format) + properties: + actionExecTimeout: + description: Default single actions definition + execution timeout (ISO 8601 duration format) + type: string + eventTimeout: + description: Default timeout for consuming defined + events (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) type: string - retryableErrors: - description: List of unique references to - defined workflow errors for which the - action should be retried. Used only when - `autoRetries` is set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow - execution should sleep before / after - function execution. - properties: - after: - description: Defines amount of time - (ISO 8601 duration format) to sleep - after function/subflow invocation. - Does not apply if 'eventRef' is defined. - type: string - before: - description: Defines amount of time - (ISO 8601 duration format) to sleep - before function/subflow invocation. - Does not apply if 'eventRef' is defined. - type: string - type: object - subFlowRef: - description: References a workflow to be - invoked. + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - action + - eventRef + type: object + compensatedBy: + description: Unique Name of a workflow state which is + responsible for compensation of this state. + type: string + delayState: + description: delayState Causes the workflow execution + to delay for a specified duration. + properties: + timeDelay: + description: Amount of time (ISO 8601 format) to + delay + type: string + required: + - timeDelay + type: object + end: + description: State end definition. + x-kubernetes-preserve-unknown-fields: true + eventState: + description: event states await one or more events and + perform actions when they are received. If defined + as the workflow starting state, the event state definition + controls when the workflow instances should be created. + properties: + exclusive: + default: true + description: If true consuming one of the defined + events causes its associated actions to be performed. + If false all the defined events must be consumed + in order for actions to be performed. Defaults + to true. + type: boolean + onEvents: + description: Define the events to be consumed and + optional actions to be performed. + items: + description: OnEvents define which actions are + be performed for the one or more events. + properties: + actionMode: + default: sequential + description: Should actions be performed sequentially + or in parallel. Default is sequential. + enum: + - sequential + - parallel + type: string + actions: + description: Actions to be performed if expression + matches + items: + description: Action specify invocations + of services or other workflows during + workflow execution. properties: - invoke: - default: sync - description: Specifies if the subflow - should be invoked sync or async. Defaults - to sync. - enum: - - async - - sync + actionDataFilter: + description: Filter the state data to + select only the data that can be used + within function definition arguments + using its fromStateData property. + Filter the action results to select + only the result data that should be + added/merged back into the state data + using its results property. Select + the part of state data which the action + data results should be added/merged + to using the toStateData property. + properties: + fromStateData: + description: Workflow expression + that filters state data that can + be used by the action. + type: string + results: + description: Workflow expression + that filters the actions data + results. + type: string + toStateData: + description: Workflow expression + that selects a state data element + to which the action results should + be added/merged into. If not specified + denotes the top-level state data + element. + type: string + useResults: + description: If set to false, action + data results are not added/merged + to state data. In this case 'results' + and 'toStateData' should be ignored. + Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, + must evaluate to true for this action + to be performed. If false, action + is disregarded. type: string - onParentComplete: - default: terminate - description: onParentComplete specifies - how subflow execution should behave - when parent workflow completes if - invoke is 'async'. Defaults to terminate. - enum: - - terminate - - continue + eventRef: + description: References a 'trigger' + and 'result' reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension + context attributes to the produced + event. + type: object + data: + description: If string type, an + expression which selects parts + of the states data output to become + the data (payload) of the event + referenced by triggerEventRef. + If object type, a custom object + to become the data (payload) of + the event referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. + Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique + name of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time + (ISO 8601 format) to wait for + the result event. If not defined + it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique + name of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) + to be passed to the referenced + function TODO: validate it as + required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. + Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced + function. + type: string + selectionSet: + description: 'Used if function type + is graphql. String containing + a valid GraphQL selection set. + TODO: validate it as required + if function type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. type: string - version: - description: Sub-workflow version + name: + description: Defines Unique action name. type: string - workflowId: - description: Sub-workflow unique id + nonRetryableErrors: + description: List of unique references + to defined workflow errors for which + the action should not be retried. + Used only when `autoRetries` is set + to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow + retry definition. If not defined uses + the default runtime retry definition. type: string - required: - - workflowId + retryableErrors: + description: List of unique references + to defined workflow errors for which + the action should be retried. Used + only when `autoRetries` is set to + `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow + execution should sleep before / after + function execution. + properties: + after: + description: Defines amount of time + (ISO 8601 duration format) to + sleep after function/subflow invocation. + Does not apply if 'eventRef' is + defined. + type: string + before: + description: Defines amount of time + (ISO 8601 duration format) to + sleep before function/subflow + invocation. Does not apply if + 'eventRef' is defined. + type: string + type: object + subFlowRef: + description: References a workflow to + be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow + should be invoked sync or async. + Defaults to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave + when parent workflow completes + if invoke is 'async'. Defaults + to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique + id + type: string + required: + - workflowId + type: object type: object + type: array + eventDataFilter: + description: eventDataFilter defines the callback + event data filter definition + properties: + data: + description: Workflow expression that + filters of the event data (payload). + type: string + toStateData: + description: Workflow expression that + selects a state data element to which + the action results should be added/merged + into. If not specified denotes the top-level + state data element + type: string + useData: + description: If set to false, event payload + is not added/merged to state data. In + this case 'data' and 'toStateData' should + be ignored. Default is true. + type: boolean + type: object + eventRefs: + description: References one or more unique + event names in the defined workflow events. + items: + type: string + minItems: 1 + type: array + required: + - eventRefs + type: object + minItems: 1 + type: array + timeouts: + description: State specific timeouts. + properties: + actionExecTimeout: + description: Default single actions definition + execution timeout (ISO 8601 duration format) + type: string + eventTimeout: + description: Default timeout for consuming defined + events (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total type: object - minItems: 1 - type: array - name: - description: Branch name - type: string - timeouts: - description: Branch specific timeout settings + type: object + required: + - onEvents + type: object + forEachState: + description: forEachState used to execute actions for + each element of a data set. + properties: + actions: + description: Actions to be executed for each of + the elements of inputCollection. + items: + description: Action specify invocations of services + or other workflows during workflow execution. properties: - actionExecTimeout: - description: Single actions definition execution - timeout duration (ISO 8601 duration format) + actionDataFilter: + description: Filter the state data to select + only the data that can be used within function + definition arguments using its fromStateData + property. Filter the action results to select + only the result data that should be added/merged + back into the state data using its results + property. Select the part of state data + which the action data results should be + added/merged to using the toStateData property. + properties: + fromStateData: + description: Workflow expression that + filters state data that can be used + by the action. + type: string + results: + description: Workflow expression that + filters the actions data results. + type: string + toStateData: + description: Workflow expression that + selects a state data element to which + the action results should be added/merged + into. If not specified denotes the top-level + state data element. + type: string + useResults: + description: If set to false, action data + results are not added/merged to state + data. In this case 'results' and 'toStateData' + should be ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must + evaluate to true for this action to be performed. + If false, action is disregarded. type: string - branchExecTimeout: - description: Single branch execution timeout - duration (ISO 8601 duration format) + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension + context attributes to the produced event. + type: object + data: + description: If string type, an expression + which selects parts of the states data + output to become the data (payload) + of the event referenced by triggerEventRef. + If object type, a custom object to become + the data (payload) of the event referenced + by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique name + of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO + 8601 format) to wait for the result + event. If not defined it be set to the + actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name + of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be + passed to the referenced function TODO: + validate it as required if function + type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is + graphql. String containing a valid GraphQL + selection set. TODO: validate it as + required if function type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to + defined workflow errors for which the action + should not be retried. Used only when `autoRetries` + is set to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow + retry definition. If not defined uses the + default runtime retry definition. type: string + retryableErrors: + description: List of unique references to + defined workflow errors for which the action + should be retried. Used only when `autoRetries` + is set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow + execution should sleep before / after function + execution. + properties: + after: + description: Defines amount of time (ISO + 8601 duration format) to sleep after + function/subflow invocation. Does not + apply if 'eventRef' is defined. + type: string + before: + description: Defines amount of time (ISO + 8601 duration format) to sleep before + function/subflow invocation. Does not + apply if 'eventRef' is defined. + type: string + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow + should be invoked sync or async. Defaults + to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave + when parent workflow completes if invoke + is 'async'. Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object type: object - required: - - actions - - name - type: object - minItems: 1 - type: array - completionType: - default: allOf - description: Option types on how to complete branch - execution. Defaults to `allOf`. - enum: - - allOf - - atLeast - type: string - numCompleted: - anyOf: - - type: integer - - type: string - description: 'Used when branchCompletionType is set - to atLeast to specify the least number of branches - that must complete in order for the state to transition/end. - TODO: change this field to unmarshal result as int' - x-kubernetes-int-or-string: true - timeouts: - description: State specific timeouts - properties: - branchExecTimeout: - description: Default single branch execution timeout - (ISO 8601 duration format) + minItems: 1 + type: array + batchSize: + anyOf: + - type: integer + - type: string + description: Specifies how many iterations may run + in parallel at the same time. Used if mode property + is set to parallel (default). If not specified, + its value should be the size of the inputCollection. + x-kubernetes-int-or-string: true + inputCollection: + description: Workflow expression selecting an array + element of the states' data. type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) + iterationParam: + description: Name of the iteration parameter that + can be referenced in actions/workflow. For each + parallel iteration, this param should contain + a unique element of the inputCollection array. + type: string + mode: + default: parallel + description: Specifies how iterations are to be + performed (sequential or in parallel), defaults + to parallel. + enum: + - sequential + - parallel + type: string + outputCollection: + description: Workflow expression specifying an array + element of the states data to add the results + of each iteration. + type: string + timeouts: + description: State specific timeout. properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) + actionExecTimeout: + description: Default single actions definition + execution timeout (ISO 8601 duration format) type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) - type: string - required: - - total + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object type: object + required: + - inputCollection type: object - required: - - branches - type: object - sleepState: - description: sleepState suspends workflow execution for - a given time duration. - properties: - duration: - description: Duration (ISO 8601 duration format) to - sleep + id: + description: Unique State id. type: string - timeouts: - description: Timeouts State specific timeouts - properties: - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) - type: string - required: - - total + injectState: + description: injectState used to inject static data + into state data input. + properties: + data: + additionalProperties: + type: object + description: JSON object which can be set as state's + data input and can be manipulated via filter + minProperties: 1 + type: object + timeouts: + description: State specific timeouts + properties: + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object type: object + required: + - data type: object - required: - - duration - type: object - stateDataFilter: - description: State data filter. - properties: - input: - description: Workflow expression to filter the state - data input - type: string - output: - description: Workflow expression that filters the state - data output + metadata: + additionalProperties: + type: object + description: Metadata information. + type: object + name: + description: State name. type: string - type: object - switchState: - description: 'switchState is workflow''s gateways: direct - transitions onf a workflow based on certain conditions.' - properties: - dataConditions: - description: Defines conditions evaluated against data + onErrors: + description: States error handling and retries definitions. items: - description: DataCondition specify a data-based condition - statement which causes a transition to another workflow - state if evaluated to true. + description: OnError ... properties: - condition: - description: Workflow expression evaluated against - state data. Must evaluate to true or false. - type: string end: - description: TODO End or Transition needs to be - exclusive tag, one or another should be set. - Explicit transition to end + description: End workflow execution in case of + this error. If retryRef is defined, this ends + workflow only if retries were unsuccessful. + x-kubernetes-preserve-unknown-fields: true + errorRef: + description: ErrorRef Reference to a unique workflow + error definition. Used of errorRefs is not used + type: string + errorRefs: + description: ErrorRefs References one or more + workflow error definitions. Used if errorRef + is not used + items: + type: string + type: array + transition: + description: Transition to next state to handle + the error. If retryRef is defined, this transition + is taken only if retries were unsuccessful. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + operationState: + description: operationState defines a set of actions + to be performed in sequence or in parallel. + properties: + actionMode: + default: sequential + description: Specifies whether actions are performed + in sequence or in parallel, defaults to sequential. + enum: + - sequential + - parallel + type: string + actions: + description: Actions to be performed + items: + description: Action specify invocations of services + or other workflows during workflow execution. properties: - compensate: - description: If set to true, triggers workflow - compensation before workflow execution completes. - Default is false. - type: boolean - continueAs: - description: Defines that current workflow - execution should stop, and execution should - continue as a new workflow instance of the - provided id + actionDataFilter: + description: Filter the state data to select + only the data that can be used within function + definition arguments using its fromStateData + property. Filter the action results to select + only the result data that should be added/merged + back into the state data using its results + property. Select the part of state data + which the action data results should be + added/merged to using the toStateData property. + properties: + fromStateData: + description: Workflow expression that + filters state data that can be used + by the action. + type: string + results: + description: Workflow expression that + filters the actions data results. + type: string + toStateData: + description: Workflow expression that + selects a state data element to which + the action results should be added/merged + into. If not specified denotes the top-level + state data element. + type: string + useResults: + description: If set to false, action data + results are not added/merged to state + data. In this case 'results' and 'toStateData' + should be ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must + evaluate to true for this action to be performed. + If false, action is disregarded. + type: string + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension + context attributes to the produced event. + type: object data: description: If string type, an expression which selects parts of the states data - output to become the workflow data input - of continued execution. If object type, - a custom object to become the workflow - data input of the continued execution + output to become the data (payload) + of the event referenced by triggerEventRef. + If object type, a custom object to become + the data (payload) of the event referenced + by triggerEventRef. type: object - version: - description: Version of the workflow to - continue execution as. + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync type: string - workflowExecTimeout: - description: WorkflowExecTimeout Workflow - execution timeout to be used by the - workflow continuing execution. Overwrites - any specific settings set by that workflow - properties: - duration: - default: unlimited - description: Workflow execution timeout - duration (ISO 8601 duration format). - If not specified should be 'unlimited'. - type: string - interrupt: - description: If false, workflow instance - is allowed to finish current execution. - If true, current workflow execution - is stopped immediately. Default - is false. - type: boolean - runBefore: - description: Name of a workflow state - to be executed before workflow instance - is terminated. - type: string - required: - - duration + resultEventRef: + description: Reference to the unique name + of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO + 8601 format) to wait for the result + event. If not defined it be set to the + actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name + of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be + passed to the referenced function TODO: + validate it as required if function + type is graphql' type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is + graphql. String containing a valid GraphQL + selection set. TODO: validate it as + required if function type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to + defined workflow errors for which the action + should not be retried. Used only when `autoRetries` + is set to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow + retry definition. If not defined uses the + default runtime retry definition. + type: string + retryableErrors: + description: List of unique references to + defined workflow errors for which the action + should be retried. Used only when `autoRetries` + is set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow + execution should sleep before / after function + execution. + properties: + after: + description: Defines amount of time (ISO + 8601 duration format) to sleep after + function/subflow invocation. Does not + apply if 'eventRef' is defined. + type: string + before: + description: Defines amount of time (ISO + 8601 duration format) to sleep before + function/subflow invocation. Does not + apply if 'eventRef' is defined. + type: string + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow + should be invoked sync or async. Defaults + to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave + when parent workflow completes if invoke + is 'async'. Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string workflowId: - description: Unique id of the workflow - to continue execution as. + description: Sub-workflow unique id type: string required: - workflowId type: object - produceEvents: - description: Array of producedEvent definitions. - Defines events that should be produced. + type: object + minItems: 1 + type: array + timeouts: + description: State specific timeouts + properties: + actionExecTimeout: + description: Default single actions definition + execution timeout (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Defines workflow state execution + timeout. + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - actions + type: object + parallelState: + description: parallelState Consists of a number of states + that are executed in parallel. + properties: + branches: + description: List of branches for this parallel + state. + items: + description: Branch Definition + properties: + actions: + description: Actions to be executed in this + branch items: - description: ProduceEvent Defines the event - (CloudEvent format) to be produced when - workflow execution completes or during - a workflow transitions. The eventRef property - must match the name of one of the defined - produced events in the events definition. + description: Action specify invocations + of services or other workflows during + workflow execution. properties: - contextAttributes: - additionalProperties: - type: string - description: Add additional event extension - context attributes. - type: object - data: - description: If String, expression which - selects parts of the states data output - to become the data of the produced - event. If object a custom object to - become the data of produced event. + actionDataFilter: + description: Filter the state data to + select only the data that can be used + within function definition arguments + using its fromStateData property. + Filter the action results to select + only the result data that should be + added/merged back into the state data + using its results property. Select + the part of state data which the action + data results should be added/merged + to using the toStateData property. + properties: + fromStateData: + description: Workflow expression + that filters state data that can + be used by the action. + type: string + results: + description: Workflow expression + that filters the actions data + results. + type: string + toStateData: + description: Workflow expression + that selects a state data element + to which the action results should + be added/merged into. If not specified + denotes the top-level state data + element. + type: string + useResults: + description: If set to false, action + data results are not added/merged + to state data. In this case 'results' + and 'toStateData' should be ignored. + Default is true. + type: boolean type: object + condition: + description: Expression, if defined, + must evaluate to true for this action + to be performed. If false, action + is disregarded. + type: string eventRef: - description: Reference to a defined - unique event name in the events definition + description: References a 'trigger' + and 'result' reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension + context attributes to the produced + event. + type: object + data: + description: If string type, an + expression which selects parts + of the states data output to become + the data (payload) of the event + referenced by triggerEventRef. + If object type, a custom object + to become the data (payload) of + the event referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. + Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique + name of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time + (ISO 8601 format) to wait for + the result event. If not defined + it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique + name of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) + to be passed to the referenced + function TODO: validate it as + required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. + Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced + function. + type: string + selectionSet: + description: 'Used if function type + is graphql. String containing + a valid GraphQL selection set. + TODO: validate it as required + if function type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. type: string - required: - - eventRef + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references + to defined workflow errors for which + the action should not be retried. + Used only when `autoRetries` is set + to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow + retry definition. If not defined uses + the default runtime retry definition. + type: string + retryableErrors: + description: List of unique references + to defined workflow errors for which + the action should be retried. Used + only when `autoRetries` is set to + `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow + execution should sleep before / after + function execution. + properties: + after: + description: Defines amount of time + (ISO 8601 duration format) to + sleep after function/subflow invocation. + Does not apply if 'eventRef' is + defined. + type: string + before: + description: Defines amount of time + (ISO 8601 duration format) to + sleep before function/subflow + invocation. Does not apply if + 'eventRef' is defined. + type: string + type: object + subFlowRef: + description: References a workflow to + be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow + should be invoked sync or async. + Defaults to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave + when parent workflow completes + if invoke is 'async'. Defaults + to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique + id + type: string + required: + - workflowId + type: object type: object + minItems: 1 type: array - terminate: - description: If true, completes all execution - flows in the given workflow instance. - type: boolean + name: + description: Branch name + type: string + timeouts: + description: Branch specific timeout settings + properties: + actionExecTimeout: + description: Single actions definition + execution timeout duration (ISO 8601 + duration format) + type: string + branchExecTimeout: + description: Single branch execution timeout + duration (ISO 8601 duration format) + type: string + type: object + required: + - actions + - name type: object - metadata: - additionalProperties: + minItems: 1 + type: array + completionType: + default: allOf + description: Option types on how to complete branch + execution. Defaults to `allOf`. + enum: + - allOf + - atLeast + type: string + numCompleted: + anyOf: + - type: integer + - type: string + description: 'Used when branchCompletionType is + set to atLeast to specify the least number of + branches that must complete in order for the state + to transition/end. TODO: change this field to + unmarshal result as int' + x-kubernetes-int-or-string: true + timeouts: + description: State specific timeouts + properties: + branchExecTimeout: + description: Default single branch execution + timeout (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total type: object - description: Metadata information. - type: object - name: - description: Data condition name. - type: string - transition: - description: Workflow transition if condition - is evaluated to true - properties: - compensate: - default: false - description: If set to true, triggers workflow - compensation before this transition is taken. - Default is false. - type: boolean - nextState: - description: Name of the state to transition - to next. - type: string - produceEvents: - description: Array of producedEvent definitions. - Events to be produced before the transition - takes place. - items: - description: ProduceEvent Defines the event - (CloudEvent format) to be produced when - workflow execution completes or during - a workflow transitions. The eventRef property - must match the name of one of the defined - produced events in the events definition. - properties: - contextAttributes: - additionalProperties: + type: object + required: + - branches + type: object + sleepState: + description: sleepState suspends workflow execution + for a given time duration. + properties: + duration: + description: Duration (ISO 8601 duration format) + to sleep + type: string + timeouts: + description: Timeouts State specific timeouts + properties: + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - duration + type: object + stateDataFilter: + description: State data filter. + properties: + input: + description: Workflow expression to filter the state + data input + type: string + output: + description: Workflow expression that filters the + state data output + type: string + type: object + switchState: + description: 'switchState is workflow''s gateways: direct + transitions onf a workflow based on certain conditions.' + properties: + dataConditions: + description: Defines conditions evaluated against + data + items: + description: DataCondition specify a data-based + condition statement which causes a transition + to another workflow state if evaluated to true. + properties: + condition: + description: Workflow expression evaluated + against state data. Must evaluate to true + or false. + type: string + end: + description: TODO End or Transition needs + to be exclusive tag, one or another should + be set. Explicit transition to end + properties: + compensate: + description: If set to true, triggers + workflow compensation before workflow + execution completes. Default is false. + type: boolean + continueAs: + description: Defines that current workflow + execution should stop, and execution + should continue as a new workflow instance + of the provided id + properties: + data: + description: If string type, an expression + which selects parts of the states + data output to become the workflow + data input of continued execution. + If object type, a custom object + to become the workflow data input + of the continued execution + type: object + version: + description: Version of the workflow + to continue execution as. type: string - description: Add additional event extension - context attributes. - type: object - data: - description: If String, expression which - selects parts of the states data output - to become the data of the produced - event. If object a custom object to - become the data of produced event. + workflowExecTimeout: + description: WorkflowExecTimeout Workflow + execution timeout to be used by + the workflow continuing execution. + Overwrites any specific settings + set by that workflow + properties: + duration: + default: unlimited + description: Workflow execution + timeout duration (ISO 8601 duration + format). If not specified should + be 'unlimited'. + type: string + interrupt: + description: If false, workflow + instance is allowed to finish + current execution. If true, + current workflow execution is + stopped immediately. Default + is false. + type: boolean + runBefore: + description: Name of a workflow + state to be executed before + workflow instance is terminated. + type: string + required: + - duration + type: object + workflowId: + description: Unique id of the workflow + to continue execution as. + type: string + required: + - workflowId + type: object + produceEvents: + description: Array of producedEvent definitions. + Defines events that should be produced. + items: + description: ProduceEvent Defines the + event (CloudEvent format) to be produced + when workflow execution completes + or during a workflow transitions. + The eventRef property must match the + name of one of the defined produced + events in the events definition. + properties: + contextAttributes: + additionalProperties: + type: string + description: Add additional event + extension context attributes. + type: object + data: + description: If String, expression + which selects parts of the states + data output to become the data + of the produced event. If object + a custom object to become the + data of produced event. + type: object + eventRef: + description: Reference to a defined + unique event name in the events + definition + type: string + required: + - eventRef type: object - eventRef: - description: Reference to a defined - unique event name in the events definition - type: string - required: - - eventRef + type: array + terminate: + description: If true, completes all execution + flows in the given workflow instance. + type: boolean + type: object + metadata: + additionalProperties: type: object - type: array + description: Metadata information. + type: object + name: + description: Data condition name. + type: string + transition: + description: Workflow transition if condition + is evaluated to true + properties: + compensate: + default: false + description: If set to true, triggers + workflow compensation before this transition + is taken. Default is false. + type: boolean + nextState: + description: Name of the state to transition + to next. + type: string + produceEvents: + description: Array of producedEvent definitions. + Events to be produced before the transition + takes place. + items: + description: ProduceEvent Defines the + event (CloudEvent format) to be produced + when workflow execution completes + or during a workflow transitions. + The eventRef property must match the + name of one of the defined produced + events in the events definition. + properties: + contextAttributes: + additionalProperties: + type: string + description: Add additional event + extension context attributes. + type: object + data: + description: If String, expression + which selects parts of the states + data output to become the data + of the produced event. If object + a custom object to become the + data of produced event. + type: object + eventRef: + description: Reference to a defined + unique event name in the events + definition + type: string + required: + - eventRef + type: object + type: array + required: + - nextState + type: object required: - - nextState + - condition + - end type: object - required: - - condition - - end - type: object - type: array - defaultCondition: - description: Default transition of the workflow if there - is no matching data conditions. Can include a transition - or end definition. - properties: - end: - description: If this state an end state - x-kubernetes-preserve-unknown-fields: true - transition: - description: Serverless workflow states can have - one or more incoming and outgoing transitions - (from/to other states). Each state can define - a transition definition that is used to determine - which state to transition to next. - x-kubernetes-preserve-unknown-fields: true - type: object - eventConditions: - description: Defines conditions evaluated against events. - items: - description: EventCondition specify events which the - switch state must wait for. - properties: - end: - description: TODO End or Transition needs to be - exclusive tag, one or another should be set. - Explicit transition to end - x-kubernetes-preserve-unknown-fields: true - eventDataFilter: - description: Event data filter definition. + type: array + defaultCondition: + description: Default transition of the workflow + if there is no matching data conditions. Can include + a transition or end definition. + properties: + end: + description: If this state an end state + x-kubernetes-preserve-unknown-fields: true + transition: + description: Serverless workflow states can + have one or more incoming and outgoing transitions + (from/to other states). Each state can define + a transition definition that is used to determine + which state to transition to next. + x-kubernetes-preserve-unknown-fields: true + type: object + eventConditions: + description: Defines conditions evaluated against + events. + items: + description: EventCondition specify events which + the switch state must wait for. properties: - data: - description: Workflow expression that filters - of the event data (payload). + end: + description: TODO End or Transition needs + to be exclusive tag, one or another should + be set. Explicit transition to end + x-kubernetes-preserve-unknown-fields: true + eventDataFilter: + description: Event data filter definition. + properties: + data: + description: Workflow expression that + filters of the event data (payload). + type: string + toStateData: + description: Workflow expression that + selects a state data element to which + the action results should be added/merged + into. If not specified denotes the top-level + state data element + type: string + useData: + description: If set to false, event payload + is not added/merged to state data. In + this case 'data' and 'toStateData' should + be ignored. Default is true. + type: boolean + type: object + eventRef: + description: References a unique event name + in the defined workflow events. type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action - results should be added/merged into. If - not specified denotes the top-level state - data element + metadata: + description: Metadata information. + x-kubernetes-preserve-unknown-fields: true + name: + description: Event condition name. type: string - useData: - description: If set to false, event payload - is not added/merged to state data. In this - case 'data' and 'toStateData' should be - ignored. Default is true. - type: boolean + transition: + description: Workflow transition if condition + is evaluated to true + x-kubernetes-preserve-unknown-fields: true + required: + - eventRef type: object - eventRef: - description: References a unique event name in - the defined workflow events. - type: string - metadata: - description: Metadata information. - x-kubernetes-preserve-unknown-fields: true - name: - description: Event condition name. - type: string - transition: - description: Workflow transition if condition - is evaluated to true - x-kubernetes-preserve-unknown-fields: true - required: - - eventRef - type: object - type: array - timeouts: - description: SwitchState specific timeouts - properties: - eventTimeout: - description: 'Specify the expire value to transitions - to defaultCondition. When event-based conditions - do not arrive. NOTE: this is only available for - EventConditions' - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) + type: array + timeouts: + description: SwitchState specific timeouts properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) + eventTimeout: + description: 'Specify the expire value to transitions + to defaultCondition. When event-based conditions + do not arrive. NOTE: this is only available + for EventConditions' type: string - required: - - total + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object type: object + required: + - defaultCondition type: object + transition: + description: Next transition of the workflow after the + time delay. + x-kubernetes-preserve-unknown-fields: true + type: + description: stateType can be any of delay, callback, + event, foreach, inject, operation, parallel, sleep, + switch + enum: + - delay + - callback + - event + - foreach + - inject + - operation + - parallel + - sleep + - switch + type: string + usedForCompensation: + description: If true, this state is used to compensate + another state. Default is false. + type: boolean required: - - defaultCondition + - name + - type type: object - transition: - description: Next transition of the workflow after the time - delay. - x-kubernetes-preserve-unknown-fields: true - type: - description: stateType can be any of delay, callback, event, - foreach, inject, operation, parallel, sleep, switch - enum: - - delay - - callback - - event - - foreach - - inject - - operation - - parallel - - sleep - - switch - type: string - usedForCompensation: - description: If true, this state is used to compensate another - state. Default is false. - type: boolean - required: - - name - - type - type: object - minItems: 1 - type: array - x-kubernetes-preserve-unknown-fields: true - timeouts: - description: Defines the workflow default timeout settings. - properties: - actionExecTimeout: - description: ActionExecTimeout Single actions definition execution - timeout duration (ISO 8601 duration format). - type: string - branchExecTimeout: - description: BranchExecTimeout Single branch execution timeout - duration (ISO 8601 duration format). - type: string - eventTimeout: - description: EventTimeout Timeout duration to wait for consuming - defined events (ISO 8601 duration format). - type: string - stateExecTimeout: - description: StateExecTimeout Total state execution timeout - (including retries) (ISO 8601 duration format). + minItems: 1 + type: array + x-kubernetes-preserve-unknown-fields: true + timeouts: + description: Defines the workflow default timeout settings. properties: - single: - description: Single state execution timeout, not including - retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) + actionExecTimeout: + description: ActionExecTimeout Single actions definition + execution timeout duration (ISO 8601 duration format). type: string - required: - - total - type: object - workflowExecTimeout: - description: WorkflowExecTimeout Workflow execution timeout - duration (ISO 8601 duration format). If not specified should - be 'unlimited'. - properties: - duration: - default: unlimited - description: Workflow execution timeout duration (ISO - 8601 duration format). If not specified should be 'unlimited'. + branchExecTimeout: + description: BranchExecTimeout Single branch execution + timeout duration (ISO 8601 duration format). type: string - interrupt: - description: If false, workflow instance is allowed to - finish current execution. If true, current workflow - execution is stopped immediately. Default is false. - type: boolean - runBefore: - description: Name of a workflow state to be executed before - workflow instance is terminated. + eventTimeout: + description: EventTimeout Timeout duration to wait for + consuming defined events (ISO 8601 duration format). type: string - required: - - duration + stateExecTimeout: + description: StateExecTimeout Total state execution timeout + (including retries) (ISO 8601 duration format). + properties: + single: + description: Single state execution timeout, not including + retries (ISO 8601 duration format) + type: string + total: + description: Total state execution timeout, including + retries (ISO 8601 duration format) + type: string + required: + - total + type: object + workflowExecTimeout: + description: WorkflowExecTimeout Workflow execution timeout + duration (ISO 8601 duration format). If not specified + should be 'unlimited'. + properties: + duration: + default: unlimited + description: Workflow execution timeout duration (ISO + 8601 duration format). If not specified should be + 'unlimited'. + type: string + interrupt: + description: If false, workflow instance is allowed + to finish current execution. If true, current workflow + execution is stopped immediately. Default is false. + type: boolean + runBefore: + description: Name of a workflow state to be executed + before workflow instance is terminated. + type: string + required: + - duration + type: object type: object + version: + description: Workflow version. + type: string + required: + - specVersion + - states type: object - version: - description: Workflow version. - type: string required: - - specVersion - - states + - flow type: object conditions: description: The latest available observations of a resource's current diff --git a/config/crd/bases/sw.kogito.kie.org_kogitoserverlessworkflows.yaml b/config/crd/bases/sw.kogito.kie.org_kogitoserverlessworkflows.yaml index 2c25fff9bd0..6d057644758 100644 --- a/config/crd/bases/sw.kogito.kie.org_kogitoserverlessworkflows.yaml +++ b/config/crd/bases/sw.kogito.kie.org_kogitoserverlessworkflows.yaml @@ -56,2163 +56,128 @@ spec: description: KogitoServerlessWorkflowSpec defines the desired state of KogitoServerlessWorkflow properties: - annotations: - description: Annotations List of helpful terms describing the workflows - intended purpose, subject areas, or other important qualities. - items: - type: string - type: array - auth: - description: Auth definitions can be used to define authentication - information that should be applied to resources defined in the operation - property of function definitions. It is not used as authentication - information for the function invocation, but just to access the - resource containing the function invocation information. - x-kubernetes-preserve-unknown-fields: true - autoRetries: - description: AutoRetries If set to true, actions should automatically - be retried on unchecked errors. Default is false - type: boolean - constants: - additionalProperties: - description: RawMessage is a raw encoded JSON value. It implements - Marshaler and Unmarshaler and can be used to delay JSON decoding - or precompute a JSON encoding. - format: byte - type: string - description: Constants Workflow constants are used to define static, - and immutable, data which is available to Workflow Expressions. - type: object - dataInputSchema: - description: DataInputSchema URI of the JSON Schema used to validate - the workflow data input + flow: + description: Workflow base definition properties: - failOnValidationErrors: - type: boolean - schema: - type: string - required: - - failOnValidationErrors - - schema - type: object - description: - description: Workflow description. - type: string - errors: - description: Defines checked errors that can be explicitly handled - during workflow execution. - items: - description: Error declaration for workflow definitions - properties: - code: - description: Code OnError code. Can be used in addition to the - name to help runtimes resolve to technical errors/exceptions. - Should not be defined if error is set to '*'. - type: string - description: - description: OnError description. - type: string - name: - description: Name Domain-specific error name. - type: string - required: - - name - type: object - type: array - events: - items: - description: Event used to define events and their correlations - properties: - correlation: - description: Define event correlation rules for this event. - Only used for consumed events. - items: - description: Correlation define event correlation rules for - an event. Only used for `consumed` events - properties: - contextAttributeName: - description: CloudEvent Extension Context Attribute name - type: string - contextAttributeValue: - description: CloudEvent Extension Context Attribute value - type: string - required: - - contextAttributeName - type: object - type: array - dataOnly: - description: If `true`, only the Event payload is accessible - to consuming Workflow states. If `false`, both event payload - and context attributes should be accessible. Defaults to true. - type: boolean - kind: - default: consumed - description: Defines the CloudEvent as either 'consumed' or - 'produced' by the workflow. Defaults to `consumed`. - enum: - - consumed - - produced - type: string - metadata: - additionalProperties: - type: object - description: Metadata information - type: object - name: - description: Unique event name. - type: string - source: - description: CloudEvent source. - type: string - type: - description: CloudEvent type. - type: string - required: - - name - - type - type: object - type: array - expressionLang: - default: jq - description: Identifies the expression language used for workflow - expressions. Default is 'jq'. - enum: - - jq - - jsonpath - type: string - functions: - items: - description: Function ... - properties: - authRef: - description: References an auth definition name to be used to - access to resource defined in the operation parameter. - type: string - metadata: - additionalProperties: - type: object - description: Metadata information - type: object - name: - description: Unique function name - type: string - operation: - description: If type is `rest`, #. - If type is `rpc`, ##. - If type is `expression`, defines the workflow expression. - If the type is `custom`, #. - type: string - type: - default: rest - description: Defines the function type. Is either `custom`, - `rest`, `rpc`, `expression`, `graphql`, `odata` or `asyncapi`. - Default is `rest`. - enum: - - rest - - rpc - - expression - - graphql - - odata - - asyncapi - - custom - type: string - required: - - name - - operation - type: object - type: array - id: - description: Workflow unique identifier - type: string - keepActive: - description: If "true", workflow instances is not terminated when - there are no active execution paths. Instance can be terminated - with "terminate end definition" or reaching defined "workflowExecTimeout" - type: boolean - key: - description: Key Domain-specific workflow identifier - type: string - metadata: - description: Metadata custom information shared with the runtime. - x-kubernetes-preserve-unknown-fields: true - name: - description: Workflow name - type: string - retries: - items: - description: Retry ... - properties: - delay: - description: Time delay between retry attempts (ISO 8601 duration - format) + annotations: + description: Annotations List of helpful terms describing the + workflows intended purpose, subject areas, or other important + qualities. + items: type: string - increment: - description: Static value by which the delay increases during - each attempt (ISO 8601 time format) + type: array + auth: + description: Auth definitions can be used to define authentication + information that should be applied to resources defined in the + operation property of function definitions. It is not used as + authentication information for the function invocation, but + just to access the resource containing the function invocation + information. + x-kubernetes-preserve-unknown-fields: true + autoRetries: + description: AutoRetries If set to true, actions should automatically + be retried on unchecked errors. Default is false + type: boolean + constants: + additionalProperties: + description: RawMessage is a raw encoded JSON value. It implements + Marshaler and Unmarshaler and can be used to delay JSON decoding + or precompute a JSON encoding. + format: byte type: string - jitter: - description: 'If float type, maximum amount of random time added - or subtracted from the delay between each retry relative to - total delay (between 0 and 1). If string type, absolute maximum - amount of random time added or subtracted from the delay between - each retry (ISO 8601 duration format) TODO: make iso8601duration - compatible this type' + description: Constants Workflow constants are used to define static, + and immutable, data which is available to Workflow Expressions. + type: object + dataInputSchema: + description: DataInputSchema URI of the JSON Schema used to validate + the workflow data input + properties: + failOnValidationErrors: + type: boolean + schema: + type: string + required: + - failOnValidationErrors + - schema + type: object + description: + description: Workflow description. + type: string + errors: + description: Defines checked errors that can be explicitly handled + during workflow execution. + items: + description: Error declaration for workflow definitions properties: - floatVal: - type: number - strVal: + code: + description: Code OnError code. Can be used in addition + to the name to help runtimes resolve to technical errors/exceptions. + Should not be defined if error is set to '*'. type: string - type: - description: Type represents the stored type of Float32OrString. - format: int64 - type: integer - type: object - maxAttempts: - anyOf: - - type: integer - - type: string - description: Maximum number of retry attempts. - x-kubernetes-int-or-string: true - maxDelay: - description: Maximum time delay between retry attempts (ISO - 8601 duration format) - type: string - multiplier: - description: Numeric value, if specified the delay between retries - is multiplied by this value. - properties: - floatVal: - type: number - strVal: + description: + description: OnError description. type: string - type: - description: Type represents the stored type of Float32OrString. - format: int64 - type: integer + name: + description: Name Domain-specific error name. + type: string + required: + - name type: object - name: - description: Unique retry strategy name - type: string - required: - - maxAttempts - - name - type: object - type: array - secrets: - description: Secrets allow you to access sensitive information, such - as passwords, OAuth tokens, ssh keys, etc, inside your Workflow - Expressions. - items: - type: string - type: array - specVersion: - default: "0.8" - description: Serverless Workflow schema version - type: string - start: - description: Workflow start definition. - x-kubernetes-preserve-unknown-fields: true - states: - items: - properties: - callbackState: - description: callbackState executes a function and waits for - callback event that indicates completion of the task. + type: array + events: + items: + description: Event used to define events and their correlations properties: - action: - description: Defines the action to be executed. - properties: - actionDataFilter: - description: Filter the state data to select only the - data that can be used within function definition arguments - using its fromStateData property. Filter the action - results to select only the result data that should - be added/merged back into the state data using its - results property. Select the part of state data which - the action data results should be added/merged to - using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters state - data that can be used by the action. - type: string - results: - description: Workflow expression that filters the - actions data results. - type: string - toStateData: - description: Workflow expression that selects a - state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element. - type: string - useResults: - description: If set to false, action data results - are not added/merged to state data. In this case - 'results' and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate to - true for this action to be performed. If false, action - is disregarded. - type: string - eventRef: - description: References a 'trigger' and 'result' reusable - event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context attributes - to the produced event. - type: object - data: - description: If string type, an expression which - selects parts of the states data output to become - the data (payload) of the event referenced by - triggerEventRef. If object type, a custom object - to become the data (payload) of the event referenced - by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should be - invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name of a 'consumed' - event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 format) - to wait for the result event. If not defined it - be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name of a 'produced' - event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed to - the referenced function TODO: validate it as required - if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should be - invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection set. - TODO: validate it as required if function type - is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined workflow - errors for which the action should not be retried. - Used only when `autoRetries` is set to `true` - items: + correlation: + description: Define event correlation rules for this event. + Only used for consumed events. + items: + description: Correlation define event correlation rules + for an event. Only used for `consumed` events + properties: + contextAttributeName: + description: CloudEvent Extension Context Attribute + name type: string - type: array - retryRef: - description: References a defined workflow retry definition. - If not defined uses the default runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined workflow - errors for which the action should be retried. Used - only when `autoRetries` is set to `false` - items: + contextAttributeValue: + description: CloudEvent Extension Context Attribute + value type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO 8601 duration - format) to sleep after function/subflow invocation. - Does not apply if 'eventRef' is defined. - type: string - before: - description: Defines amount of time (ISO 8601 duration - format) to sleep before function/subflow invocation. - Does not apply if 'eventRef' is defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should be - invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how subflow - execution should behave when parent workflow completes - if invoke is 'async'. Defaults to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object - type: object - eventDataFilter: - description: Event data filter definition. - properties: - data: - description: Workflow expression that filters of the - event data (payload). - type: string - toStateData: - description: Workflow expression that selects a state - data element to which the action results should be - added/merged into. If not specified denotes the top-level - state data element - type: string - useData: - description: If set to false, event payload is not added/merged - to state data. In this case 'data' and 'toStateData' - should be ignored. Default is true. - type: boolean - type: object - eventRef: - description: References a unique callback event name in - the defined workflow events. + required: + - contextAttributeName + type: object + type: array + dataOnly: + description: If `true`, only the Event payload is accessible + to consuming Workflow states. If `false`, both event payload + and context attributes should be accessible. Defaults + to true. + type: boolean + kind: + default: consumed + description: Defines the CloudEvent as either 'consumed' + or 'produced' by the workflow. Defaults to `consumed`. + enum: + - consumed + - produced type: string - timeouts: - description: Time period to wait for incoming events (ISO - 8601 format) - properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - eventTimeout: - description: Default timeout for consuming defined events - (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object + metadata: + additionalProperties: + type: object + description: Metadata information type: object - required: - - action - - eventRef - type: object - compensatedBy: - description: Unique Name of a workflow state which is responsible - for compensation of this state. - type: string - delayState: - description: delayState Causes the workflow execution to delay - for a specified duration. - properties: - timeDelay: - description: Amount of time (ISO 8601 format) to delay + name: + description: Unique event name. + type: string + source: + description: CloudEvent source. + type: string + type: + description: CloudEvent type. type: string required: - - timeDelay - type: object - end: - description: State end definition. - x-kubernetes-preserve-unknown-fields: true - eventState: - description: event states await one or more events and perform - actions when they are received. If defined as the workflow - starting state, the event state definition controls when the - workflow instances should be created. - properties: - exclusive: - default: true - description: If true consuming one of the defined events - causes its associated actions to be performed. If false - all the defined events must be consumed in order for actions - to be performed. Defaults to true. - type: boolean - onEvents: - description: Define the events to be consumed and optional - actions to be performed. - items: - description: OnEvents define which actions are be performed - for the one or more events. - properties: - actionMode: - default: sequential - description: Should actions be performed sequentially - or in parallel. Default is sequential. - enum: - - sequential - - parallel - type: string - actions: - description: Actions to be performed if expression - matches - items: - description: Action specify invocations of services - or other workflows during workflow execution. - properties: - actionDataFilter: - description: Filter the state data to select - only the data that can be used within function - definition arguments using its fromStateData - property. Filter the action results to select - only the result data that should be added/merged - back into the state data using its results - property. Select the part of state data which - the action data results should be added/merged - to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action - results should be added/merged into. If - not specified denotes the top-level state - data element. - type: string - useResults: - description: If set to false, action data - results are not added/merged to state - data. In this case 'results' and 'toStateData' - should be ignored. Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If - false, action is disregarded. - type: string - eventRef: - description: References a 'trigger' and 'result' - reusable event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression - which selects parts of the states data - output to become the data (payload) of - the event referenced by triggerEventRef. - If object type, a custom object to become - the data (payload) of the event referenced - by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name - of a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO - 8601 format) to wait for the result event. - If not defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name - of a 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function - definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate - it as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if - function type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should - not be retried. Used only when `autoRetries` - is set to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry - definition. If not defined uses the default - runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should - be retried. Used only when `autoRetries` is - set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO - 8601 duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string - before: - description: Defines amount of time (ISO - 8601 duration format) to sleep before - function/subflow invocation. Does not - apply if 'eventRef' is defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should - be invoked sync or async. Defaults to - sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies - how subflow execution should behave when - parent workflow completes if invoke is - 'async'. Defaults to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object - type: object - type: array - eventDataFilter: - description: eventDataFilter defines the callback - event data filter definition - properties: - data: - description: Workflow expression that filters - of the event data (payload). - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element - type: string - useData: - description: If set to false, event payload is - not added/merged to state data. In this case - 'data' and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - eventRefs: - description: References one or more unique event names - in the defined workflow events. - items: - type: string - minItems: 1 - type: array - required: - - eventRefs - type: object - minItems: 1 - type: array - timeouts: - description: State specific timeouts. - properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - eventTimeout: - description: Default timeout for consuming defined events - (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - onEvents - type: object - forEachState: - description: forEachState used to execute actions for each element - of a data set. - properties: - actions: - description: Actions to be executed for each of the elements - of inputCollection. - items: - description: Action specify invocations of services or - other workflows during workflow execution. - properties: - actionDataFilter: - description: Filter the state data to select only - the data that can be used within function definition - arguments using its fromStateData property. Filter - the action results to select only the result data - that should be added/merged back into the state - data using its results property. Select the part - of state data which the action data results should - be added/merged to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element. - type: string - useResults: - description: If set to false, action data results - are not added/merged to state data. In this - case 'results' and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If false, - action is disregarded. - type: string - eventRef: - description: References a 'trigger' and 'result' reusable - event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression which - selects parts of the states data output to become - the data (payload) of the event referenced by - triggerEventRef. If object type, a custom object - to become the data (payload) of the event referenced - by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name of a - 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 - format) to wait for the result event. If not - defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name of a - 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate it - as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if function - type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should not - be retried. Used only when `autoRetries` is set - to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry definition. - If not defined uses the default runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should be retried. - Used only when `autoRetries` is set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO 8601 - duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' is - defined. - type: string - before: - description: Defines amount of time (ISO 8601 - duration format) to sleep before function/subflow - invocation. Does not apply if 'eventRef' is - defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should be - invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how subflow - execution should behave when parent workflow - completes if invoke is 'async'. Defaults to - terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object - type: object - minItems: 1 - type: array - batchSize: - anyOf: - - type: integer - - type: string - description: Specifies how many iterations may run in parallel - at the same time. Used if mode property is set to parallel - (default). If not specified, its value should be the size - of the inputCollection. - x-kubernetes-int-or-string: true - inputCollection: - description: Workflow expression selecting an array element - of the states' data. - type: string - iterationParam: - description: Name of the iteration parameter that can be - referenced in actions/workflow. For each parallel iteration, - this param should contain a unique element of the inputCollection - array. - type: string - mode: - default: parallel - description: Specifies how iterations are to be performed - (sequential or in parallel), defaults to parallel. - enum: - - sequential - - parallel - type: string - outputCollection: - description: Workflow expression specifying an array element - of the states data to add the results of each iteration. - type: string - timeouts: - description: State specific timeout. - properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - inputCollection - type: object - id: - description: Unique State id. - type: string - injectState: - description: injectState used to inject static data into state - data input. - properties: - data: - additionalProperties: - type: object - description: JSON object which can be set as state's data - input and can be manipulated via filter - minProperties: 1 - type: object - timeouts: - description: State specific timeouts - properties: - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - data - type: object - metadata: - additionalProperties: - type: object - description: Metadata information. - type: object - name: - description: State name. - type: string - onErrors: - description: States error handling and retries definitions. - items: - description: OnError ... - properties: - end: - description: End workflow execution in case of this error. - If retryRef is defined, this ends workflow only if retries - were unsuccessful. - x-kubernetes-preserve-unknown-fields: true - errorRef: - description: ErrorRef Reference to a unique workflow error - definition. Used of errorRefs is not used - type: string - errorRefs: - description: ErrorRefs References one or more workflow - error definitions. Used if errorRef is not used - items: - type: string - type: array - transition: - description: Transition to next state to handle the error. - If retryRef is defined, this transition is taken only - if retries were unsuccessful. - x-kubernetes-preserve-unknown-fields: true - type: object - type: array - operationState: - description: operationState defines a set of actions to be performed - in sequence or in parallel. - properties: - actionMode: - default: sequential - description: Specifies whether actions are performed in - sequence or in parallel, defaults to sequential. - enum: - - sequential - - parallel - type: string - actions: - description: Actions to be performed - items: - description: Action specify invocations of services or - other workflows during workflow execution. - properties: - actionDataFilter: - description: Filter the state data to select only - the data that can be used within function definition - arguments using its fromStateData property. Filter - the action results to select only the result data - that should be added/merged back into the state - data using its results property. Select the part - of state data which the action data results should - be added/merged to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element. - type: string - useResults: - description: If set to false, action data results - are not added/merged to state data. In this - case 'results' and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If false, - action is disregarded. - type: string - eventRef: - description: References a 'trigger' and 'result' reusable - event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression which - selects parts of the states data output to become - the data (payload) of the event referenced by - triggerEventRef. If object type, a custom object - to become the data (payload) of the event referenced - by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name of a - 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 - format) to wait for the result event. If not - defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name of a - 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate it - as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if function - type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should not - be retried. Used only when `autoRetries` is set - to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry definition. - If not defined uses the default runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should be retried. - Used only when `autoRetries` is set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO 8601 - duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' is - defined. - type: string - before: - description: Defines amount of time (ISO 8601 - duration format) to sleep before function/subflow - invocation. Does not apply if 'eventRef' is - defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should be - invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how subflow - execution should behave when parent workflow - completes if invoke is 'async'. Defaults to - terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object - type: object - minItems: 1 - type: array - timeouts: - description: State specific timeouts - properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Defines workflow state execution timeout. - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - actions - type: object - parallelState: - description: parallelState Consists of a number of states that - are executed in parallel. - properties: - branches: - description: List of branches for this parallel state. - items: - description: Branch Definition - properties: - actions: - description: Actions to be executed in this branch - items: - description: Action specify invocations of services - or other workflows during workflow execution. - properties: - actionDataFilter: - description: Filter the state data to select - only the data that can be used within function - definition arguments using its fromStateData - property. Filter the action results to select - only the result data that should be added/merged - back into the state data using its results - property. Select the part of state data which - the action data results should be added/merged - to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action - results should be added/merged into. If - not specified denotes the top-level state - data element. - type: string - useResults: - description: If set to false, action data - results are not added/merged to state - data. In this case 'results' and 'toStateData' - should be ignored. Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If - false, action is disregarded. - type: string - eventRef: - description: References a 'trigger' and 'result' - reusable event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression - which selects parts of the states data - output to become the data (payload) of - the event referenced by triggerEventRef. - If object type, a custom object to become - the data (payload) of the event referenced - by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name - of a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO - 8601 format) to wait for the result event. - If not defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name - of a 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function - definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate - it as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if - function type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should - not be retried. Used only when `autoRetries` - is set to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry - definition. If not defined uses the default - runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should - be retried. Used only when `autoRetries` is - set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO - 8601 duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string - before: - description: Defines amount of time (ISO - 8601 duration format) to sleep before - function/subflow invocation. Does not - apply if 'eventRef' is defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should - be invoked sync or async. Defaults to - sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies - how subflow execution should behave when - parent workflow completes if invoke is - 'async'. Defaults to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object - type: object - minItems: 1 - type: array - name: - description: Branch name - type: string - timeouts: - description: Branch specific timeout settings - properties: - actionExecTimeout: - description: Single actions definition execution - timeout duration (ISO 8601 duration format) - type: string - branchExecTimeout: - description: Single branch execution timeout duration - (ISO 8601 duration format) - type: string - type: object - required: - - actions - - name - type: object - minItems: 1 - type: array - completionType: - default: allOf - description: Option types on how to complete branch execution. - Defaults to `allOf`. - enum: - - allOf - - atLeast - type: string - numCompleted: - anyOf: - - type: integer - - type: string - description: 'Used when branchCompletionType is set to atLeast - to specify the least number of branches that must complete - in order for the state to transition/end. TODO: change - this field to unmarshal result as int' - x-kubernetes-int-or-string: true - timeouts: - description: State specific timeouts - properties: - branchExecTimeout: - description: Default single branch execution timeout - (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - branches - type: object - sleepState: - description: sleepState suspends workflow execution for a given - time duration. - properties: - duration: - description: Duration (ISO 8601 duration format) to sleep - type: string - timeouts: - description: Timeouts State specific timeouts - properties: - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - duration - type: object - stateDataFilter: - description: State data filter. - properties: - input: - description: Workflow expression to filter the state data - input - type: string - output: - description: Workflow expression that filters the state - data output - type: string - type: object - switchState: - description: 'switchState is workflow''s gateways: direct transitions - onf a workflow based on certain conditions.' - properties: - dataConditions: - description: Defines conditions evaluated against data - items: - description: DataCondition specify a data-based condition - statement which causes a transition to another workflow - state if evaluated to true. - properties: - condition: - description: Workflow expression evaluated against - state data. Must evaluate to true or false. - type: string - end: - description: TODO End or Transition needs to be exclusive - tag, one or another should be set. Explicit transition - to end - properties: - compensate: - description: If set to true, triggers workflow - compensation before workflow execution completes. - Default is false. - type: boolean - continueAs: - description: Defines that current workflow execution - should stop, and execution should continue as - a new workflow instance of the provided id - properties: - data: - description: If string type, an expression - which selects parts of the states data output - to become the workflow data input of continued - execution. If object type, a custom object - to become the workflow data input of the - continued execution - type: object - version: - description: Version of the workflow to continue - execution as. - type: string - workflowExecTimeout: - description: WorkflowExecTimeout Workflow - execution timeout to be used by the workflow - continuing execution. Overwrites any specific - settings set by that workflow - properties: - duration: - default: unlimited - description: Workflow execution timeout - duration (ISO 8601 duration format). - If not specified should be 'unlimited'. - type: string - interrupt: - description: If false, workflow instance - is allowed to finish current execution. - If true, current workflow execution - is stopped immediately. Default is false. - type: boolean - runBefore: - description: Name of a workflow state - to be executed before workflow instance - is terminated. - type: string - required: - - duration - type: object - workflowId: - description: Unique id of the workflow to - continue execution as. - type: string - required: - - workflowId - type: object - produceEvents: - description: Array of producedEvent definitions. - Defines events that should be produced. - items: - description: ProduceEvent Defines the event - (CloudEvent format) to be produced when workflow - execution completes or during a workflow transitions. - The eventRef property must match the name - of one of the defined produced events in the - events definition. - properties: - contextAttributes: - additionalProperties: - type: string - description: Add additional event extension - context attributes. - type: object - data: - description: If String, expression which - selects parts of the states data output - to become the data of the produced event. - If object a custom object to become the - data of produced event. - type: object - eventRef: - description: Reference to a defined unique - event name in the events definition - type: string - required: - - eventRef - type: object - type: array - terminate: - description: If true, completes all execution - flows in the given workflow instance. - type: boolean - type: object - metadata: - additionalProperties: - type: object - description: Metadata information. - type: object - name: - description: Data condition name. - type: string - transition: - description: Workflow transition if condition is evaluated - to true - properties: - compensate: - default: false - description: If set to true, triggers workflow - compensation before this transition is taken. - Default is false. - type: boolean - nextState: - description: Name of the state to transition to - next. - type: string - produceEvents: - description: Array of producedEvent definitions. - Events to be produced before the transition - takes place. - items: - description: ProduceEvent Defines the event - (CloudEvent format) to be produced when workflow - execution completes or during a workflow transitions. - The eventRef property must match the name - of one of the defined produced events in the - events definition. - properties: - contextAttributes: - additionalProperties: - type: string - description: Add additional event extension - context attributes. - type: object - data: - description: If String, expression which - selects parts of the states data output - to become the data of the produced event. - If object a custom object to become the - data of produced event. - type: object - eventRef: - description: Reference to a defined unique - event name in the events definition - type: string - required: - - eventRef - type: object - type: array - required: - - nextState - type: object - required: - - condition - - end - type: object - type: array - defaultCondition: - description: Default transition of the workflow if there - is no matching data conditions. Can include a transition - or end definition. - properties: - end: - description: If this state an end state - x-kubernetes-preserve-unknown-fields: true - transition: - description: Serverless workflow states can have one - or more incoming and outgoing transitions (from/to - other states). Each state can define a transition - definition that is used to determine which state to - transition to next. - x-kubernetes-preserve-unknown-fields: true - type: object - eventConditions: - description: Defines conditions evaluated against events. - items: - description: EventCondition specify events which the switch - state must wait for. - properties: - end: - description: TODO End or Transition needs to be exclusive - tag, one or another should be set. Explicit transition - to end - x-kubernetes-preserve-unknown-fields: true - eventDataFilter: - description: Event data filter definition. - properties: - data: - description: Workflow expression that filters - of the event data (payload). - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element - type: string - useData: - description: If set to false, event payload is - not added/merged to state data. In this case - 'data' and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - eventRef: - description: References a unique event name in the - defined workflow events. - type: string - metadata: - description: Metadata information. - x-kubernetes-preserve-unknown-fields: true - name: - description: Event condition name. - type: string - transition: - description: Workflow transition if condition is evaluated - to true - x-kubernetes-preserve-unknown-fields: true - required: - - eventRef - type: object - type: array - timeouts: - description: SwitchState specific timeouts - properties: - eventTimeout: - description: 'Specify the expire value to transitions - to defaultCondition. When event-based conditions do - not arrive. NOTE: this is only available for EventConditions' - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - defaultCondition - type: object - transition: - description: Next transition of the workflow after the time - delay. - x-kubernetes-preserve-unknown-fields: true - type: - description: stateType can be any of delay, callback, event, - foreach, inject, operation, parallel, sleep, switch - enum: - - delay - - callback - - event - - foreach - - inject - - operation - - parallel - - sleep - - switch - type: string - usedForCompensation: - description: If true, this state is used to compensate another - state. Default is false. - type: boolean - required: - - name - - type - type: object - minItems: 1 - type: array - x-kubernetes-preserve-unknown-fields: true - timeouts: - description: Defines the workflow default timeout settings. - properties: - actionExecTimeout: - description: ActionExecTimeout Single actions definition execution - timeout duration (ISO 8601 duration format). - type: string - branchExecTimeout: - description: BranchExecTimeout Single branch execution timeout - duration (ISO 8601 duration format). - type: string - eventTimeout: - description: EventTimeout Timeout duration to wait for consuming - defined events (ISO 8601 duration format). - type: string - stateExecTimeout: - description: StateExecTimeout Total state execution timeout (including - retries) (ISO 8601 duration format). - properties: - single: - description: Single state execution timeout, not including - retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including retries - (ISO 8601 duration format) - type: string - required: - - total - type: object - workflowExecTimeout: - description: WorkflowExecTimeout Workflow execution timeout duration - (ISO 8601 duration format). If not specified should be 'unlimited'. - properties: - duration: - default: unlimited - description: Workflow execution timeout duration (ISO 8601 - duration format). If not specified should be 'unlimited'. - type: string - interrupt: - description: If false, workflow instance is allowed to finish - current execution. If true, current workflow execution is - stopped immediately. Default is false. - type: boolean - runBefore: - description: Name of a workflow state to be executed before - workflow instance is terminated. - type: string - required: - - duration - type: object - type: object - version: - description: Workflow version. - type: string - required: - - specVersion - - states - type: object - status: - description: KogitoServerlessWorkflowStatus defines the observed state - of KogitoServerlessWorkflow - properties: - address: - description: "Addressable provides a generic mechanism for a custom - resource definition to indicate a destination for message delivery. - \n Addressable is the schema for the destination information. This - is typically stored in the object's `status`, as this information - may be generated by the controller." - properties: - url: - type: string - type: object - applied: - description: KogitoServerlessWorkflowSpec defines the desired state - of KogitoServerlessWorkflow - properties: - annotations: - description: Annotations List of helpful terms describing the - workflows intended purpose, subject areas, or other important - qualities. - items: - type: string - type: array - auth: - description: Auth definitions can be used to define authentication - information that should be applied to resources defined in the - operation property of function definitions. It is not used as - authentication information for the function invocation, but - just to access the resource containing the function invocation - information. - x-kubernetes-preserve-unknown-fields: true - autoRetries: - description: AutoRetries If set to true, actions should automatically - be retried on unchecked errors. Default is false - type: boolean - constants: - additionalProperties: - description: RawMessage is a raw encoded JSON value. It implements - Marshaler and Unmarshaler and can be used to delay JSON decoding - or precompute a JSON encoding. - format: byte - type: string - description: Constants Workflow constants are used to define static, - and immutable, data which is available to Workflow Expressions. - type: object - dataInputSchema: - description: DataInputSchema URI of the JSON Schema used to validate - the workflow data input - properties: - failOnValidationErrors: - type: boolean - schema: - type: string - required: - - failOnValidationErrors - - schema - type: object - description: - description: Workflow description. - type: string - errors: - description: Defines checked errors that can be explicitly handled - during workflow execution. - items: - description: Error declaration for workflow definitions - properties: - code: - description: Code OnError code. Can be used in addition - to the name to help runtimes resolve to technical errors/exceptions. - Should not be defined if error is set to '*'. - type: string - description: - description: OnError description. - type: string - name: - description: Name Domain-specific error name. - type: string - required: - - name - type: object - type: array - events: - items: - description: Event used to define events and their correlations - properties: - correlation: - description: Define event correlation rules for this event. - Only used for consumed events. - items: - description: Correlation define event correlation rules - for an event. Only used for `consumed` events - properties: - contextAttributeName: - description: CloudEvent Extension Context Attribute - name - type: string - contextAttributeValue: - description: CloudEvent Extension Context Attribute - value - type: string - required: - - contextAttributeName - type: object - type: array - dataOnly: - description: If `true`, only the Event payload is accessible - to consuming Workflow states. If `false`, both event payload - and context attributes should be accessible. Defaults - to true. - type: boolean - kind: - default: consumed - description: Defines the CloudEvent as either 'consumed' - or 'produced' by the workflow. Defaults to `consumed`. - enum: - - consumed - - produced - type: string - metadata: - additionalProperties: - type: object - description: Metadata information - type: object - name: - description: Unique event name. - type: string - source: - description: CloudEvent source. - type: string - type: - description: CloudEvent type. - type: string - required: - - name - - type + - name + - type type: object type: array expressionLang: @@ -2264,330 +229,1208 @@ spec: - operation type: object type: array - id: - description: Workflow unique identifier - type: string - keepActive: - description: If "true", workflow instances is not terminated when - there are no active execution paths. Instance can be terminated - with "terminate end definition" or reaching defined "workflowExecTimeout" - type: boolean - key: - description: Key Domain-specific workflow identifier + id: + description: Workflow unique identifier + type: string + keepActive: + description: If "true", workflow instances is not terminated when + there are no active execution paths. Instance can be terminated + with "terminate end definition" or reaching defined "workflowExecTimeout" + type: boolean + key: + description: Key Domain-specific workflow identifier + type: string + metadata: + description: Metadata custom information shared with the runtime. + x-kubernetes-preserve-unknown-fields: true + name: + description: Workflow name + type: string + retries: + items: + description: Retry ... + properties: + delay: + description: Time delay between retry attempts (ISO 8601 + duration format) + type: string + increment: + description: Static value by which the delay increases during + each attempt (ISO 8601 time format) + type: string + jitter: + description: 'If float type, maximum amount of random time + added or subtracted from the delay between each retry + relative to total delay (between 0 and 1). If string type, + absolute maximum amount of random time added or subtracted + from the delay between each retry (ISO 8601 duration format) + TODO: make iso8601duration compatible this type' + properties: + floatVal: + type: number + strVal: + type: string + type: + description: Type represents the stored type of Float32OrString. + format: int64 + type: integer + type: object + maxAttempts: + anyOf: + - type: integer + - type: string + description: Maximum number of retry attempts. + x-kubernetes-int-or-string: true + maxDelay: + description: Maximum time delay between retry attempts (ISO + 8601 duration format) + type: string + multiplier: + description: Numeric value, if specified the delay between + retries is multiplied by this value. + properties: + floatVal: + type: number + strVal: + type: string + type: + description: Type represents the stored type of Float32OrString. + format: int64 + type: integer + type: object + name: + description: Unique retry strategy name + type: string + required: + - maxAttempts + - name + type: object + type: array + secrets: + description: Secrets allow you to access sensitive information, + such as passwords, OAuth tokens, ssh keys, etc, inside your + Workflow Expressions. + items: + type: string + type: array + specVersion: + default: "0.8" + description: Serverless Workflow schema version type: string - metadata: - description: Metadata custom information shared with the runtime. + start: + description: Workflow start definition. x-kubernetes-preserve-unknown-fields: true - name: - description: Workflow name - type: string - retries: + states: items: - description: Retry ... properties: - delay: - description: Time delay between retry attempts (ISO 8601 - duration format) - type: string - increment: - description: Static value by which the delay increases during - each attempt (ISO 8601 time format) - type: string - jitter: - description: 'If float type, maximum amount of random time - added or subtracted from the delay between each retry - relative to total delay (between 0 and 1). If string type, - absolute maximum amount of random time added or subtracted - from the delay between each retry (ISO 8601 duration format) - TODO: make iso8601duration compatible this type' + callbackState: + description: callbackState executes a function and waits + for callback event that indicates completion of the task. properties: - floatVal: - type: number - strVal: + action: + description: Defines the action to be executed. + properties: + actionDataFilter: + description: Filter the state data to select only + the data that can be used within function definition + arguments using its fromStateData property. Filter + the action results to select only the result data + that should be added/merged back into the state + data using its results property. Select the part + of state data which the action data results should + be added/merged to using the toStateData property. + properties: + fromStateData: + description: Workflow expression that filters + state data that can be used by the action. + type: string + results: + description: Workflow expression that filters + the actions data results. + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action results + should be added/merged into. If not specified + denotes the top-level state data element. + type: string + useResults: + description: If set to false, action data results + are not added/merged to state data. In this + case 'results' and 'toStateData' should be + ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must evaluate + to true for this action to be performed. If false, + action is disregarded. + type: string + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension context + attributes to the produced event. + type: object + data: + description: If string type, an expression which + selects parts of the states data output to + become the data (payload) of the event referenced + by triggerEventRef. If object type, a custom + object to become the data (payload) of the + event referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique name of + a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO 8601 + format) to wait for the result event. If not + defined it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name of + a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be passed + to the referenced function TODO: validate + it as required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is graphql. + String containing a valid GraphQL selection + set. TODO: validate it as required if function + type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to defined + workflow errors for which the action should not + be retried. Used only when `autoRetries` is set + to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow retry + definition. If not defined uses the default runtime + retry definition. + type: string + retryableErrors: + description: List of unique references to defined + workflow errors for which the action should be + retried. Used only when `autoRetries` is set to + `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow execution + should sleep before / after function execution. + properties: + after: + description: Defines amount of time (ISO 8601 + duration format) to sleep after function/subflow + invocation. Does not apply if 'eventRef' is + defined. + type: string + before: + description: Defines amount of time (ISO 8601 + duration format) to sleep before function/subflow + invocation. Does not apply if 'eventRef' is + defined. + type: string + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow should + be invoked sync or async. Defaults to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies how + subflow execution should behave when parent + workflow completes if invoke is 'async'. Defaults + to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object + type: object + eventDataFilter: + description: Event data filter definition. + properties: + data: + description: Workflow expression that filters of + the event data (payload). + type: string + toStateData: + description: Workflow expression that selects a + state data element to which the action results + should be added/merged into. If not specified + denotes the top-level state data element + type: string + useData: + description: If set to false, event payload is not + added/merged to state data. In this case 'data' + and 'toStateData' should be ignored. Default is + true. + type: boolean + type: object + eventRef: + description: References a unique callback event name + in the defined workflow events. type: string - type: - description: Type represents the stored type of Float32OrString. - format: int64 - type: integer + timeouts: + description: Time period to wait for incoming events + (ISO 8601 format) + properties: + actionExecTimeout: + description: Default single actions definition execution + timeout (ISO 8601 duration format) + type: string + eventTimeout: + description: Default timeout for consuming defined + events (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - action + - eventRef type: object - maxAttempts: - anyOf: - - type: integer - - type: string - description: Maximum number of retry attempts. - x-kubernetes-int-or-string: true - maxDelay: - description: Maximum time delay between retry attempts (ISO - 8601 duration format) + compensatedBy: + description: Unique Name of a workflow state which is responsible + for compensation of this state. type: string - multiplier: - description: Numeric value, if specified the delay between - retries is multiplied by this value. + delayState: + description: delayState Causes the workflow execution to + delay for a specified duration. properties: - floatVal: - type: number - strVal: + timeDelay: + description: Amount of time (ISO 8601 format) to delay type: string - type: - description: Type represents the stored type of Float32OrString. - format: int64 - type: integer + required: + - timeDelay type: object - name: - description: Unique retry strategy name - type: string - required: - - maxAttempts - - name - type: object - type: array - secrets: - description: Secrets allow you to access sensitive information, - such as passwords, OAuth tokens, ssh keys, etc, inside your - Workflow Expressions. - items: - type: string - type: array - specVersion: - default: "0.8" - description: Serverless Workflow schema version - type: string - start: - description: Workflow start definition. - x-kubernetes-preserve-unknown-fields: true - states: - items: - properties: - callbackState: - description: callbackState executes a function and waits - for callback event that indicates completion of the task. + end: + description: State end definition. + x-kubernetes-preserve-unknown-fields: true + eventState: + description: event states await one or more events and perform + actions when they are received. If defined as the workflow + starting state, the event state definition controls when + the workflow instances should be created. properties: - action: - description: Defines the action to be executed. - properties: - actionDataFilter: - description: Filter the state data to select only - the data that can be used within function definition - arguments using its fromStateData property. Filter - the action results to select only the result data - that should be added/merged back into the state - data using its results property. Select the part - of state data which the action data results should - be added/merged to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element. + exclusive: + default: true + description: If true consuming one of the defined events + causes its associated actions to be performed. If + false all the defined events must be consumed in order + for actions to be performed. Defaults to true. + type: boolean + onEvents: + description: Define the events to be consumed and optional + actions to be performed. + items: + description: OnEvents define which actions are be + performed for the one or more events. + properties: + actionMode: + default: sequential + description: Should actions be performed sequentially + or in parallel. Default is sequential. + enum: + - sequential + - parallel + type: string + actions: + description: Actions to be performed if expression + matches + items: + description: Action specify invocations of services + or other workflows during workflow execution. + properties: + actionDataFilter: + description: Filter the state data to select + only the data that can be used within + function definition arguments using its + fromStateData property. Filter the action + results to select only the result data + that should be added/merged back into + the state data using its results property. + Select the part of state data which the + action data results should be added/merged + to using the toStateData property. + properties: + fromStateData: + description: Workflow expression that + filters state data that can be used + by the action. + type: string + results: + description: Workflow expression that + filters the actions data results. + type: string + toStateData: + description: Workflow expression that + selects a state data element to which + the action results should be added/merged + into. If not specified denotes the + top-level state data element. + type: string + useResults: + description: If set to false, action + data results are not added/merged + to state data. In this case 'results' + and 'toStateData' should be ignored. + Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must + evaluate to true for this action to be + performed. If false, action is disregarded. + type: string + eventRef: + description: References a 'trigger' and + 'result' reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension + context attributes to the produced + event. + type: object + data: + description: If string type, an expression + which selects parts of the states + data output to become the data (payload) + of the event referenced by triggerEventRef. + If object type, a custom object to + become the data (payload) of the event + referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique + name of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time + (ISO 8601 format) to wait for the + result event. If not defined it be + set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique + name of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to + be passed to the referenced function + TODO: validate it as required if function + type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced + function. + type: string + selectionSet: + description: 'Used if function type + is graphql. String containing a valid + GraphQL selection set. TODO: validate + it as required if function type is + graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to + defined workflow errors for which the + action should not be retried. Used only + when `autoRetries` is set to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow + retry definition. If not defined uses + the default runtime retry definition. + type: string + retryableErrors: + description: List of unique references to + defined workflow errors for which the + action should be retried. Used only when + `autoRetries` is set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow + execution should sleep before / after + function execution. + properties: + after: + description: Defines amount of time + (ISO 8601 duration format) to sleep + after function/subflow invocation. + Does not apply if 'eventRef' is defined. + type: string + before: + description: Defines amount of time + (ISO 8601 duration format) to sleep + before function/subflow invocation. + Does not apply if 'eventRef' is defined. + type: string + type: object + subFlowRef: + description: References a workflow to be + invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow + should be invoked sync or async. Defaults + to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave + when parent workflow completes if + invoke is 'async'. Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object + type: object + type: array + eventDataFilter: + description: eventDataFilter defines the callback + event data filter definition + properties: + data: + description: Workflow expression that filters + of the event data (payload). + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action + results should be added/merged into. If + not specified denotes the top-level state + data element + type: string + useData: + description: If set to false, event payload + is not added/merged to state data. In this + case 'data' and 'toStateData' should be + ignored. Default is true. + type: boolean + type: object + eventRefs: + description: References one or more unique event + names in the defined workflow events. + items: type: string - useResults: - description: If set to false, action data results - are not added/merged to state data. In this - case 'results' and 'toStateData' should be - ignored. Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If false, - action is disregarded. + minItems: 1 + type: array + required: + - eventRefs + type: object + minItems: 1 + type: array + timeouts: + description: State specific timeouts. + properties: + actionExecTimeout: + description: Default single actions definition execution + timeout (ISO 8601 duration format) type: string - eventRef: - description: References a 'trigger' and 'result' - reusable event definitions. + eventTimeout: + description: Default timeout for consuming defined + events (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression which - selects parts of the states data output to - become the data (payload) of the event referenced - by triggerEventRef. If object type, a custom - object to become the data (payload) of the - event referenced by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name of - a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 - format) to wait for the result event. If not - defined it be set to the actionExecutionTimeout + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) type: string - triggerEventRef: - description: Reference to the unique name of - a 'produced' event definition, + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) type: string required: - - resultEventRef - - triggerEventRef + - total type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: + type: object + required: + - onEvents + type: object + forEachState: + description: forEachState used to execute actions for each + element of a data set. + properties: + actions: + description: Actions to be executed for each of the + elements of inputCollection. + items: + description: Action specify invocations of services + or other workflows during workflow execution. + properties: + actionDataFilter: + description: Filter the state data to select only + the data that can be used within function definition + arguments using its fromStateData property. + Filter the action results to select only the + result data that should be added/merged back + into the state data using its results property. + Select the part of state data which the action + data results should be added/merged to using + the toStateData property. + properties: + fromStateData: + description: Workflow expression that filters + state data that can be used by the action. + type: string + results: + description: Workflow expression that filters + the actions data results. + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action + results should be added/merged into. If + not specified denotes the top-level state + data element. + type: string + useResults: + description: If set to false, action data + results are not added/merged to state data. + In this case 'results' and 'toStateData' + should be ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must evaluate + to true for this action to be performed. If + false, action is disregarded. + type: string + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension context + attributes to the produced event. type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate - it as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if function - type is graphql' + data: + description: If string type, an expression + which selects parts of the states data output + to become the data (payload) of the event + referenced by triggerEventRef. If object + type, a custom object to become the data + (payload) of the event referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique name + of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO 8601 + format) to wait for the result event. If + not defined it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name + of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be passed + to the referenced function TODO: validate + it as required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is graphql. + String containing a valid GraphQL selection + set. TODO: validate it as required if function + type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to defined + workflow errors for which the action should + not be retried. Used only when `autoRetries` + is set to `true` + items: type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should not - be retried. Used only when `autoRetries` is set - to `true` - items: + type: array + retryRef: + description: References a defined workflow retry + definition. If not defined uses the default + runtime retry definition. type: string - type: array - retryRef: - description: References a defined workflow retry - definition. If not defined uses the default runtime - retry definition. + retryableErrors: + description: List of unique references to defined + workflow errors for which the action should + be retried. Used only when `autoRetries` is + set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow execution + should sleep before / after function execution. + properties: + after: + description: Defines amount of time (ISO 8601 + duration format) to sleep after function/subflow + invocation. Does not apply if 'eventRef' + is defined. + type: string + before: + description: Defines amount of time (ISO 8601 + duration format) to sleep before function/subflow + invocation. Does not apply if 'eventRef' + is defined. + type: string + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow should + be invoked sync or async. Defaults to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies how + subflow execution should behave when parent + workflow completes if invoke is 'async'. + Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object + type: object + minItems: 1 + type: array + batchSize: + anyOf: + - type: integer + - type: string + description: Specifies how many iterations may run in + parallel at the same time. Used if mode property is + set to parallel (default). If not specified, its value + should be the size of the inputCollection. + x-kubernetes-int-or-string: true + inputCollection: + description: Workflow expression selecting an array + element of the states' data. + type: string + iterationParam: + description: Name of the iteration parameter that can + be referenced in actions/workflow. For each parallel + iteration, this param should contain a unique element + of the inputCollection array. + type: string + mode: + default: parallel + description: Specifies how iterations are to be performed + (sequential or in parallel), defaults to parallel. + enum: + - sequential + - parallel + type: string + outputCollection: + description: Workflow expression specifying an array + element of the states data to add the results of each + iteration. + type: string + timeouts: + description: State specific timeout. + properties: + actionExecTimeout: + description: Default single actions definition execution + timeout (ISO 8601 duration format) type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should be - retried. Used only when `autoRetries` is set to - `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) properties: - after: - description: Defines amount of time (ISO 8601 - duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' is - defined. + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) type: string - before: - description: Defines amount of time (ISO 8601 - duration format) to sleep before function/subflow - invocation. Does not apply if 'eventRef' is - defined. + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) type: string + required: + - total type: object - subFlowRef: - description: References a workflow to be invoked. + type: object + required: + - inputCollection + type: object + id: + description: Unique State id. + type: string + injectState: + description: injectState used to inject static data into + state data input. + properties: + data: + additionalProperties: + type: object + description: JSON object which can be set as state's + data input and can be manipulated via filter + minProperties: 1 + type: object + timeouts: + description: State specific timeouts + properties: + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) properties: - invoke: - default: sync - description: Specifies if the subflow should - be invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how - subflow execution should behave when parent - workflow completes if invoke is 'async'. Defaults - to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) type: string - workflowId: - description: Sub-workflow unique id + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) type: string required: - - workflowId + - total type: object type: object - eventDataFilter: - description: Event data filter definition. - properties: - data: - description: Workflow expression that filters of - the event data (payload). - type: string - toStateData: - description: Workflow expression that selects a - state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element + required: + - data + type: object + metadata: + additionalProperties: + type: object + description: Metadata information. + type: object + name: + description: State name. + type: string + onErrors: + description: States error handling and retries definitions. + items: + description: OnError ... + properties: + end: + description: End workflow execution in case of this + error. If retryRef is defined, this ends workflow + only if retries were unsuccessful. + x-kubernetes-preserve-unknown-fields: true + errorRef: + description: ErrorRef Reference to a unique workflow + error definition. Used of errorRefs is not used + type: string + errorRefs: + description: ErrorRefs References one or more workflow + error definitions. Used if errorRef is not used + items: type: string - useData: - description: If set to false, event payload is not - added/merged to state data. In this case 'data' - and 'toStateData' should be ignored. Default is - true. - type: boolean - type: object - eventRef: - description: References a unique callback event name - in the defined workflow events. + type: array + transition: + description: Transition to next state to handle the + error. If retryRef is defined, this transition is + taken only if retries were unsuccessful. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + operationState: + description: operationState defines a set of actions to + be performed in sequence or in parallel. + properties: + actionMode: + default: sequential + description: Specifies whether actions are performed + in sequence or in parallel, defaults to sequential. + enum: + - sequential + - parallel type: string + actions: + description: Actions to be performed + items: + description: Action specify invocations of services + or other workflows during workflow execution. + properties: + actionDataFilter: + description: Filter the state data to select only + the data that can be used within function definition + arguments using its fromStateData property. + Filter the action results to select only the + result data that should be added/merged back + into the state data using its results property. + Select the part of state data which the action + data results should be added/merged to using + the toStateData property. + properties: + fromStateData: + description: Workflow expression that filters + state data that can be used by the action. + type: string + results: + description: Workflow expression that filters + the actions data results. + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action + results should be added/merged into. If + not specified denotes the top-level state + data element. + type: string + useResults: + description: If set to false, action data + results are not added/merged to state data. + In this case 'results' and 'toStateData' + should be ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must evaluate + to true for this action to be performed. If + false, action is disregarded. + type: string + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension context + attributes to the produced event. + type: object + data: + description: If string type, an expression + which selects parts of the states data output + to become the data (payload) of the event + referenced by triggerEventRef. If object + type, a custom object to become the data + (payload) of the event referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique name + of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO 8601 + format) to wait for the result event. If + not defined it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name + of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be passed + to the referenced function TODO: validate + it as required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is graphql. + String containing a valid GraphQL selection + set. TODO: validate it as required if function + type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to defined + workflow errors for which the action should + not be retried. Used only when `autoRetries` + is set to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow retry + definition. If not defined uses the default + runtime retry definition. + type: string + retryableErrors: + description: List of unique references to defined + workflow errors for which the action should + be retried. Used only when `autoRetries` is + set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow execution + should sleep before / after function execution. + properties: + after: + description: Defines amount of time (ISO 8601 + duration format) to sleep after function/subflow + invocation. Does not apply if 'eventRef' + is defined. + type: string + before: + description: Defines amount of time (ISO 8601 + duration format) to sleep before function/subflow + invocation. Does not apply if 'eventRef' + is defined. + type: string + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow should + be invoked sync or async. Defaults to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies how + subflow execution should behave when parent + workflow completes if invoke is 'async'. + Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object + type: object + minItems: 1 + type: array timeouts: - description: Time period to wait for incoming events - (ISO 8601 format) + description: State specific timeouts properties: actionExecTimeout: description: Default single actions definition execution timeout (ISO 8601 duration format) type: string - eventTimeout: - description: Default timeout for consuming defined - events (ISO 8601 duration format) - type: string stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) + description: Defines workflow state execution timeout. properties: single: description: Single state execution timeout, @@ -2602,57 +1445,19 @@ spec: type: object type: object required: - - action - - eventRef - type: object - compensatedBy: - description: Unique Name of a workflow state which is responsible - for compensation of this state. - type: string - delayState: - description: delayState Causes the workflow execution to - delay for a specified duration. - properties: - timeDelay: - description: Amount of time (ISO 8601 format) to delay - type: string - required: - - timeDelay + - actions type: object - end: - description: State end definition. - x-kubernetes-preserve-unknown-fields: true - eventState: - description: event states await one or more events and perform - actions when they are received. If defined as the workflow - starting state, the event state definition controls when - the workflow instances should be created. + parallelState: + description: parallelState Consists of a number of states + that are executed in parallel. properties: - exclusive: - default: true - description: If true consuming one of the defined events - causes its associated actions to be performed. If - false all the defined events must be consumed in order - for actions to be performed. Defaults to true. - type: boolean - onEvents: - description: Define the events to be consumed and optional - actions to be performed. + branches: + description: List of branches for this parallel state. items: - description: OnEvents define which actions are be - performed for the one or more events. + description: Branch Definition properties: - actionMode: - default: sequential - description: Should actions be performed sequentially - or in parallel. Default is sequential. - enum: - - sequential - - parallel - type: string actions: - description: Actions to be performed if expression - matches + description: Actions to be executed in this branch items: description: Action specify invocations of services or other workflows during workflow execution. @@ -2858,51 +1663,52 @@ spec: - workflowId type: object type: object + minItems: 1 type: array - eventDataFilter: - description: eventDataFilter defines the callback - event data filter definition + name: + description: Branch name + type: string + timeouts: + description: Branch specific timeout settings properties: - data: - description: Workflow expression that filters - of the event data (payload). + actionExecTimeout: + description: Single actions definition execution + timeout duration (ISO 8601 duration format) type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action - results should be added/merged into. If - not specified denotes the top-level state - data element + branchExecTimeout: + description: Single branch execution timeout + duration (ISO 8601 duration format) type: string - useData: - description: If set to false, event payload - is not added/merged to state data. In this - case 'data' and 'toStateData' should be - ignored. Default is true. - type: boolean type: object - eventRefs: - description: References one or more unique event - names in the defined workflow events. - items: - type: string - minItems: 1 - type: array required: - - eventRefs + - actions + - name type: object minItems: 1 type: array + completionType: + default: allOf + description: Option types on how to complete branch + execution. Defaults to `allOf`. + enum: + - allOf + - atLeast + type: string + numCompleted: + anyOf: + - type: integer + - type: string + description: 'Used when branchCompletionType is set + to atLeast to specify the least number of branches + that must complete in order for the state to transition/end. + TODO: change this field to unmarshal result as int' + x-kubernetes-int-or-string: true timeouts: - description: State specific timeouts. + description: State specific timeouts properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - eventTimeout: - description: Default timeout for consuming defined - events (ISO 8601 duration format) + branchExecTimeout: + description: Default single branch execution timeout + (ISO 8601 duration format) type: string stateExecTimeout: description: Default workflow state execution timeout @@ -2921,1250 +1727,2595 @@ spec: type: object type: object required: - - onEvents + - branches type: object - forEachState: - description: forEachState used to execute actions for each - element of a data set. + sleepState: + description: sleepState suspends workflow execution for + a given time duration. + properties: + duration: + description: Duration (ISO 8601 duration format) to + sleep + type: string + timeouts: + description: Timeouts State specific timeouts + properties: + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - duration + type: object + stateDataFilter: + description: State data filter. + properties: + input: + description: Workflow expression to filter the state + data input + type: string + output: + description: Workflow expression that filters the state + data output + type: string + type: object + switchState: + description: 'switchState is workflow''s gateways: direct + transitions onf a workflow based on certain conditions.' properties: - actions: - description: Actions to be executed for each of the - elements of inputCollection. + dataConditions: + description: Defines conditions evaluated against data items: - description: Action specify invocations of services - or other workflows during workflow execution. + description: DataCondition specify a data-based condition + statement which causes a transition to another workflow + state if evaluated to true. properties: - actionDataFilter: - description: Filter the state data to select only - the data that can be used within function definition - arguments using its fromStateData property. - Filter the action results to select only the - result data that should be added/merged back - into the state data using its results property. - Select the part of state data which the action - data results should be added/merged to using - the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action - results should be added/merged into. If - not specified denotes the top-level state - data element. - type: string - useResults: - description: If set to false, action data - results are not added/merged to state data. - In this case 'results' and 'toStateData' - should be ignored. Default is true. - type: boolean - type: object condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If - false, action is disregarded. + description: Workflow expression evaluated against + state data. Must evaluate to true or false. type: string - eventRef: - description: References a 'trigger' and 'result' - reusable event definitions. + end: + description: TODO End or Transition needs to be + exclusive tag, one or another should be set. + Explicit transition to end properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression - which selects parts of the states data output - to become the data (payload) of the event - referenced by triggerEventRef. If object - type, a custom object to become the data - (payload) of the event referenced by triggerEventRef. + compensate: + description: If set to true, triggers workflow + compensation before workflow execution completes. + Default is false. + type: boolean + continueAs: + description: Defines that current workflow + execution should stop, and execution should + continue as a new workflow instance of the + provided id + properties: + data: + description: If string type, an expression + which selects parts of the states data + output to become the workflow data input + of continued execution. If object type, + a custom object to become the workflow + data input of the continued execution + type: object + version: + description: Version of the workflow to + continue execution as. + type: string + workflowExecTimeout: + description: WorkflowExecTimeout Workflow + execution timeout to be used by the + workflow continuing execution. Overwrites + any specific settings set by that workflow + properties: + duration: + default: unlimited + description: Workflow execution timeout + duration (ISO 8601 duration format). + If not specified should be 'unlimited'. + type: string + interrupt: + description: If false, workflow instance + is allowed to finish current execution. + If true, current workflow execution + is stopped immediately. Default + is false. + type: boolean + runBefore: + description: Name of a workflow state + to be executed before workflow instance + is terminated. + type: string + required: + - duration + type: object + workflowId: + description: Unique id of the workflow + to continue execution as. + type: string + required: + - workflowId type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name - of a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 - format) to wait for the result event. If - not defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name - of a 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: + produceEvents: + description: Array of producedEvent definitions. + Defines events that should be produced. + items: + description: ProduceEvent Defines the event + (CloudEvent format) to be produced when + workflow execution completes or during + a workflow transitions. The eventRef property + must match the name of one of the defined + produced events in the events definition. + properties: + contextAttributes: + additionalProperties: + type: string + description: Add additional event extension + context attributes. + type: object + data: + description: If String, expression which + selects parts of the states data output + to become the data of the produced + event. If object a custom object to + become the data of produced event. + type: object + eventRef: + description: Reference to a defined + unique event name in the events definition + type: string + required: + - eventRef type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate - it as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if function - type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should - not be retried. Used only when `autoRetries` - is set to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry - definition. If not defined uses the default - runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should - be retried. Used only when `autoRetries` is - set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO 8601 - duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string - before: - description: Defines amount of time (ISO 8601 - duration format) to sleep before function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string + type: array + terminate: + description: If true, completes all execution + flows in the given workflow instance. + type: boolean type: object - subFlowRef: - description: References a workflow to be invoked. + metadata: + additionalProperties: + type: object + description: Metadata information. + type: object + name: + description: Data condition name. + type: string + transition: + description: Workflow transition if condition + is evaluated to true properties: - invoke: - default: sync - description: Specifies if the subflow should - be invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how - subflow execution should behave when parent - workflow completes if invoke is 'async'. - Defaults to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id + compensate: + default: false + description: If set to true, triggers workflow + compensation before this transition is taken. + Default is false. + type: boolean + nextState: + description: Name of the state to transition + to next. type: string + produceEvents: + description: Array of producedEvent definitions. + Events to be produced before the transition + takes place. + items: + description: ProduceEvent Defines the event + (CloudEvent format) to be produced when + workflow execution completes or during + a workflow transitions. The eventRef property + must match the name of one of the defined + produced events in the events definition. + properties: + contextAttributes: + additionalProperties: + type: string + description: Add additional event extension + context attributes. + type: object + data: + description: If String, expression which + selects parts of the states data output + to become the data of the produced + event. If object a custom object to + become the data of produced event. + type: object + eventRef: + description: Reference to a defined + unique event name in the events definition + type: string + required: + - eventRef + type: object + type: array required: - - workflowId + - nextState type: object + required: + - condition + - end type: object - minItems: 1 type: array - batchSize: - anyOf: - - type: integer - - type: string - description: Specifies how many iterations may run in - parallel at the same time. Used if mode property is - set to parallel (default). If not specified, its value - should be the size of the inputCollection. - x-kubernetes-int-or-string: true - inputCollection: - description: Workflow expression selecting an array - element of the states' data. - type: string - iterationParam: - description: Name of the iteration parameter that can - be referenced in actions/workflow. For each parallel - iteration, this param should contain a unique element - of the inputCollection array. - type: string - mode: - default: parallel - description: Specifies how iterations are to be performed - (sequential or in parallel), defaults to parallel. - enum: - - sequential - - parallel - type: string - outputCollection: - description: Workflow expression specifying an array - element of the states data to add the results of each - iteration. - type: string - timeouts: - description: State specific timeout. - properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - inputCollection - type: object - id: - description: Unique State id. - type: string - injectState: - description: injectState used to inject static data into - state data input. - properties: - data: - additionalProperties: - type: object - description: JSON object which can be set as state's - data input and can be manipulated via filter - minProperties: 1 - type: object - timeouts: - description: State specific timeouts + defaultCondition: + description: Default transition of the workflow if there + is no matching data conditions. Can include a transition + or end definition. properties: - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) - type: string - required: - - total - type: object + end: + description: If this state an end state + x-kubernetes-preserve-unknown-fields: true + transition: + description: Serverless workflow states can have + one or more incoming and outgoing transitions + (from/to other states). Each state can define + a transition definition that is used to determine + which state to transition to next. + x-kubernetes-preserve-unknown-fields: true type: object - required: - - data - type: object - metadata: - additionalProperties: - type: object - description: Metadata information. - type: object - name: - description: State name. - type: string - onErrors: - description: States error handling and retries definitions. - items: - description: OnError ... - properties: - end: - description: End workflow execution in case of this - error. If retryRef is defined, this ends workflow - only if retries were unsuccessful. - x-kubernetes-preserve-unknown-fields: true - errorRef: - description: ErrorRef Reference to a unique workflow - error definition. Used of errorRefs is not used - type: string - errorRefs: - description: ErrorRefs References one or more workflow - error definitions. Used if errorRef is not used - items: - type: string - type: array - transition: - description: Transition to next state to handle the - error. If retryRef is defined, this transition is - taken only if retries were unsuccessful. - x-kubernetes-preserve-unknown-fields: true - type: object - type: array - operationState: - description: operationState defines a set of actions to - be performed in sequence or in parallel. - properties: - actionMode: - default: sequential - description: Specifies whether actions are performed - in sequence or in parallel, defaults to sequential. - enum: - - sequential - - parallel - type: string - actions: - description: Actions to be performed + eventConditions: + description: Defines conditions evaluated against events. items: - description: Action specify invocations of services - or other workflows during workflow execution. - properties: - actionDataFilter: - description: Filter the state data to select only - the data that can be used within function definition - arguments using its fromStateData property. - Filter the action results to select only the - result data that should be added/merged back - into the state data using its results property. - Select the part of state data which the action - data results should be added/merged to using - the toStateData property. + description: EventCondition specify events which the + switch state must wait for. + properties: + end: + description: TODO End or Transition needs to be + exclusive tag, one or another should be set. + Explicit transition to end + x-kubernetes-preserve-unknown-fields: true + eventDataFilter: + description: Event data filter definition. properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: + data: description: Workflow expression that filters - the actions data results. + of the event data (payload). type: string toStateData: description: Workflow expression that selects a state data element to which the action results should be added/merged into. If not specified denotes the top-level state - data element. + data element type: string - useResults: - description: If set to false, action data - results are not added/merged to state data. - In this case 'results' and 'toStateData' - should be ignored. Default is true. + useData: + description: If set to false, event payload + is not added/merged to state data. In this + case 'data' and 'toStateData' should be + ignored. Default is true. type: boolean type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If - false, action is disregarded. - type: string eventRef: - description: References a 'trigger' and 'result' - reusable event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression - which selects parts of the states data output - to become the data (payload) of the event - referenced by triggerEventRef. If object - type, a custom object to become the data - (payload) of the event referenced by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name - of a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 - format) to wait for the result event. If - not defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name - of a 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate - it as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if function - type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. + description: References a unique event name in + the defined workflow events. type: string + metadata: + description: Metadata information. + x-kubernetes-preserve-unknown-fields: true name: - description: Defines Unique action name. + description: Event condition name. + type: string + transition: + description: Workflow transition if condition + is evaluated to true + x-kubernetes-preserve-unknown-fields: true + required: + - eventRef + type: object + type: array + timeouts: + description: SwitchState specific timeouts + properties: + eventTimeout: + description: 'Specify the expire value to transitions + to defaultCondition. When event-based conditions + do not arrive. NOTE: this is only available for + EventConditions' + type: string + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - defaultCondition + type: object + transition: + description: Next transition of the workflow after the time + delay. + x-kubernetes-preserve-unknown-fields: true + type: + description: stateType can be any of delay, callback, event, + foreach, inject, operation, parallel, sleep, switch + enum: + - delay + - callback + - event + - foreach + - inject + - operation + - parallel + - sleep + - switch + type: string + usedForCompensation: + description: If true, this state is used to compensate another + state. Default is false. + type: boolean + required: + - name + - type + type: object + minItems: 1 + type: array + x-kubernetes-preserve-unknown-fields: true + timeouts: + description: Defines the workflow default timeout settings. + properties: + actionExecTimeout: + description: ActionExecTimeout Single actions definition execution + timeout duration (ISO 8601 duration format). + type: string + branchExecTimeout: + description: BranchExecTimeout Single branch execution timeout + duration (ISO 8601 duration format). + type: string + eventTimeout: + description: EventTimeout Timeout duration to wait for consuming + defined events (ISO 8601 duration format). + type: string + stateExecTimeout: + description: StateExecTimeout Total state execution timeout + (including retries) (ISO 8601 duration format). + properties: + single: + description: Single state execution timeout, not including + retries (ISO 8601 duration format) + type: string + total: + description: Total state execution timeout, including + retries (ISO 8601 duration format) + type: string + required: + - total + type: object + workflowExecTimeout: + description: WorkflowExecTimeout Workflow execution timeout + duration (ISO 8601 duration format). If not specified should + be 'unlimited'. + properties: + duration: + default: unlimited + description: Workflow execution timeout duration (ISO + 8601 duration format). If not specified should be 'unlimited'. + type: string + interrupt: + description: If false, workflow instance is allowed to + finish current execution. If true, current workflow + execution is stopped immediately. Default is false. + type: boolean + runBefore: + description: Name of a workflow state to be executed before + workflow instance is terminated. + type: string + required: + - duration + type: object + type: object + version: + description: Workflow version. + type: string + required: + - specVersion + - states + type: object + required: + - flow + type: object + status: + description: KogitoServerlessWorkflowStatus defines the observed state + of KogitoServerlessWorkflow + properties: + address: + description: "Addressable provides a generic mechanism for a custom + resource definition to indicate a destination for message delivery. + \n Addressable is the schema for the destination information. This + is typically stored in the object's `status`, as this information + may be generated by the controller." + properties: + url: + type: string + type: object + applied: + description: KogitoServerlessWorkflowSpec defines the desired state + of KogitoServerlessWorkflow + properties: + flow: + description: Workflow base definition + properties: + annotations: + description: Annotations List of helpful terms describing + the workflows intended purpose, subject areas, or other + important qualities. + items: + type: string + type: array + auth: + description: Auth definitions can be used to define authentication + information that should be applied to resources defined + in the operation property of function definitions. It is + not used as authentication information for the function + invocation, but just to access the resource containing the + function invocation information. + x-kubernetes-preserve-unknown-fields: true + autoRetries: + description: AutoRetries If set to true, actions should automatically + be retried on unchecked errors. Default is false + type: boolean + constants: + additionalProperties: + description: RawMessage is a raw encoded JSON value. It + implements Marshaler and Unmarshaler and can be used to + delay JSON decoding or precompute a JSON encoding. + format: byte + type: string + description: Constants Workflow constants are used to define + static, and immutable, data which is available to Workflow + Expressions. + type: object + dataInputSchema: + description: DataInputSchema URI of the JSON Schema used to + validate the workflow data input + properties: + failOnValidationErrors: + type: boolean + schema: + type: string + required: + - failOnValidationErrors + - schema + type: object + description: + description: Workflow description. + type: string + errors: + description: Defines checked errors that can be explicitly + handled during workflow execution. + items: + description: Error declaration for workflow definitions + properties: + code: + description: Code OnError code. Can be used in addition + to the name to help runtimes resolve to technical + errors/exceptions. Should not be defined if error + is set to '*'. + type: string + description: + description: OnError description. + type: string + name: + description: Name Domain-specific error name. + type: string + required: + - name + type: object + type: array + events: + items: + description: Event used to define events and their correlations + properties: + correlation: + description: Define event correlation rules for this + event. Only used for consumed events. + items: + description: Correlation define event correlation + rules for an event. Only used for `consumed` events + properties: + contextAttributeName: + description: CloudEvent Extension Context Attribute + name type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should - not be retried. Used only when `autoRetries` - is set to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry - definition. If not defined uses the default - runtime retry definition. + contextAttributeValue: + description: CloudEvent Extension Context Attribute + value type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should - be retried. Used only when `autoRetries` is - set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO 8601 - duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string - before: - description: Defines amount of time (ISO 8601 - duration format) to sleep before function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should - be invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how - subflow execution should behave when parent - workflow completes if invoke is 'async'. - Defaults to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object + required: + - contextAttributeName type: object - minItems: 1 type: array - timeouts: - description: State specific timeouts + dataOnly: + description: If `true`, only the Event payload is accessible + to consuming Workflow states. If `false`, both event + payload and context attributes should be accessible. + Defaults to true. + type: boolean + kind: + default: consumed + description: Defines the CloudEvent as either 'consumed' + or 'produced' by the workflow. Defaults to `consumed`. + enum: + - consumed + - produced + type: string + metadata: + additionalProperties: + type: object + description: Metadata information + type: object + name: + description: Unique event name. + type: string + source: + description: CloudEvent source. + type: string + type: + description: CloudEvent type. + type: string + required: + - name + - type + type: object + type: array + expressionLang: + default: jq + description: Identifies the expression language used for workflow + expressions. Default is 'jq'. + enum: + - jq + - jsonpath + type: string + functions: + items: + description: Function ... + properties: + authRef: + description: References an auth definition name to be + used to access to resource defined in the operation + parameter. + type: string + metadata: + additionalProperties: + type: object + description: Metadata information + type: object + name: + description: Unique function name + type: string + operation: + description: If type is `rest`, #. + If type is `rpc`, ##. + If type is `expression`, defines the workflow expression. + If the type is `custom`, #. + type: string + type: + default: rest + description: Defines the function type. Is either `custom`, + `rest`, `rpc`, `expression`, `graphql`, `odata` or + `asyncapi`. Default is `rest`. + enum: + - rest + - rpc + - expression + - graphql + - odata + - asyncapi + - custom + type: string + required: + - name + - operation + type: object + type: array + id: + description: Workflow unique identifier + type: string + keepActive: + description: If "true", workflow instances is not terminated + when there are no active execution paths. Instance can be + terminated with "terminate end definition" or reaching defined + "workflowExecTimeout" + type: boolean + key: + description: Key Domain-specific workflow identifier + type: string + metadata: + description: Metadata custom information shared with the runtime. + x-kubernetes-preserve-unknown-fields: true + name: + description: Workflow name + type: string + retries: + items: + description: Retry ... + properties: + delay: + description: Time delay between retry attempts (ISO + 8601 duration format) + type: string + increment: + description: Static value by which the delay increases + during each attempt (ISO 8601 time format) + type: string + jitter: + description: 'If float type, maximum amount of random + time added or subtracted from the delay between each + retry relative to total delay (between 0 and 1). If + string type, absolute maximum amount of random time + added or subtracted from the delay between each retry + (ISO 8601 duration format) TODO: make iso8601duration + compatible this type' properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) + floatVal: + type: number + strVal: type: string - stateExecTimeout: - description: Defines workflow state execution timeout. + type: + description: Type represents the stored type of + Float32OrString. + format: int64 + type: integer + type: object + maxAttempts: + anyOf: + - type: integer + - type: string + description: Maximum number of retry attempts. + x-kubernetes-int-or-string: true + maxDelay: + description: Maximum time delay between retry attempts + (ISO 8601 duration format) + type: string + multiplier: + description: Numeric value, if specified the delay between + retries is multiplied by this value. + properties: + floatVal: + type: number + strVal: + type: string + type: + description: Type represents the stored type of + Float32OrString. + format: int64 + type: integer + type: object + name: + description: Unique retry strategy name + type: string + required: + - maxAttempts + - name + type: object + type: array + secrets: + description: Secrets allow you to access sensitive information, + such as passwords, OAuth tokens, ssh keys, etc, inside your + Workflow Expressions. + items: + type: string + type: array + specVersion: + default: "0.8" + description: Serverless Workflow schema version + type: string + start: + description: Workflow start definition. + x-kubernetes-preserve-unknown-fields: true + states: + items: + properties: + callbackState: + description: callbackState executes a function and waits + for callback event that indicates completion of the + task. + properties: + action: + description: Defines the action to be executed. properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) + actionDataFilter: + description: Filter the state data to select + only the data that can be used within function + definition arguments using its fromStateData + property. Filter the action results to select + only the result data that should be added/merged + back into the state data using its results + property. Select the part of state data which + the action data results should be added/merged + to using the toStateData property. + properties: + fromStateData: + description: Workflow expression that filters + state data that can be used by the action. + type: string + results: + description: Workflow expression that filters + the actions data results. + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action + results should be added/merged into. If + not specified denotes the top-level state + data element. + type: string + useResults: + description: If set to false, action data + results are not added/merged to state + data. In this case 'results' and 'toStateData' + should be ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must evaluate + to true for this action to be performed. If + false, action is disregarded. + type: string + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension context + attributes to the produced event. + type: object + data: + description: If string type, an expression + which selects parts of the states data + output to become the data (payload) of + the event referenced by triggerEventRef. + If object type, a custom object to become + the data (payload) of the event referenced + by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique name + of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO + 8601 format) to wait for the result event. + If not defined it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name + of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be passed + to the referenced function TODO: validate + it as required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is graphql. + String containing a valid GraphQL selection + set. TODO: validate it as required if + function type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) + name: + description: Defines Unique action name. type: string - required: - - total - type: object - type: object - required: - - actions - type: object - parallelState: - description: parallelState Consists of a number of states - that are executed in parallel. - properties: - branches: - description: List of branches for this parallel state. - items: - description: Branch Definition - properties: - actions: - description: Actions to be executed in this branch - items: - description: Action specify invocations of services - or other workflows during workflow execution. + nonRetryableErrors: + description: List of unique references to defined + workflow errors for which the action should + not be retried. Used only when `autoRetries` + is set to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow retry + definition. If not defined uses the default + runtime retry definition. + type: string + retryableErrors: + description: List of unique references to defined + workflow errors for which the action should + be retried. Used only when `autoRetries` is + set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow execution + should sleep before / after function execution. properties: - actionDataFilter: - description: Filter the state data to select - only the data that can be used within - function definition arguments using its - fromStateData property. Filter the action - results to select only the result data - that should be added/merged back into - the state data using its results property. - Select the part of state data which the - action data results should be added/merged - to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that - filters state data that can be used - by the action. - type: string - results: - description: Workflow expression that - filters the actions data results. - type: string - toStateData: - description: Workflow expression that - selects a state data element to which - the action results should be added/merged - into. If not specified denotes the - top-level state data element. - type: string - useResults: - description: If set to false, action - data results are not added/merged - to state data. In this case 'results' - and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must - evaluate to true for this action to be - performed. If false, action is disregarded. + after: + description: Defines amount of time (ISO + 8601 duration format) to sleep after function/subflow + invocation. Does not apply if 'eventRef' + is defined. type: string - eventRef: - description: References a 'trigger' and - 'result' reusable event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension - context attributes to the produced - event. - type: object - data: - description: If string type, an expression - which selects parts of the states - data output to become the data (payload) - of the event referenced by triggerEventRef. - If object type, a custom object to - become the data (payload) of the event - referenced by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function - should be invoked sync or async. Default - is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique - name of a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time - (ISO 8601 format) to wait for the - result event. If not defined it be - set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique - name of a 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function - definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to - be passed to the referenced function - TODO: validate it as required if function - type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function - should be invoked sync or async. Default - is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced - function. - type: string - selectionSet: - description: 'Used if function type - is graphql. String containing a valid - GraphQL selection set. TODO: validate - it as required if function type is - graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. + before: + description: Defines amount of time (ISO + 8601 duration format) to sleep before + function/subflow invocation. Does not + apply if 'eventRef' is defined. type: string - name: - description: Defines Unique action name. + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow should + be invoked sync or async. Defaults to + sync. + enum: + - async + - sync type: string - nonRetryableErrors: - description: List of unique references to - defined workflow errors for which the - action should not be retried. Used only - when `autoRetries` is set to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow - retry definition. If not defined uses - the default runtime retry definition. + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave when + parent workflow completes if invoke is + 'async'. Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object + type: object + eventDataFilter: + description: Event data filter definition. + properties: + data: + description: Workflow expression that filters + of the event data (payload). + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action results + should be added/merged into. If not specified + denotes the top-level state data element + type: string + useData: + description: If set to false, event payload + is not added/merged to state data. In this + case 'data' and 'toStateData' should be ignored. + Default is true. + type: boolean + type: object + eventRef: + description: References a unique callback event + name in the defined workflow events. + type: string + timeouts: + description: Time period to wait for incoming events + (ISO 8601 format) + properties: + actionExecTimeout: + description: Default single actions definition + execution timeout (ISO 8601 duration format) + type: string + eventTimeout: + description: Default timeout for consuming defined + events (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) type: string - retryableErrors: - description: List of unique references to - defined workflow errors for which the - action should be retried. Used only when - `autoRetries` is set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow - execution should sleep before / after - function execution. - properties: - after: - description: Defines amount of time - (ISO 8601 duration format) to sleep - after function/subflow invocation. - Does not apply if 'eventRef' is defined. - type: string - before: - description: Defines amount of time - (ISO 8601 duration format) to sleep - before function/subflow invocation. - Does not apply if 'eventRef' is defined. - type: string - type: object - subFlowRef: - description: References a workflow to be - invoked. + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - action + - eventRef + type: object + compensatedBy: + description: Unique Name of a workflow state which is + responsible for compensation of this state. + type: string + delayState: + description: delayState Causes the workflow execution + to delay for a specified duration. + properties: + timeDelay: + description: Amount of time (ISO 8601 format) to + delay + type: string + required: + - timeDelay + type: object + end: + description: State end definition. + x-kubernetes-preserve-unknown-fields: true + eventState: + description: event states await one or more events and + perform actions when they are received. If defined + as the workflow starting state, the event state definition + controls when the workflow instances should be created. + properties: + exclusive: + default: true + description: If true consuming one of the defined + events causes its associated actions to be performed. + If false all the defined events must be consumed + in order for actions to be performed. Defaults + to true. + type: boolean + onEvents: + description: Define the events to be consumed and + optional actions to be performed. + items: + description: OnEvents define which actions are + be performed for the one or more events. + properties: + actionMode: + default: sequential + description: Should actions be performed sequentially + or in parallel. Default is sequential. + enum: + - sequential + - parallel + type: string + actions: + description: Actions to be performed if expression + matches + items: + description: Action specify invocations + of services or other workflows during + workflow execution. properties: - invoke: - default: sync - description: Specifies if the subflow - should be invoked sync or async. Defaults - to sync. - enum: - - async - - sync + actionDataFilter: + description: Filter the state data to + select only the data that can be used + within function definition arguments + using its fromStateData property. + Filter the action results to select + only the result data that should be + added/merged back into the state data + using its results property. Select + the part of state data which the action + data results should be added/merged + to using the toStateData property. + properties: + fromStateData: + description: Workflow expression + that filters state data that can + be used by the action. + type: string + results: + description: Workflow expression + that filters the actions data + results. + type: string + toStateData: + description: Workflow expression + that selects a state data element + to which the action results should + be added/merged into. If not specified + denotes the top-level state data + element. + type: string + useResults: + description: If set to false, action + data results are not added/merged + to state data. In this case 'results' + and 'toStateData' should be ignored. + Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, + must evaluate to true for this action + to be performed. If false, action + is disregarded. type: string - onParentComplete: - default: terminate - description: onParentComplete specifies - how subflow execution should behave - when parent workflow completes if - invoke is 'async'. Defaults to terminate. - enum: - - terminate - - continue + eventRef: + description: References a 'trigger' + and 'result' reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension + context attributes to the produced + event. + type: object + data: + description: If string type, an + expression which selects parts + of the states data output to become + the data (payload) of the event + referenced by triggerEventRef. + If object type, a custom object + to become the data (payload) of + the event referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. + Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique + name of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time + (ISO 8601 format) to wait for + the result event. If not defined + it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique + name of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) + to be passed to the referenced + function TODO: validate it as + required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. + Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced + function. + type: string + selectionSet: + description: 'Used if function type + is graphql. String containing + a valid GraphQL selection set. + TODO: validate it as required + if function type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. type: string - version: - description: Sub-workflow version + name: + description: Defines Unique action name. type: string - workflowId: - description: Sub-workflow unique id + nonRetryableErrors: + description: List of unique references + to defined workflow errors for which + the action should not be retried. + Used only when `autoRetries` is set + to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow + retry definition. If not defined uses + the default runtime retry definition. type: string - required: - - workflowId + retryableErrors: + description: List of unique references + to defined workflow errors for which + the action should be retried. Used + only when `autoRetries` is set to + `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow + execution should sleep before / after + function execution. + properties: + after: + description: Defines amount of time + (ISO 8601 duration format) to + sleep after function/subflow invocation. + Does not apply if 'eventRef' is + defined. + type: string + before: + description: Defines amount of time + (ISO 8601 duration format) to + sleep before function/subflow + invocation. Does not apply if + 'eventRef' is defined. + type: string + type: object + subFlowRef: + description: References a workflow to + be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow + should be invoked sync or async. + Defaults to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave + when parent workflow completes + if invoke is 'async'. Defaults + to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique + id + type: string + required: + - workflowId + type: object type: object + type: array + eventDataFilter: + description: eventDataFilter defines the callback + event data filter definition + properties: + data: + description: Workflow expression that + filters of the event data (payload). + type: string + toStateData: + description: Workflow expression that + selects a state data element to which + the action results should be added/merged + into. If not specified denotes the top-level + state data element + type: string + useData: + description: If set to false, event payload + is not added/merged to state data. In + this case 'data' and 'toStateData' should + be ignored. Default is true. + type: boolean + type: object + eventRefs: + description: References one or more unique + event names in the defined workflow events. + items: + type: string + minItems: 1 + type: array + required: + - eventRefs + type: object + minItems: 1 + type: array + timeouts: + description: State specific timeouts. + properties: + actionExecTimeout: + description: Default single actions definition + execution timeout (ISO 8601 duration format) + type: string + eventTimeout: + description: Default timeout for consuming defined + events (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total type: object - minItems: 1 - type: array - name: - description: Branch name - type: string - timeouts: - description: Branch specific timeout settings + type: object + required: + - onEvents + type: object + forEachState: + description: forEachState used to execute actions for + each element of a data set. + properties: + actions: + description: Actions to be executed for each of + the elements of inputCollection. + items: + description: Action specify invocations of services + or other workflows during workflow execution. properties: - actionExecTimeout: - description: Single actions definition execution - timeout duration (ISO 8601 duration format) + actionDataFilter: + description: Filter the state data to select + only the data that can be used within function + definition arguments using its fromStateData + property. Filter the action results to select + only the result data that should be added/merged + back into the state data using its results + property. Select the part of state data + which the action data results should be + added/merged to using the toStateData property. + properties: + fromStateData: + description: Workflow expression that + filters state data that can be used + by the action. + type: string + results: + description: Workflow expression that + filters the actions data results. + type: string + toStateData: + description: Workflow expression that + selects a state data element to which + the action results should be added/merged + into. If not specified denotes the top-level + state data element. + type: string + useResults: + description: If set to false, action data + results are not added/merged to state + data. In this case 'results' and 'toStateData' + should be ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must + evaluate to true for this action to be performed. + If false, action is disregarded. type: string - branchExecTimeout: - description: Single branch execution timeout - duration (ISO 8601 duration format) + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension + context attributes to the produced event. + type: object + data: + description: If string type, an expression + which selects parts of the states data + output to become the data (payload) + of the event referenced by triggerEventRef. + If object type, a custom object to become + the data (payload) of the event referenced + by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique name + of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO + 8601 format) to wait for the result + event. If not defined it be set to the + actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name + of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be + passed to the referenced function TODO: + validate it as required if function + type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is + graphql. String containing a valid GraphQL + selection set. TODO: validate it as + required if function type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to + defined workflow errors for which the action + should not be retried. Used only when `autoRetries` + is set to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow + retry definition. If not defined uses the + default runtime retry definition. type: string + retryableErrors: + description: List of unique references to + defined workflow errors for which the action + should be retried. Used only when `autoRetries` + is set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow + execution should sleep before / after function + execution. + properties: + after: + description: Defines amount of time (ISO + 8601 duration format) to sleep after + function/subflow invocation. Does not + apply if 'eventRef' is defined. + type: string + before: + description: Defines amount of time (ISO + 8601 duration format) to sleep before + function/subflow invocation. Does not + apply if 'eventRef' is defined. + type: string + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow + should be invoked sync or async. Defaults + to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave + when parent workflow completes if invoke + is 'async'. Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object type: object - required: - - actions - - name - type: object - minItems: 1 - type: array - completionType: - default: allOf - description: Option types on how to complete branch - execution. Defaults to `allOf`. - enum: - - allOf - - atLeast - type: string - numCompleted: - anyOf: - - type: integer - - type: string - description: 'Used when branchCompletionType is set - to atLeast to specify the least number of branches - that must complete in order for the state to transition/end. - TODO: change this field to unmarshal result as int' - x-kubernetes-int-or-string: true - timeouts: - description: State specific timeouts - properties: - branchExecTimeout: - description: Default single branch execution timeout - (ISO 8601 duration format) + minItems: 1 + type: array + batchSize: + anyOf: + - type: integer + - type: string + description: Specifies how many iterations may run + in parallel at the same time. Used if mode property + is set to parallel (default). If not specified, + its value should be the size of the inputCollection. + x-kubernetes-int-or-string: true + inputCollection: + description: Workflow expression selecting an array + element of the states' data. type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) + iterationParam: + description: Name of the iteration parameter that + can be referenced in actions/workflow. For each + parallel iteration, this param should contain + a unique element of the inputCollection array. + type: string + mode: + default: parallel + description: Specifies how iterations are to be + performed (sequential or in parallel), defaults + to parallel. + enum: + - sequential + - parallel + type: string + outputCollection: + description: Workflow expression specifying an array + element of the states data to add the results + of each iteration. + type: string + timeouts: + description: State specific timeout. properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) + actionExecTimeout: + description: Default single actions definition + execution timeout (ISO 8601 duration format) type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) - type: string - required: - - total + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object type: object + required: + - inputCollection type: object - required: - - branches - type: object - sleepState: - description: sleepState suspends workflow execution for - a given time duration. - properties: - duration: - description: Duration (ISO 8601 duration format) to - sleep + id: + description: Unique State id. type: string - timeouts: - description: Timeouts State specific timeouts - properties: - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) - type: string - required: - - total + injectState: + description: injectState used to inject static data + into state data input. + properties: + data: + additionalProperties: + type: object + description: JSON object which can be set as state's + data input and can be manipulated via filter + minProperties: 1 + type: object + timeouts: + description: State specific timeouts + properties: + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object type: object + required: + - data type: object - required: - - duration - type: object - stateDataFilter: - description: State data filter. - properties: - input: - description: Workflow expression to filter the state - data input - type: string - output: - description: Workflow expression that filters the state - data output + metadata: + additionalProperties: + type: object + description: Metadata information. + type: object + name: + description: State name. type: string - type: object - switchState: - description: 'switchState is workflow''s gateways: direct - transitions onf a workflow based on certain conditions.' - properties: - dataConditions: - description: Defines conditions evaluated against data + onErrors: + description: States error handling and retries definitions. items: - description: DataCondition specify a data-based condition - statement which causes a transition to another workflow - state if evaluated to true. + description: OnError ... properties: - condition: - description: Workflow expression evaluated against - state data. Must evaluate to true or false. - type: string end: - description: TODO End or Transition needs to be - exclusive tag, one or another should be set. - Explicit transition to end + description: End workflow execution in case of + this error. If retryRef is defined, this ends + workflow only if retries were unsuccessful. + x-kubernetes-preserve-unknown-fields: true + errorRef: + description: ErrorRef Reference to a unique workflow + error definition. Used of errorRefs is not used + type: string + errorRefs: + description: ErrorRefs References one or more + workflow error definitions. Used if errorRef + is not used + items: + type: string + type: array + transition: + description: Transition to next state to handle + the error. If retryRef is defined, this transition + is taken only if retries were unsuccessful. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + operationState: + description: operationState defines a set of actions + to be performed in sequence or in parallel. + properties: + actionMode: + default: sequential + description: Specifies whether actions are performed + in sequence or in parallel, defaults to sequential. + enum: + - sequential + - parallel + type: string + actions: + description: Actions to be performed + items: + description: Action specify invocations of services + or other workflows during workflow execution. properties: - compensate: - description: If set to true, triggers workflow - compensation before workflow execution completes. - Default is false. - type: boolean - continueAs: - description: Defines that current workflow - execution should stop, and execution should - continue as a new workflow instance of the - provided id + actionDataFilter: + description: Filter the state data to select + only the data that can be used within function + definition arguments using its fromStateData + property. Filter the action results to select + only the result data that should be added/merged + back into the state data using its results + property. Select the part of state data + which the action data results should be + added/merged to using the toStateData property. + properties: + fromStateData: + description: Workflow expression that + filters state data that can be used + by the action. + type: string + results: + description: Workflow expression that + filters the actions data results. + type: string + toStateData: + description: Workflow expression that + selects a state data element to which + the action results should be added/merged + into. If not specified denotes the top-level + state data element. + type: string + useResults: + description: If set to false, action data + results are not added/merged to state + data. In this case 'results' and 'toStateData' + should be ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must + evaluate to true for this action to be performed. + If false, action is disregarded. + type: string + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension + context attributes to the produced event. + type: object data: description: If string type, an expression which selects parts of the states data - output to become the workflow data input - of continued execution. If object type, - a custom object to become the workflow - data input of the continued execution + output to become the data (payload) + of the event referenced by triggerEventRef. + If object type, a custom object to become + the data (payload) of the event referenced + by triggerEventRef. type: object - version: - description: Version of the workflow to - continue execution as. + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync type: string - workflowExecTimeout: - description: WorkflowExecTimeout Workflow - execution timeout to be used by the - workflow continuing execution. Overwrites - any specific settings set by that workflow - properties: - duration: - default: unlimited - description: Workflow execution timeout - duration (ISO 8601 duration format). - If not specified should be 'unlimited'. - type: string - interrupt: - description: If false, workflow instance - is allowed to finish current execution. - If true, current workflow execution - is stopped immediately. Default - is false. - type: boolean - runBefore: - description: Name of a workflow state - to be executed before workflow instance - is terminated. - type: string - required: - - duration + resultEventRef: + description: Reference to the unique name + of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO + 8601 format) to wait for the result + event. If not defined it be set to the + actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name + of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be + passed to the referenced function TODO: + validate it as required if function + type is graphql' type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is + graphql. String containing a valid GraphQL + selection set. TODO: validate it as + required if function type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to + defined workflow errors for which the action + should not be retried. Used only when `autoRetries` + is set to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow + retry definition. If not defined uses the + default runtime retry definition. + type: string + retryableErrors: + description: List of unique references to + defined workflow errors for which the action + should be retried. Used only when `autoRetries` + is set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow + execution should sleep before / after function + execution. + properties: + after: + description: Defines amount of time (ISO + 8601 duration format) to sleep after + function/subflow invocation. Does not + apply if 'eventRef' is defined. + type: string + before: + description: Defines amount of time (ISO + 8601 duration format) to sleep before + function/subflow invocation. Does not + apply if 'eventRef' is defined. + type: string + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow + should be invoked sync or async. Defaults + to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave + when parent workflow completes if invoke + is 'async'. Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string workflowId: - description: Unique id of the workflow - to continue execution as. + description: Sub-workflow unique id type: string required: - workflowId type: object - produceEvents: - description: Array of producedEvent definitions. - Defines events that should be produced. + type: object + minItems: 1 + type: array + timeouts: + description: State specific timeouts + properties: + actionExecTimeout: + description: Default single actions definition + execution timeout (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Defines workflow state execution + timeout. + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - actions + type: object + parallelState: + description: parallelState Consists of a number of states + that are executed in parallel. + properties: + branches: + description: List of branches for this parallel + state. + items: + description: Branch Definition + properties: + actions: + description: Actions to be executed in this + branch items: - description: ProduceEvent Defines the event - (CloudEvent format) to be produced when - workflow execution completes or during - a workflow transitions. The eventRef property - must match the name of one of the defined - produced events in the events definition. + description: Action specify invocations + of services or other workflows during + workflow execution. properties: - contextAttributes: - additionalProperties: - type: string - description: Add additional event extension - context attributes. - type: object - data: - description: If String, expression which - selects parts of the states data output - to become the data of the produced - event. If object a custom object to - become the data of produced event. + actionDataFilter: + description: Filter the state data to + select only the data that can be used + within function definition arguments + using its fromStateData property. + Filter the action results to select + only the result data that should be + added/merged back into the state data + using its results property. Select + the part of state data which the action + data results should be added/merged + to using the toStateData property. + properties: + fromStateData: + description: Workflow expression + that filters state data that can + be used by the action. + type: string + results: + description: Workflow expression + that filters the actions data + results. + type: string + toStateData: + description: Workflow expression + that selects a state data element + to which the action results should + be added/merged into. If not specified + denotes the top-level state data + element. + type: string + useResults: + description: If set to false, action + data results are not added/merged + to state data. In this case 'results' + and 'toStateData' should be ignored. + Default is true. + type: boolean type: object + condition: + description: Expression, if defined, + must evaluate to true for this action + to be performed. If false, action + is disregarded. + type: string eventRef: - description: Reference to a defined - unique event name in the events definition + description: References a 'trigger' + and 'result' reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension + context attributes to the produced + event. + type: object + data: + description: If string type, an + expression which selects parts + of the states data output to become + the data (payload) of the event + referenced by triggerEventRef. + If object type, a custom object + to become the data (payload) of + the event referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. + Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique + name of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time + (ISO 8601 format) to wait for + the result event. If not defined + it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique + name of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) + to be passed to the referenced + function TODO: validate it as + required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. + Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced + function. + type: string + selectionSet: + description: 'Used if function type + is graphql. String containing + a valid GraphQL selection set. + TODO: validate it as required + if function type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. type: string - required: - - eventRef + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references + to defined workflow errors for which + the action should not be retried. + Used only when `autoRetries` is set + to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow + retry definition. If not defined uses + the default runtime retry definition. + type: string + retryableErrors: + description: List of unique references + to defined workflow errors for which + the action should be retried. Used + only when `autoRetries` is set to + `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow + execution should sleep before / after + function execution. + properties: + after: + description: Defines amount of time + (ISO 8601 duration format) to + sleep after function/subflow invocation. + Does not apply if 'eventRef' is + defined. + type: string + before: + description: Defines amount of time + (ISO 8601 duration format) to + sleep before function/subflow + invocation. Does not apply if + 'eventRef' is defined. + type: string + type: object + subFlowRef: + description: References a workflow to + be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow + should be invoked sync or async. + Defaults to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave + when parent workflow completes + if invoke is 'async'. Defaults + to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique + id + type: string + required: + - workflowId + type: object type: object + minItems: 1 type: array - terminate: - description: If true, completes all execution - flows in the given workflow instance. - type: boolean + name: + description: Branch name + type: string + timeouts: + description: Branch specific timeout settings + properties: + actionExecTimeout: + description: Single actions definition + execution timeout duration (ISO 8601 + duration format) + type: string + branchExecTimeout: + description: Single branch execution timeout + duration (ISO 8601 duration format) + type: string + type: object + required: + - actions + - name type: object - metadata: - additionalProperties: + minItems: 1 + type: array + completionType: + default: allOf + description: Option types on how to complete branch + execution. Defaults to `allOf`. + enum: + - allOf + - atLeast + type: string + numCompleted: + anyOf: + - type: integer + - type: string + description: 'Used when branchCompletionType is + set to atLeast to specify the least number of + branches that must complete in order for the state + to transition/end. TODO: change this field to + unmarshal result as int' + x-kubernetes-int-or-string: true + timeouts: + description: State specific timeouts + properties: + branchExecTimeout: + description: Default single branch execution + timeout (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total type: object - description: Metadata information. - type: object - name: - description: Data condition name. - type: string - transition: - description: Workflow transition if condition - is evaluated to true - properties: - compensate: - default: false - description: If set to true, triggers workflow - compensation before this transition is taken. - Default is false. - type: boolean - nextState: - description: Name of the state to transition - to next. - type: string - produceEvents: - description: Array of producedEvent definitions. - Events to be produced before the transition - takes place. - items: - description: ProduceEvent Defines the event - (CloudEvent format) to be produced when - workflow execution completes or during - a workflow transitions. The eventRef property - must match the name of one of the defined - produced events in the events definition. - properties: - contextAttributes: - additionalProperties: + type: object + required: + - branches + type: object + sleepState: + description: sleepState suspends workflow execution + for a given time duration. + properties: + duration: + description: Duration (ISO 8601 duration format) + to sleep + type: string + timeouts: + description: Timeouts State specific timeouts + properties: + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - duration + type: object + stateDataFilter: + description: State data filter. + properties: + input: + description: Workflow expression to filter the state + data input + type: string + output: + description: Workflow expression that filters the + state data output + type: string + type: object + switchState: + description: 'switchState is workflow''s gateways: direct + transitions onf a workflow based on certain conditions.' + properties: + dataConditions: + description: Defines conditions evaluated against + data + items: + description: DataCondition specify a data-based + condition statement which causes a transition + to another workflow state if evaluated to true. + properties: + condition: + description: Workflow expression evaluated + against state data. Must evaluate to true + or false. + type: string + end: + description: TODO End or Transition needs + to be exclusive tag, one or another should + be set. Explicit transition to end + properties: + compensate: + description: If set to true, triggers + workflow compensation before workflow + execution completes. Default is false. + type: boolean + continueAs: + description: Defines that current workflow + execution should stop, and execution + should continue as a new workflow instance + of the provided id + properties: + data: + description: If string type, an expression + which selects parts of the states + data output to become the workflow + data input of continued execution. + If object type, a custom object + to become the workflow data input + of the continued execution + type: object + version: + description: Version of the workflow + to continue execution as. type: string - description: Add additional event extension - context attributes. - type: object - data: - description: If String, expression which - selects parts of the states data output - to become the data of the produced - event. If object a custom object to - become the data of produced event. + workflowExecTimeout: + description: WorkflowExecTimeout Workflow + execution timeout to be used by + the workflow continuing execution. + Overwrites any specific settings + set by that workflow + properties: + duration: + default: unlimited + description: Workflow execution + timeout duration (ISO 8601 duration + format). If not specified should + be 'unlimited'. + type: string + interrupt: + description: If false, workflow + instance is allowed to finish + current execution. If true, + current workflow execution is + stopped immediately. Default + is false. + type: boolean + runBefore: + description: Name of a workflow + state to be executed before + workflow instance is terminated. + type: string + required: + - duration + type: object + workflowId: + description: Unique id of the workflow + to continue execution as. + type: string + required: + - workflowId + type: object + produceEvents: + description: Array of producedEvent definitions. + Defines events that should be produced. + items: + description: ProduceEvent Defines the + event (CloudEvent format) to be produced + when workflow execution completes + or during a workflow transitions. + The eventRef property must match the + name of one of the defined produced + events in the events definition. + properties: + contextAttributes: + additionalProperties: + type: string + description: Add additional event + extension context attributes. + type: object + data: + description: If String, expression + which selects parts of the states + data output to become the data + of the produced event. If object + a custom object to become the + data of produced event. + type: object + eventRef: + description: Reference to a defined + unique event name in the events + definition + type: string + required: + - eventRef type: object - eventRef: - description: Reference to a defined - unique event name in the events definition - type: string - required: - - eventRef + type: array + terminate: + description: If true, completes all execution + flows in the given workflow instance. + type: boolean + type: object + metadata: + additionalProperties: type: object - type: array + description: Metadata information. + type: object + name: + description: Data condition name. + type: string + transition: + description: Workflow transition if condition + is evaluated to true + properties: + compensate: + default: false + description: If set to true, triggers + workflow compensation before this transition + is taken. Default is false. + type: boolean + nextState: + description: Name of the state to transition + to next. + type: string + produceEvents: + description: Array of producedEvent definitions. + Events to be produced before the transition + takes place. + items: + description: ProduceEvent Defines the + event (CloudEvent format) to be produced + when workflow execution completes + or during a workflow transitions. + The eventRef property must match the + name of one of the defined produced + events in the events definition. + properties: + contextAttributes: + additionalProperties: + type: string + description: Add additional event + extension context attributes. + type: object + data: + description: If String, expression + which selects parts of the states + data output to become the data + of the produced event. If object + a custom object to become the + data of produced event. + type: object + eventRef: + description: Reference to a defined + unique event name in the events + definition + type: string + required: + - eventRef + type: object + type: array + required: + - nextState + type: object required: - - nextState + - condition + - end type: object - required: - - condition - - end - type: object - type: array - defaultCondition: - description: Default transition of the workflow if there - is no matching data conditions. Can include a transition - or end definition. - properties: - end: - description: If this state an end state - x-kubernetes-preserve-unknown-fields: true - transition: - description: Serverless workflow states can have - one or more incoming and outgoing transitions - (from/to other states). Each state can define - a transition definition that is used to determine - which state to transition to next. - x-kubernetes-preserve-unknown-fields: true - type: object - eventConditions: - description: Defines conditions evaluated against events. - items: - description: EventCondition specify events which the - switch state must wait for. - properties: - end: - description: TODO End or Transition needs to be - exclusive tag, one or another should be set. - Explicit transition to end - x-kubernetes-preserve-unknown-fields: true - eventDataFilter: - description: Event data filter definition. + type: array + defaultCondition: + description: Default transition of the workflow + if there is no matching data conditions. Can include + a transition or end definition. + properties: + end: + description: If this state an end state + x-kubernetes-preserve-unknown-fields: true + transition: + description: Serverless workflow states can + have one or more incoming and outgoing transitions + (from/to other states). Each state can define + a transition definition that is used to determine + which state to transition to next. + x-kubernetes-preserve-unknown-fields: true + type: object + eventConditions: + description: Defines conditions evaluated against + events. + items: + description: EventCondition specify events which + the switch state must wait for. properties: - data: - description: Workflow expression that filters - of the event data (payload). + end: + description: TODO End or Transition needs + to be exclusive tag, one or another should + be set. Explicit transition to end + x-kubernetes-preserve-unknown-fields: true + eventDataFilter: + description: Event data filter definition. + properties: + data: + description: Workflow expression that + filters of the event data (payload). + type: string + toStateData: + description: Workflow expression that + selects a state data element to which + the action results should be added/merged + into. If not specified denotes the top-level + state data element + type: string + useData: + description: If set to false, event payload + is not added/merged to state data. In + this case 'data' and 'toStateData' should + be ignored. Default is true. + type: boolean + type: object + eventRef: + description: References a unique event name + in the defined workflow events. type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action - results should be added/merged into. If - not specified denotes the top-level state - data element + metadata: + description: Metadata information. + x-kubernetes-preserve-unknown-fields: true + name: + description: Event condition name. type: string - useData: - description: If set to false, event payload - is not added/merged to state data. In this - case 'data' and 'toStateData' should be - ignored. Default is true. - type: boolean + transition: + description: Workflow transition if condition + is evaluated to true + x-kubernetes-preserve-unknown-fields: true + required: + - eventRef type: object - eventRef: - description: References a unique event name in - the defined workflow events. - type: string - metadata: - description: Metadata information. - x-kubernetes-preserve-unknown-fields: true - name: - description: Event condition name. - type: string - transition: - description: Workflow transition if condition - is evaluated to true - x-kubernetes-preserve-unknown-fields: true - required: - - eventRef - type: object - type: array - timeouts: - description: SwitchState specific timeouts - properties: - eventTimeout: - description: 'Specify the expire value to transitions - to defaultCondition. When event-based conditions - do not arrive. NOTE: this is only available for - EventConditions' - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) + type: array + timeouts: + description: SwitchState specific timeouts properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) + eventTimeout: + description: 'Specify the expire value to transitions + to defaultCondition. When event-based conditions + do not arrive. NOTE: this is only available + for EventConditions' type: string - required: - - total + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object type: object + required: + - defaultCondition type: object + transition: + description: Next transition of the workflow after the + time delay. + x-kubernetes-preserve-unknown-fields: true + type: + description: stateType can be any of delay, callback, + event, foreach, inject, operation, parallel, sleep, + switch + enum: + - delay + - callback + - event + - foreach + - inject + - operation + - parallel + - sleep + - switch + type: string + usedForCompensation: + description: If true, this state is used to compensate + another state. Default is false. + type: boolean required: - - defaultCondition + - name + - type type: object - transition: - description: Next transition of the workflow after the time - delay. - x-kubernetes-preserve-unknown-fields: true - type: - description: stateType can be any of delay, callback, event, - foreach, inject, operation, parallel, sleep, switch - enum: - - delay - - callback - - event - - foreach - - inject - - operation - - parallel - - sleep - - switch - type: string - usedForCompensation: - description: If true, this state is used to compensate another - state. Default is false. - type: boolean - required: - - name - - type - type: object - minItems: 1 - type: array - x-kubernetes-preserve-unknown-fields: true - timeouts: - description: Defines the workflow default timeout settings. - properties: - actionExecTimeout: - description: ActionExecTimeout Single actions definition execution - timeout duration (ISO 8601 duration format). - type: string - branchExecTimeout: - description: BranchExecTimeout Single branch execution timeout - duration (ISO 8601 duration format). - type: string - eventTimeout: - description: EventTimeout Timeout duration to wait for consuming - defined events (ISO 8601 duration format). - type: string - stateExecTimeout: - description: StateExecTimeout Total state execution timeout - (including retries) (ISO 8601 duration format). + minItems: 1 + type: array + x-kubernetes-preserve-unknown-fields: true + timeouts: + description: Defines the workflow default timeout settings. properties: - single: - description: Single state execution timeout, not including - retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) + actionExecTimeout: + description: ActionExecTimeout Single actions definition + execution timeout duration (ISO 8601 duration format). type: string - required: - - total - type: object - workflowExecTimeout: - description: WorkflowExecTimeout Workflow execution timeout - duration (ISO 8601 duration format). If not specified should - be 'unlimited'. - properties: - duration: - default: unlimited - description: Workflow execution timeout duration (ISO - 8601 duration format). If not specified should be 'unlimited'. + branchExecTimeout: + description: BranchExecTimeout Single branch execution + timeout duration (ISO 8601 duration format). type: string - interrupt: - description: If false, workflow instance is allowed to - finish current execution. If true, current workflow - execution is stopped immediately. Default is false. - type: boolean - runBefore: - description: Name of a workflow state to be executed before - workflow instance is terminated. + eventTimeout: + description: EventTimeout Timeout duration to wait for + consuming defined events (ISO 8601 duration format). type: string - required: - - duration + stateExecTimeout: + description: StateExecTimeout Total state execution timeout + (including retries) (ISO 8601 duration format). + properties: + single: + description: Single state execution timeout, not including + retries (ISO 8601 duration format) + type: string + total: + description: Total state execution timeout, including + retries (ISO 8601 duration format) + type: string + required: + - total + type: object + workflowExecTimeout: + description: WorkflowExecTimeout Workflow execution timeout + duration (ISO 8601 duration format). If not specified + should be 'unlimited'. + properties: + duration: + default: unlimited + description: Workflow execution timeout duration (ISO + 8601 duration format). If not specified should be + 'unlimited'. + type: string + interrupt: + description: If false, workflow instance is allowed + to finish current execution. If true, current workflow + execution is stopped immediately. Default is false. + type: boolean + runBefore: + description: Name of a workflow state to be executed + before workflow instance is terminated. + type: string + required: + - duration + type: object type: object + version: + description: Workflow version. + type: string + required: + - specVersion + - states type: object - version: - description: Workflow version. - type: string required: - - specVersion - - states + - flow type: object conditions: description: The latest available observations of a resource's current diff --git a/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow.yaml b/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow.yaml index aabd15e237c..4f17d8463c4 100644 --- a/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow.yaml +++ b/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow.yaml @@ -6,36 +6,37 @@ metadata: sw.kogito.kie.org/description: Greeting example on k8s! sw.kogito.kie.org/version: 0.0.1 spec: - start: ChooseOnLanguage - functions: - - name: greetFunction - type: custom - operation: sysout - states: - - name: ChooseOnLanguage - type: switch - dataConditions: - - condition: "${ .language == \"English\" }" - transition: GreetInEnglish - - condition: "${ .language == \"Spanish\" }" - transition: GreetInSpanish - defaultCondition: GreetInEnglish - - name: GreetInEnglish - type: inject - data: - greeting: "Hello from JSON Workflow, " - transition: GreetPerson - - name: GreetInSpanish - type: inject - data: - greeting: "Saludos desde JSON Workflow, " - transition: GreetPerson - - name: GreetPerson - type: operation - actions: - - name: greetAction - functionRef: - refName: greetFunction - arguments: - message: ".greeting+.name" - end: true + flow: + start: ChooseOnLanguage + functions: + - name: greetFunction + type: custom + operation: sysout + states: + - name: ChooseOnLanguage + type: switch + dataConditions: + - condition: "${ .language == \"English\" }" + transition: GreetInEnglish + - condition: "${ .language == \"Spanish\" }" + transition: GreetInSpanish + defaultCondition: GreetInEnglish + - name: GreetInEnglish + type: inject + data: + greeting: "Hello from JSON Workflow, " + transition: GreetPerson + - name: GreetInSpanish + type: inject + data: + greeting: "Saludos desde JSON Workflow, " + transition: GreetPerson + - name: GreetPerson + type: operation + actions: + - name: greetAction + functionRef: + refName: greetFunction + arguments: + message: ".greeting+.name" + end: true diff --git a/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_devmode.yaml b/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_devmode.yaml index b50590bdd5b..2384b9ea3a3 100644 --- a/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_devmode.yaml +++ b/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_devmode.yaml @@ -7,36 +7,37 @@ metadata: sw.kogito.kie.org/version: 0.0.1 sw.kogito.kie.org/profile: dev spec: - start: ChooseOnLanguage - functions: - - name: greetFunction - type: custom - operation: sysout - states: - - name: ChooseOnLanguage - type: switch - dataConditions: - - condition: "${ .language == \"English\" }" - transition: GreetInEnglish - - condition: "${ .language == \"Spanish\" }" - transition: GreetInSpanish - defaultCondition: GreetInEnglish - - name: GreetInEnglish - type: inject - data: - greeting: "Hello from JSON Workflow, " - transition: GreetPerson - - name: GreetInSpanish - type: inject - data: - greeting: "Saludos desde JSON Workflow, " - transition: GreetPerson - - name: GreetPerson - type: operation - actions: - - name: greetAction - functionRef: - refName: greetFunction - arguments: - message: ".greeting+.name" - end: true + flow: + start: ChooseOnLanguage + functions: + - name: greetFunction + type: custom + operation: sysout + states: + - name: ChooseOnLanguage + type: switch + dataConditions: + - condition: "${ .language == \"English\" }" + transition: GreetInEnglish + - condition: "${ .language == \"Spanish\" }" + transition: GreetInSpanish + defaultCondition: GreetInEnglish + - name: GreetInEnglish + type: inject + data: + greeting: "Hello from JSON Workflow, " + transition: GreetPerson + - name: GreetInSpanish + type: inject + data: + greeting: "Saludos desde JSON Workflow, " + transition: GreetPerson + - name: GreetPerson + type: operation + actions: + - name: greetAction + functionRef: + refName: greetFunction + arguments: + message: ".greeting+.name" + end: true diff --git a/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_devmodeWithConfigMapAndExternalResource.yaml b/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_devmodeWithConfigMapAndExternalResource.yaml index 2e644d3f15b..f4ef33aebbc 100644 --- a/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_devmodeWithConfigMapAndExternalResource.yaml +++ b/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_devmodeWithConfigMapAndExternalResource.yaml @@ -31,37 +31,38 @@ metadata: sw.kogito.kie.org/profile: dev sw.kogito.kie.org/resource-camel: mycamel-configmap spec: - start: ChooseOnLanguage - functions: - - name: greetFunction - type: custom - operation: sysout - states: - - name: ChooseOnLanguage - type: switch - dataConditions: - - condition: "${ .language == \"English\" }" - transition: GreetInEnglish - - condition: "${ .language == \"Spanish\" }" - transition: GreetInSpanish - defaultCondition: GreetInEnglish - - name: GreetInEnglish - type: inject - data: - greeting: "Hello from JSON Workflow, " - transition: GreetPerson - - name: GreetInSpanish - type: inject - data: - greeting: "Saludos desde JSON Workflow, " - transition: GreetPerson - - name: GreetPerson - type: operation - actions: - - name: greetAction - functionRef: - refName: greetFunction - arguments: - message: ".greeting+.name" - end: true + flow: + start: ChooseOnLanguage + functions: + - name: greetFunction + type: custom + operation: sysout + states: + - name: ChooseOnLanguage + type: switch + dataConditions: + - condition: "${ .language == \"English\" }" + transition: GreetInEnglish + - condition: "${ .language == \"Spanish\" }" + transition: GreetInSpanish + defaultCondition: GreetInEnglish + - name: GreetInEnglish + type: inject + data: + greeting: "Hello from JSON Workflow, " + transition: GreetPerson + - name: GreetInSpanish + type: inject + data: + greeting: "Saludos desde JSON Workflow, " + transition: GreetPerson + - name: GreetPerson + type: operation + actions: + - name: greetAction + functionRef: + refName: greetFunction + arguments: + message: ".greeting+.name" + end: true diff --git a/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_devmodeWithExternalResource.yaml b/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_devmodeWithExternalResource.yaml index ec6db3669b8..a13ce392ae1 100644 --- a/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_devmodeWithExternalResource.yaml +++ b/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_devmodeWithExternalResource.yaml @@ -8,37 +8,38 @@ metadata: sw.kogito.kie.org/profile: dev sw.kogito.kie.org/resource-camel: mycamel-configmap spec: - start: ChooseOnLanguage - functions: - - name: greetFunction - type: custom - operation: sysout - states: - - name: ChooseOnLanguage - type: switch - dataConditions: - - condition: "${ .language == \"English\" }" - transition: GreetInEnglish - - condition: "${ .language == \"Spanish\" }" - transition: GreetInSpanish - defaultCondition: GreetInEnglish - - name: GreetInEnglish - type: inject - data: - greeting: "Hello from JSON Workflow, " - transition: GreetPerson - - name: GreetInSpanish - type: inject - data: - greeting: "Saludos desde JSON Workflow, " - transition: GreetPerson - - name: GreetPerson - type: operation - actions: - - name: greetAction - functionRef: - refName: greetFunction - arguments: - message: ".greeting+.name" - end: true + flow: + start: ChooseOnLanguage + functions: + - name: greetFunction + type: custom + operation: sysout + states: + - name: ChooseOnLanguage + type: switch + dataConditions: + - condition: "${ .language == \"English\" }" + transition: GreetInEnglish + - condition: "${ .language == \"Spanish\" }" + transition: GreetInSpanish + defaultCondition: GreetInEnglish + - name: GreetInEnglish + type: inject + data: + greeting: "Hello from JSON Workflow, " + transition: GreetPerson + - name: GreetInSpanish + type: inject + data: + greeting: "Saludos desde JSON Workflow, " + transition: GreetPerson + - name: GreetPerson + type: operation + actions: + - name: greetAction + functionRef: + refName: greetFunction + arguments: + message: ".greeting+.name" + end: true diff --git a/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_withExplicitProdProfile.yaml b/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_withExplicitProdProfile.yaml index 7b628975aaf..802096f384d 100644 --- a/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_withExplicitProdProfile.yaml +++ b/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_withExplicitProdProfile.yaml @@ -7,36 +7,37 @@ metadata: sw.kogito.kie.org/version: 0.0.1 sw.kogito.kie.org/profile: prod #It is not mandatory to add this annotation to use the Prod Profile since it's the default one spec: - start: ChooseOnLanguage - functions: - - name: greetFunction - type: custom - operation: sysout - states: - - name: ChooseOnLanguage - type: switch - dataConditions: - - condition: "${ .language == \"English\" }" - transition: GreetInEnglish - - condition: "${ .language == \"Spanish\" }" - transition: GreetInSpanish - defaultCondition: GreetInEnglish - - name: GreetInEnglish - type: inject - data: - greeting: "Hello from JSON Workflow, " - transition: GreetPerson - - name: GreetInSpanish - type: inject - data: - greeting: "Saludos desde JSON Workflow, " - transition: GreetPerson - - name: GreetPerson - type: operation - actions: - - name: greetAction - functionRef: - refName: greetFunction - arguments: - message: ".greeting+.name" - end: true + flow: + start: ChooseOnLanguage + functions: + - name: greetFunction + type: custom + operation: sysout + states: + - name: ChooseOnLanguage + type: switch + dataConditions: + - condition: "${ .language == \"English\" }" + transition: GreetInEnglish + - condition: "${ .language == \"Spanish\" }" + transition: GreetInSpanish + defaultCondition: GreetInEnglish + - name: GreetInEnglish + type: inject + data: + greeting: "Hello from JSON Workflow, " + transition: GreetPerson + - name: GreetInSpanish + type: inject + data: + greeting: "Saludos desde JSON Workflow, " + transition: GreetPerson + - name: GreetPerson + type: operation + actions: + - name: greetAction + functionRef: + refName: greetFunction + arguments: + message: ".greeting+.name" + end: true diff --git a/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_withITA.yaml b/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_withITA.yaml index c5be8685854..50fe4310bc8 100644 --- a/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_withITA.yaml +++ b/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_withITA.yaml @@ -6,43 +6,44 @@ metadata: sw.kogito.kie.org/description: Greeting example on k8s with Italian! sw.kogito.kie.org/version: 0.0.2 spec: - start: ChooseOnLanguage - functions: - - name: greetFunction - type: custom - operation: sysout - states: - - name: ChooseOnLanguage - type: switch - dataConditions: - - condition: "${ .language == \"English\" }" - transition: GreetInEnglish - - condition: "${ .language == \"Spanish\" }" - transition: GreetInSpanish - - condition: "${ .language == \"Italian\" }" - transition: GreetInItalian - defaultCondition: GreetInEnglish - - name: GreetInEnglish - type: inject - data: - greeting: "Hello from JSON Workflow, " - transition: GreetPerson - - name: GreetInSpanish - type: inject - data: - greeting: "Saludos desde JSON Workflow, " - transition: GreetPerson - - name: GreetInItalian - type: inject - data: - greeting: "Saluti dal JSON Workflow, " - transition: GreetPerson - - name: GreetPerson - type: operation - actions: - - name: greetAction - functionRef: - refName: greetFunction - arguments: - message: ".greeting+.name" - end: true + flow: + start: ChooseOnLanguage + functions: + - name: greetFunction + type: custom + operation: sysout + states: + - name: ChooseOnLanguage + type: switch + dataConditions: + - condition: "${ .language == \"English\" }" + transition: GreetInEnglish + - condition: "${ .language == \"Spanish\" }" + transition: GreetInSpanish + - condition: "${ .language == \"Italian\" }" + transition: GreetInItalian + defaultCondition: GreetInEnglish + - name: GreetInEnglish + type: inject + data: + greeting: "Hello from JSON Workflow, " + transition: GreetPerson + - name: GreetInSpanish + type: inject + data: + greeting: "Saludos desde JSON Workflow, " + transition: GreetPerson + - name: GreetInItalian + type: inject + data: + greeting: "Saluti dal JSON Workflow, " + transition: GreetPerson + - name: GreetPerson + type: operation + actions: + - name: greetAction + functionRef: + refName: greetFunction + arguments: + message: ".greeting+.name" + end: true diff --git a/controllers/kogitoserverlessworkflow_controller_test.go b/controllers/kogitoserverlessworkflow_controller_test.go index f2a9f348f67..d9f132192bd 100644 --- a/controllers/kogitoserverlessworkflow_controller_test.go +++ b/controllers/kogitoserverlessworkflow_controller_test.go @@ -64,14 +64,14 @@ func TestKogitoServerlessWorkflowController(t *testing.T) { } // Perform some checks on the created CR - assert.True(t, afterReconcileWorkflow.Spec.Workflow.Start.StateName == "ChooseOnLanguage") + assert.True(t, afterReconcileWorkflow.Spec.Flow.Start.StateName == "ChooseOnLanguage") // We create the initial build and return assert.True(t, afterReconcileWorkflow.Status.GetCondition(api.BuiltConditionType).IsFalse()) assert.True(t, afterReconcileWorkflow.Status.GetCondition(api.RunningConditionType).IsFalse()) assert.True(t, afterReconcileWorkflow.Status.IsWaitingForBuild()) - assert.True(t, len(afterReconcileWorkflow.Spec.States) == 4) + assert.True(t, len(afterReconcileWorkflow.Spec.Flow.States) == 4) - assert.True(t, ksw.Spec.BaseWorkflow.Start.StateName == "ChooseOnLanguage") - assert.True(t, len(ksw.Spec.States) == 4) + assert.True(t, ksw.Spec.Flow.Start.StateName == "ChooseOnLanguage") + assert.True(t, len(ksw.Spec.Flow.States) == 4) }) } diff --git a/operator.yaml b/operator.yaml index 7f23ab2e9b3..6441b3fa83f 100644 --- a/operator.yaml +++ b/operator.yaml @@ -913,2159 +913,124 @@ spec: description: KogitoServerlessWorkflowSpec defines the desired state of KogitoServerlessWorkflow properties: - annotations: - description: Annotations List of helpful terms describing the workflows - intended purpose, subject areas, or other important qualities. - items: - type: string - type: array - auth: - description: Auth definitions can be used to define authentication - information that should be applied to resources defined in the operation - property of function definitions. It is not used as authentication - information for the function invocation, but just to access the - resource containing the function invocation information. - x-kubernetes-preserve-unknown-fields: true - autoRetries: - description: AutoRetries If set to true, actions should automatically - be retried on unchecked errors. Default is false - type: boolean - constants: - additionalProperties: - description: RawMessage is a raw encoded JSON value. It implements - Marshaler and Unmarshaler and can be used to delay JSON decoding - or precompute a JSON encoding. - format: byte - type: string - description: Constants Workflow constants are used to define static, - and immutable, data which is available to Workflow Expressions. - type: object - dataInputSchema: - description: DataInputSchema URI of the JSON Schema used to validate - the workflow data input + flow: + description: Workflow base definition properties: - failOnValidationErrors: - type: boolean - schema: - type: string - required: - - failOnValidationErrors - - schema - type: object - description: - description: Workflow description. - type: string - errors: - description: Defines checked errors that can be explicitly handled - during workflow execution. - items: - description: Error declaration for workflow definitions - properties: - code: - description: Code OnError code. Can be used in addition to the - name to help runtimes resolve to technical errors/exceptions. - Should not be defined if error is set to '*'. - type: string - description: - description: OnError description. - type: string - name: - description: Name Domain-specific error name. - type: string - required: - - name - type: object - type: array - events: - items: - description: Event used to define events and their correlations - properties: - correlation: - description: Define event correlation rules for this event. - Only used for consumed events. - items: - description: Correlation define event correlation rules for - an event. Only used for `consumed` events - properties: - contextAttributeName: - description: CloudEvent Extension Context Attribute name - type: string - contextAttributeValue: - description: CloudEvent Extension Context Attribute value - type: string - required: - - contextAttributeName - type: object - type: array - dataOnly: - description: If `true`, only the Event payload is accessible - to consuming Workflow states. If `false`, both event payload - and context attributes should be accessible. Defaults to true. - type: boolean - kind: - default: consumed - description: Defines the CloudEvent as either 'consumed' or - 'produced' by the workflow. Defaults to `consumed`. - enum: - - consumed - - produced - type: string - metadata: - additionalProperties: - type: object - description: Metadata information - type: object - name: - description: Unique event name. - type: string - source: - description: CloudEvent source. - type: string - type: - description: CloudEvent type. - type: string - required: - - name - - type - type: object - type: array - expressionLang: - default: jq - description: Identifies the expression language used for workflow - expressions. Default is 'jq'. - enum: - - jq - - jsonpath - type: string - functions: - items: - description: Function ... - properties: - authRef: - description: References an auth definition name to be used to - access to resource defined in the operation parameter. - type: string - metadata: - additionalProperties: - type: object - description: Metadata information - type: object - name: - description: Unique function name - type: string - operation: - description: If type is `rest`, #. - If type is `rpc`, ##. - If type is `expression`, defines the workflow expression. - If the type is `custom`, #. - type: string - type: - default: rest - description: Defines the function type. Is either `custom`, - `rest`, `rpc`, `expression`, `graphql`, `odata` or `asyncapi`. - Default is `rest`. - enum: - - rest - - rpc - - expression - - graphql - - odata - - asyncapi - - custom - type: string - required: - - name - - operation - type: object - type: array - id: - description: Workflow unique identifier - type: string - keepActive: - description: If "true", workflow instances is not terminated when - there are no active execution paths. Instance can be terminated - with "terminate end definition" or reaching defined "workflowExecTimeout" - type: boolean - key: - description: Key Domain-specific workflow identifier - type: string - metadata: - description: Metadata custom information shared with the runtime. - x-kubernetes-preserve-unknown-fields: true - name: - description: Workflow name - type: string - retries: - items: - description: Retry ... - properties: - delay: - description: Time delay between retry attempts (ISO 8601 duration - format) + annotations: + description: Annotations List of helpful terms describing the + workflows intended purpose, subject areas, or other important + qualities. + items: type: string - increment: - description: Static value by which the delay increases during - each attempt (ISO 8601 time format) + type: array + auth: + description: Auth definitions can be used to define authentication + information that should be applied to resources defined in the + operation property of function definitions. It is not used as + authentication information for the function invocation, but + just to access the resource containing the function invocation + information. + x-kubernetes-preserve-unknown-fields: true + autoRetries: + description: AutoRetries If set to true, actions should automatically + be retried on unchecked errors. Default is false + type: boolean + constants: + additionalProperties: + description: RawMessage is a raw encoded JSON value. It implements + Marshaler and Unmarshaler and can be used to delay JSON decoding + or precompute a JSON encoding. + format: byte type: string - jitter: - description: 'If float type, maximum amount of random time added - or subtracted from the delay between each retry relative to - total delay (between 0 and 1). If string type, absolute maximum - amount of random time added or subtracted from the delay between - each retry (ISO 8601 duration format) TODO: make iso8601duration - compatible this type' + description: Constants Workflow constants are used to define static, + and immutable, data which is available to Workflow Expressions. + type: object + dataInputSchema: + description: DataInputSchema URI of the JSON Schema used to validate + the workflow data input + properties: + failOnValidationErrors: + type: boolean + schema: + type: string + required: + - failOnValidationErrors + - schema + type: object + description: + description: Workflow description. + type: string + errors: + description: Defines checked errors that can be explicitly handled + during workflow execution. + items: + description: Error declaration for workflow definitions properties: - floatVal: - type: number - strVal: + code: + description: Code OnError code. Can be used in addition + to the name to help runtimes resolve to technical errors/exceptions. + Should not be defined if error is set to '*'. type: string - type: - description: Type represents the stored type of Float32OrString. - format: int64 - type: integer - type: object - maxAttempts: - anyOf: - - type: integer - - type: string - description: Maximum number of retry attempts. - x-kubernetes-int-or-string: true - maxDelay: - description: Maximum time delay between retry attempts (ISO - 8601 duration format) - type: string - multiplier: - description: Numeric value, if specified the delay between retries - is multiplied by this value. - properties: - floatVal: - type: number - strVal: + description: + description: OnError description. type: string - type: - description: Type represents the stored type of Float32OrString. - format: int64 - type: integer + name: + description: Name Domain-specific error name. + type: string + required: + - name type: object - name: - description: Unique retry strategy name - type: string - required: - - maxAttempts - - name - type: object - type: array - secrets: - description: Secrets allow you to access sensitive information, such - as passwords, OAuth tokens, ssh keys, etc, inside your Workflow - Expressions. - items: - type: string - type: array - specVersion: - default: "0.8" - description: Serverless Workflow schema version - type: string - start: - description: Workflow start definition. - x-kubernetes-preserve-unknown-fields: true - states: - items: - properties: - callbackState: - description: callbackState executes a function and waits for - callback event that indicates completion of the task. + type: array + events: + items: + description: Event used to define events and their correlations properties: - action: - description: Defines the action to be executed. - properties: - actionDataFilter: - description: Filter the state data to select only the - data that can be used within function definition arguments - using its fromStateData property. Filter the action - results to select only the result data that should - be added/merged back into the state data using its - results property. Select the part of state data which - the action data results should be added/merged to - using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters state - data that can be used by the action. - type: string - results: - description: Workflow expression that filters the - actions data results. - type: string - toStateData: - description: Workflow expression that selects a - state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element. - type: string - useResults: - description: If set to false, action data results - are not added/merged to state data. In this case - 'results' and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate to - true for this action to be performed. If false, action - is disregarded. - type: string - eventRef: - description: References a 'trigger' and 'result' reusable - event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context attributes - to the produced event. - type: object - data: - description: If string type, an expression which - selects parts of the states data output to become - the data (payload) of the event referenced by - triggerEventRef. If object type, a custom object - to become the data (payload) of the event referenced - by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should be - invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name of a 'consumed' - event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 format) - to wait for the result event. If not defined it - be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name of a 'produced' - event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed to - the referenced function TODO: validate it as required - if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should be - invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection set. - TODO: validate it as required if function type - is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined workflow - errors for which the action should not be retried. - Used only when `autoRetries` is set to `true` - items: + correlation: + description: Define event correlation rules for this event. + Only used for consumed events. + items: + description: Correlation define event correlation rules + for an event. Only used for `consumed` events + properties: + contextAttributeName: + description: CloudEvent Extension Context Attribute + name type: string - type: array - retryRef: - description: References a defined workflow retry definition. - If not defined uses the default runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined workflow - errors for which the action should be retried. Used - only when `autoRetries` is set to `false` - items: + contextAttributeValue: + description: CloudEvent Extension Context Attribute + value type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO 8601 duration - format) to sleep after function/subflow invocation. - Does not apply if 'eventRef' is defined. - type: string - before: - description: Defines amount of time (ISO 8601 duration - format) to sleep before function/subflow invocation. - Does not apply if 'eventRef' is defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should be - invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how subflow - execution should behave when parent workflow completes - if invoke is 'async'. Defaults to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object - type: object - eventDataFilter: - description: Event data filter definition. - properties: - data: - description: Workflow expression that filters of the - event data (payload). - type: string - toStateData: - description: Workflow expression that selects a state - data element to which the action results should be - added/merged into. If not specified denotes the top-level - state data element - type: string - useData: - description: If set to false, event payload is not added/merged - to state data. In this case 'data' and 'toStateData' - should be ignored. Default is true. - type: boolean - type: object - eventRef: - description: References a unique callback event name in - the defined workflow events. + required: + - contextAttributeName + type: object + type: array + dataOnly: + description: If `true`, only the Event payload is accessible + to consuming Workflow states. If `false`, both event payload + and context attributes should be accessible. Defaults + to true. + type: boolean + kind: + default: consumed + description: Defines the CloudEvent as either 'consumed' + or 'produced' by the workflow. Defaults to `consumed`. + enum: + - consumed + - produced type: string - timeouts: - description: Time period to wait for incoming events (ISO - 8601 format) - properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - eventTimeout: - description: Default timeout for consuming defined events - (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object + metadata: + additionalProperties: + type: object + description: Metadata information type: object - required: - - action - - eventRef - type: object - compensatedBy: - description: Unique Name of a workflow state which is responsible - for compensation of this state. - type: string - delayState: - description: delayState Causes the workflow execution to delay - for a specified duration. - properties: - timeDelay: - description: Amount of time (ISO 8601 format) to delay - type: string - required: - - timeDelay - type: object - end: - description: State end definition. - x-kubernetes-preserve-unknown-fields: true - eventState: - description: event states await one or more events and perform - actions when they are received. If defined as the workflow - starting state, the event state definition controls when the - workflow instances should be created. - properties: - exclusive: - default: true - description: If true consuming one of the defined events - causes its associated actions to be performed. If false - all the defined events must be consumed in order for actions - to be performed. Defaults to true. - type: boolean - onEvents: - description: Define the events to be consumed and optional - actions to be performed. - items: - description: OnEvents define which actions are be performed - for the one or more events. - properties: - actionMode: - default: sequential - description: Should actions be performed sequentially - or in parallel. Default is sequential. - enum: - - sequential - - parallel - type: string - actions: - description: Actions to be performed if expression - matches - items: - description: Action specify invocations of services - or other workflows during workflow execution. - properties: - actionDataFilter: - description: Filter the state data to select - only the data that can be used within function - definition arguments using its fromStateData - property. Filter the action results to select - only the result data that should be added/merged - back into the state data using its results - property. Select the part of state data which - the action data results should be added/merged - to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action - results should be added/merged into. If - not specified denotes the top-level state - data element. - type: string - useResults: - description: If set to false, action data - results are not added/merged to state - data. In this case 'results' and 'toStateData' - should be ignored. Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If - false, action is disregarded. - type: string - eventRef: - description: References a 'trigger' and 'result' - reusable event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression - which selects parts of the states data - output to become the data (payload) of - the event referenced by triggerEventRef. - If object type, a custom object to become - the data (payload) of the event referenced - by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name - of a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO - 8601 format) to wait for the result event. - If not defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name - of a 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function - definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate - it as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if - function type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should - not be retried. Used only when `autoRetries` - is set to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry - definition. If not defined uses the default - runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should - be retried. Used only when `autoRetries` is - set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO - 8601 duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string - before: - description: Defines amount of time (ISO - 8601 duration format) to sleep before - function/subflow invocation. Does not - apply if 'eventRef' is defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should - be invoked sync or async. Defaults to - sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies - how subflow execution should behave when - parent workflow completes if invoke is - 'async'. Defaults to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object - type: object - type: array - eventDataFilter: - description: eventDataFilter defines the callback - event data filter definition - properties: - data: - description: Workflow expression that filters - of the event data (payload). - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element - type: string - useData: - description: If set to false, event payload is - not added/merged to state data. In this case - 'data' and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - eventRefs: - description: References one or more unique event names - in the defined workflow events. - items: - type: string - minItems: 1 - type: array - required: - - eventRefs - type: object - minItems: 1 - type: array - timeouts: - description: State specific timeouts. - properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - eventTimeout: - description: Default timeout for consuming defined events - (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - onEvents - type: object - forEachState: - description: forEachState used to execute actions for each element - of a data set. - properties: - actions: - description: Actions to be executed for each of the elements - of inputCollection. - items: - description: Action specify invocations of services or - other workflows during workflow execution. - properties: - actionDataFilter: - description: Filter the state data to select only - the data that can be used within function definition - arguments using its fromStateData property. Filter - the action results to select only the result data - that should be added/merged back into the state - data using its results property. Select the part - of state data which the action data results should - be added/merged to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element. - type: string - useResults: - description: If set to false, action data results - are not added/merged to state data. In this - case 'results' and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If false, - action is disregarded. - type: string - eventRef: - description: References a 'trigger' and 'result' reusable - event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression which - selects parts of the states data output to become - the data (payload) of the event referenced by - triggerEventRef. If object type, a custom object - to become the data (payload) of the event referenced - by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name of a - 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 - format) to wait for the result event. If not - defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name of a - 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate it - as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if function - type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should not - be retried. Used only when `autoRetries` is set - to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry definition. - If not defined uses the default runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should be retried. - Used only when `autoRetries` is set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO 8601 - duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' is - defined. - type: string - before: - description: Defines amount of time (ISO 8601 - duration format) to sleep before function/subflow - invocation. Does not apply if 'eventRef' is - defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should be - invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how subflow - execution should behave when parent workflow - completes if invoke is 'async'. Defaults to - terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object - type: object - minItems: 1 - type: array - batchSize: - anyOf: - - type: integer - - type: string - description: Specifies how many iterations may run in parallel - at the same time. Used if mode property is set to parallel - (default). If not specified, its value should be the size - of the inputCollection. - x-kubernetes-int-or-string: true - inputCollection: - description: Workflow expression selecting an array element - of the states' data. - type: string - iterationParam: - description: Name of the iteration parameter that can be - referenced in actions/workflow. For each parallel iteration, - this param should contain a unique element of the inputCollection - array. - type: string - mode: - default: parallel - description: Specifies how iterations are to be performed - (sequential or in parallel), defaults to parallel. - enum: - - sequential - - parallel - type: string - outputCollection: - description: Workflow expression specifying an array element - of the states data to add the results of each iteration. - type: string - timeouts: - description: State specific timeout. - properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - inputCollection - type: object - id: - description: Unique State id. - type: string - injectState: - description: injectState used to inject static data into state - data input. - properties: - data: - additionalProperties: - type: object - description: JSON object which can be set as state's data - input and can be manipulated via filter - minProperties: 1 - type: object - timeouts: - description: State specific timeouts - properties: - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - data - type: object - metadata: - additionalProperties: - type: object - description: Metadata information. - type: object - name: - description: State name. - type: string - onErrors: - description: States error handling and retries definitions. - items: - description: OnError ... - properties: - end: - description: End workflow execution in case of this error. - If retryRef is defined, this ends workflow only if retries - were unsuccessful. - x-kubernetes-preserve-unknown-fields: true - errorRef: - description: ErrorRef Reference to a unique workflow error - definition. Used of errorRefs is not used - type: string - errorRefs: - description: ErrorRefs References one or more workflow - error definitions. Used if errorRef is not used - items: - type: string - type: array - transition: - description: Transition to next state to handle the error. - If retryRef is defined, this transition is taken only - if retries were unsuccessful. - x-kubernetes-preserve-unknown-fields: true - type: object - type: array - operationState: - description: operationState defines a set of actions to be performed - in sequence or in parallel. - properties: - actionMode: - default: sequential - description: Specifies whether actions are performed in - sequence or in parallel, defaults to sequential. - enum: - - sequential - - parallel - type: string - actions: - description: Actions to be performed - items: - description: Action specify invocations of services or - other workflows during workflow execution. - properties: - actionDataFilter: - description: Filter the state data to select only - the data that can be used within function definition - arguments using its fromStateData property. Filter - the action results to select only the result data - that should be added/merged back into the state - data using its results property. Select the part - of state data which the action data results should - be added/merged to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element. - type: string - useResults: - description: If set to false, action data results - are not added/merged to state data. In this - case 'results' and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If false, - action is disregarded. - type: string - eventRef: - description: References a 'trigger' and 'result' reusable - event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression which - selects parts of the states data output to become - the data (payload) of the event referenced by - triggerEventRef. If object type, a custom object - to become the data (payload) of the event referenced - by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name of a - 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 - format) to wait for the result event. If not - defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name of a - 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate it - as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if function - type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should not - be retried. Used only when `autoRetries` is set - to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry definition. - If not defined uses the default runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should be retried. - Used only when `autoRetries` is set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO 8601 - duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' is - defined. - type: string - before: - description: Defines amount of time (ISO 8601 - duration format) to sleep before function/subflow - invocation. Does not apply if 'eventRef' is - defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should be - invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how subflow - execution should behave when parent workflow - completes if invoke is 'async'. Defaults to - terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object - type: object - minItems: 1 - type: array - timeouts: - description: State specific timeouts - properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Defines workflow state execution timeout. - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - actions - type: object - parallelState: - description: parallelState Consists of a number of states that - are executed in parallel. - properties: - branches: - description: List of branches for this parallel state. - items: - description: Branch Definition - properties: - actions: - description: Actions to be executed in this branch - items: - description: Action specify invocations of services - or other workflows during workflow execution. - properties: - actionDataFilter: - description: Filter the state data to select - only the data that can be used within function - definition arguments using its fromStateData - property. Filter the action results to select - only the result data that should be added/merged - back into the state data using its results - property. Select the part of state data which - the action data results should be added/merged - to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action - results should be added/merged into. If - not specified denotes the top-level state - data element. - type: string - useResults: - description: If set to false, action data - results are not added/merged to state - data. In this case 'results' and 'toStateData' - should be ignored. Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If - false, action is disregarded. - type: string - eventRef: - description: References a 'trigger' and 'result' - reusable event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression - which selects parts of the states data - output to become the data (payload) of - the event referenced by triggerEventRef. - If object type, a custom object to become - the data (payload) of the event referenced - by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name - of a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO - 8601 format) to wait for the result event. - If not defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name - of a 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function - definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate - it as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if - function type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should - not be retried. Used only when `autoRetries` - is set to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry - definition. If not defined uses the default - runtime retry definition. - type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should - be retried. Used only when `autoRetries` is - set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO - 8601 duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string - before: - description: Defines amount of time (ISO - 8601 duration format) to sleep before - function/subflow invocation. Does not - apply if 'eventRef' is defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should - be invoked sync or async. Defaults to - sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies - how subflow execution should behave when - parent workflow completes if invoke is - 'async'. Defaults to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object - type: object - minItems: 1 - type: array - name: - description: Branch name - type: string - timeouts: - description: Branch specific timeout settings - properties: - actionExecTimeout: - description: Single actions definition execution - timeout duration (ISO 8601 duration format) - type: string - branchExecTimeout: - description: Single branch execution timeout duration - (ISO 8601 duration format) - type: string - type: object - required: - - actions - - name - type: object - minItems: 1 - type: array - completionType: - default: allOf - description: Option types on how to complete branch execution. - Defaults to `allOf`. - enum: - - allOf - - atLeast - type: string - numCompleted: - anyOf: - - type: integer - - type: string - description: 'Used when branchCompletionType is set to atLeast - to specify the least number of branches that must complete - in order for the state to transition/end. TODO: change - this field to unmarshal result as int' - x-kubernetes-int-or-string: true - timeouts: - description: State specific timeouts - properties: - branchExecTimeout: - description: Default single branch execution timeout - (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - branches - type: object - sleepState: - description: sleepState suspends workflow execution for a given - time duration. - properties: - duration: - description: Duration (ISO 8601 duration format) to sleep - type: string - timeouts: - description: Timeouts State specific timeouts - properties: - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - duration - type: object - stateDataFilter: - description: State data filter. - properties: - input: - description: Workflow expression to filter the state data - input - type: string - output: - description: Workflow expression that filters the state - data output - type: string - type: object - switchState: - description: 'switchState is workflow''s gateways: direct transitions - onf a workflow based on certain conditions.' - properties: - dataConditions: - description: Defines conditions evaluated against data - items: - description: DataCondition specify a data-based condition - statement which causes a transition to another workflow - state if evaluated to true. - properties: - condition: - description: Workflow expression evaluated against - state data. Must evaluate to true or false. - type: string - end: - description: TODO End or Transition needs to be exclusive - tag, one or another should be set. Explicit transition - to end - properties: - compensate: - description: If set to true, triggers workflow - compensation before workflow execution completes. - Default is false. - type: boolean - continueAs: - description: Defines that current workflow execution - should stop, and execution should continue as - a new workflow instance of the provided id - properties: - data: - description: If string type, an expression - which selects parts of the states data output - to become the workflow data input of continued - execution. If object type, a custom object - to become the workflow data input of the - continued execution - type: object - version: - description: Version of the workflow to continue - execution as. - type: string - workflowExecTimeout: - description: WorkflowExecTimeout Workflow - execution timeout to be used by the workflow - continuing execution. Overwrites any specific - settings set by that workflow - properties: - duration: - default: unlimited - description: Workflow execution timeout - duration (ISO 8601 duration format). - If not specified should be 'unlimited'. - type: string - interrupt: - description: If false, workflow instance - is allowed to finish current execution. - If true, current workflow execution - is stopped immediately. Default is false. - type: boolean - runBefore: - description: Name of a workflow state - to be executed before workflow instance - is terminated. - type: string - required: - - duration - type: object - workflowId: - description: Unique id of the workflow to - continue execution as. - type: string - required: - - workflowId - type: object - produceEvents: - description: Array of producedEvent definitions. - Defines events that should be produced. - items: - description: ProduceEvent Defines the event - (CloudEvent format) to be produced when workflow - execution completes or during a workflow transitions. - The eventRef property must match the name - of one of the defined produced events in the - events definition. - properties: - contextAttributes: - additionalProperties: - type: string - description: Add additional event extension - context attributes. - type: object - data: - description: If String, expression which - selects parts of the states data output - to become the data of the produced event. - If object a custom object to become the - data of produced event. - type: object - eventRef: - description: Reference to a defined unique - event name in the events definition - type: string - required: - - eventRef - type: object - type: array - terminate: - description: If true, completes all execution - flows in the given workflow instance. - type: boolean - type: object - metadata: - additionalProperties: - type: object - description: Metadata information. - type: object - name: - description: Data condition name. - type: string - transition: - description: Workflow transition if condition is evaluated - to true - properties: - compensate: - default: false - description: If set to true, triggers workflow - compensation before this transition is taken. - Default is false. - type: boolean - nextState: - description: Name of the state to transition to - next. - type: string - produceEvents: - description: Array of producedEvent definitions. - Events to be produced before the transition - takes place. - items: - description: ProduceEvent Defines the event - (CloudEvent format) to be produced when workflow - execution completes or during a workflow transitions. - The eventRef property must match the name - of one of the defined produced events in the - events definition. - properties: - contextAttributes: - additionalProperties: - type: string - description: Add additional event extension - context attributes. - type: object - data: - description: If String, expression which - selects parts of the states data output - to become the data of the produced event. - If object a custom object to become the - data of produced event. - type: object - eventRef: - description: Reference to a defined unique - event name in the events definition - type: string - required: - - eventRef - type: object - type: array - required: - - nextState - type: object - required: - - condition - - end - type: object - type: array - defaultCondition: - description: Default transition of the workflow if there - is no matching data conditions. Can include a transition - or end definition. - properties: - end: - description: If this state an end state - x-kubernetes-preserve-unknown-fields: true - transition: - description: Serverless workflow states can have one - or more incoming and outgoing transitions (from/to - other states). Each state can define a transition - definition that is used to determine which state to - transition to next. - x-kubernetes-preserve-unknown-fields: true - type: object - eventConditions: - description: Defines conditions evaluated against events. - items: - description: EventCondition specify events which the switch - state must wait for. - properties: - end: - description: TODO End or Transition needs to be exclusive - tag, one or another should be set. Explicit transition - to end - x-kubernetes-preserve-unknown-fields: true - eventDataFilter: - description: Event data filter definition. - properties: - data: - description: Workflow expression that filters - of the event data (payload). - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element - type: string - useData: - description: If set to false, event payload is - not added/merged to state data. In this case - 'data' and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - eventRef: - description: References a unique event name in the - defined workflow events. - type: string - metadata: - description: Metadata information. - x-kubernetes-preserve-unknown-fields: true - name: - description: Event condition name. - type: string - transition: - description: Workflow transition if condition is evaluated - to true - x-kubernetes-preserve-unknown-fields: true - required: - - eventRef - type: object - type: array - timeouts: - description: SwitchState specific timeouts - properties: - eventTimeout: - description: 'Specify the expire value to transitions - to defaultCondition. When event-based conditions do - not arrive. NOTE: this is only available for EventConditions' - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, not - including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - defaultCondition - type: object - transition: - description: Next transition of the workflow after the time - delay. - x-kubernetes-preserve-unknown-fields: true - type: - description: stateType can be any of delay, callback, event, - foreach, inject, operation, parallel, sleep, switch - enum: - - delay - - callback - - event - - foreach - - inject - - operation - - parallel - - sleep - - switch - type: string - usedForCompensation: - description: If true, this state is used to compensate another - state. Default is false. - type: boolean - required: - - name - - type - type: object - minItems: 1 - type: array - x-kubernetes-preserve-unknown-fields: true - timeouts: - description: Defines the workflow default timeout settings. - properties: - actionExecTimeout: - description: ActionExecTimeout Single actions definition execution - timeout duration (ISO 8601 duration format). - type: string - branchExecTimeout: - description: BranchExecTimeout Single branch execution timeout - duration (ISO 8601 duration format). - type: string - eventTimeout: - description: EventTimeout Timeout duration to wait for consuming - defined events (ISO 8601 duration format). - type: string - stateExecTimeout: - description: StateExecTimeout Total state execution timeout (including - retries) (ISO 8601 duration format). - properties: - single: - description: Single state execution timeout, not including - retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including retries - (ISO 8601 duration format) - type: string - required: - - total - type: object - workflowExecTimeout: - description: WorkflowExecTimeout Workflow execution timeout duration - (ISO 8601 duration format). If not specified should be 'unlimited'. - properties: - duration: - default: unlimited - description: Workflow execution timeout duration (ISO 8601 - duration format). If not specified should be 'unlimited'. - type: string - interrupt: - description: If false, workflow instance is allowed to finish - current execution. If true, current workflow execution is - stopped immediately. Default is false. - type: boolean - runBefore: - description: Name of a workflow state to be executed before - workflow instance is terminated. - type: string - required: - - duration - type: object - type: object - version: - description: Workflow version. - type: string - required: - - specVersion - - states - type: object - status: - description: KogitoServerlessWorkflowStatus defines the observed state - of KogitoServerlessWorkflow - properties: - address: - description: "Addressable provides a generic mechanism for a custom - resource definition to indicate a destination for message delivery. - \n Addressable is the schema for the destination information. This - is typically stored in the object's `status`, as this information - may be generated by the controller." - properties: - url: - type: string - type: object - applied: - description: KogitoServerlessWorkflowSpec defines the desired state - of KogitoServerlessWorkflow - properties: - annotations: - description: Annotations List of helpful terms describing the - workflows intended purpose, subject areas, or other important - qualities. - items: - type: string - type: array - auth: - description: Auth definitions can be used to define authentication - information that should be applied to resources defined in the - operation property of function definitions. It is not used as - authentication information for the function invocation, but - just to access the resource containing the function invocation - information. - x-kubernetes-preserve-unknown-fields: true - autoRetries: - description: AutoRetries If set to true, actions should automatically - be retried on unchecked errors. Default is false - type: boolean - constants: - additionalProperties: - description: RawMessage is a raw encoded JSON value. It implements - Marshaler and Unmarshaler and can be used to delay JSON decoding - or precompute a JSON encoding. - format: byte - type: string - description: Constants Workflow constants are used to define static, - and immutable, data which is available to Workflow Expressions. - type: object - dataInputSchema: - description: DataInputSchema URI of the JSON Schema used to validate - the workflow data input - properties: - failOnValidationErrors: - type: boolean - schema: - type: string - required: - - failOnValidationErrors - - schema - type: object - description: - description: Workflow description. - type: string - errors: - description: Defines checked errors that can be explicitly handled - during workflow execution. - items: - description: Error declaration for workflow definitions - properties: - code: - description: Code OnError code. Can be used in addition - to the name to help runtimes resolve to technical errors/exceptions. - Should not be defined if error is set to '*'. - type: string - description: - description: OnError description. - type: string - name: - description: Name Domain-specific error name. - type: string - required: - - name - type: object - type: array - events: - items: - description: Event used to define events and their correlations - properties: - correlation: - description: Define event correlation rules for this event. - Only used for consumed events. - items: - description: Correlation define event correlation rules - for an event. Only used for `consumed` events - properties: - contextAttributeName: - description: CloudEvent Extension Context Attribute - name - type: string - contextAttributeValue: - description: CloudEvent Extension Context Attribute - value - type: string - required: - - contextAttributeName - type: object - type: array - dataOnly: - description: If `true`, only the Event payload is accessible - to consuming Workflow states. If `false`, both event payload - and context attributes should be accessible. Defaults - to true. - type: boolean - kind: - default: consumed - description: Defines the CloudEvent as either 'consumed' - or 'produced' by the workflow. Defaults to `consumed`. - enum: - - consumed - - produced - type: string - metadata: - additionalProperties: - type: object - description: Metadata information - type: object - name: - description: Unique event name. - type: string - source: - description: CloudEvent source. - type: string - type: - description: CloudEvent type. + name: + description: Unique event name. + type: string + source: + description: CloudEvent source. + type: string + type: + description: CloudEvent type. type: string required: - name @@ -3150,13 +1115,36 @@ spec: description: Static value by which the delay increases during each attempt (ISO 8601 time format) type: string - jitter: - description: 'If float type, maximum amount of random time - added or subtracted from the delay between each retry - relative to total delay (between 0 and 1). If string type, - absolute maximum amount of random time added or subtracted - from the delay between each retry (ISO 8601 duration format) - TODO: make iso8601duration compatible this type' + jitter: + description: 'If float type, maximum amount of random time + added or subtracted from the delay between each retry + relative to total delay (between 0 and 1). If string type, + absolute maximum amount of random time added or subtracted + from the delay between each retry (ISO 8601 duration format) + TODO: make iso8601duration compatible this type' + properties: + floatVal: + type: number + strVal: + type: string + type: + description: Type represents the stored type of Float32OrString. + format: int64 + type: integer + type: object + maxAttempts: + anyOf: + - type: integer + - type: string + description: Maximum number of retry attempts. + x-kubernetes-int-or-string: true + maxDelay: + description: Maximum time delay between retry attempts (ISO + 8601 duration format) + type: string + multiplier: + description: Numeric value, if specified the delay between + retries is multiplied by this value. properties: floatVal: type: number @@ -3167,284 +1155,1139 @@ spec: format: int64 type: integer type: object - maxAttempts: - anyOf: - - type: integer - - type: string - description: Maximum number of retry attempts. - x-kubernetes-int-or-string: true - maxDelay: - description: Maximum time delay between retry attempts (ISO - 8601 duration format) + name: + description: Unique retry strategy name + type: string + required: + - maxAttempts + - name + type: object + type: array + secrets: + description: Secrets allow you to access sensitive information, + such as passwords, OAuth tokens, ssh keys, etc, inside your + Workflow Expressions. + items: + type: string + type: array + specVersion: + default: "0.8" + description: Serverless Workflow schema version + type: string + start: + description: Workflow start definition. + x-kubernetes-preserve-unknown-fields: true + states: + items: + properties: + callbackState: + description: callbackState executes a function and waits + for callback event that indicates completion of the task. + properties: + action: + description: Defines the action to be executed. + properties: + actionDataFilter: + description: Filter the state data to select only + the data that can be used within function definition + arguments using its fromStateData property. Filter + the action results to select only the result data + that should be added/merged back into the state + data using its results property. Select the part + of state data which the action data results should + be added/merged to using the toStateData property. + properties: + fromStateData: + description: Workflow expression that filters + state data that can be used by the action. + type: string + results: + description: Workflow expression that filters + the actions data results. + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action results + should be added/merged into. If not specified + denotes the top-level state data element. + type: string + useResults: + description: If set to false, action data results + are not added/merged to state data. In this + case 'results' and 'toStateData' should be + ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must evaluate + to true for this action to be performed. If false, + action is disregarded. + type: string + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension context + attributes to the produced event. + type: object + data: + description: If string type, an expression which + selects parts of the states data output to + become the data (payload) of the event referenced + by triggerEventRef. If object type, a custom + object to become the data (payload) of the + event referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique name of + a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO 8601 + format) to wait for the result event. If not + defined it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name of + a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be passed + to the referenced function TODO: validate + it as required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is graphql. + String containing a valid GraphQL selection + set. TODO: validate it as required if function + type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to defined + workflow errors for which the action should not + be retried. Used only when `autoRetries` is set + to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow retry + definition. If not defined uses the default runtime + retry definition. + type: string + retryableErrors: + description: List of unique references to defined + workflow errors for which the action should be + retried. Used only when `autoRetries` is set to + `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow execution + should sleep before / after function execution. + properties: + after: + description: Defines amount of time (ISO 8601 + duration format) to sleep after function/subflow + invocation. Does not apply if 'eventRef' is + defined. + type: string + before: + description: Defines amount of time (ISO 8601 + duration format) to sleep before function/subflow + invocation. Does not apply if 'eventRef' is + defined. + type: string + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow should + be invoked sync or async. Defaults to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies how + subflow execution should behave when parent + workflow completes if invoke is 'async'. Defaults + to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object + type: object + eventDataFilter: + description: Event data filter definition. + properties: + data: + description: Workflow expression that filters of + the event data (payload). + type: string + toStateData: + description: Workflow expression that selects a + state data element to which the action results + should be added/merged into. If not specified + denotes the top-level state data element + type: string + useData: + description: If set to false, event payload is not + added/merged to state data. In this case 'data' + and 'toStateData' should be ignored. Default is + true. + type: boolean + type: object + eventRef: + description: References a unique callback event name + in the defined workflow events. + type: string + timeouts: + description: Time period to wait for incoming events + (ISO 8601 format) + properties: + actionExecTimeout: + description: Default single actions definition execution + timeout (ISO 8601 duration format) + type: string + eventTimeout: + description: Default timeout for consuming defined + events (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - action + - eventRef + type: object + compensatedBy: + description: Unique Name of a workflow state which is responsible + for compensation of this state. type: string - multiplier: - description: Numeric value, if specified the delay between - retries is multiplied by this value. + delayState: + description: delayState Causes the workflow execution to + delay for a specified duration. properties: - floatVal: - type: number - strVal: + timeDelay: + description: Amount of time (ISO 8601 format) to delay type: string - type: - description: Type represents the stored type of Float32OrString. - format: int64 - type: integer + required: + - timeDelay type: object - name: - description: Unique retry strategy name - type: string - required: - - maxAttempts - - name - type: object - type: array - secrets: - description: Secrets allow you to access sensitive information, - such as passwords, OAuth tokens, ssh keys, etc, inside your - Workflow Expressions. - items: - type: string - type: array - specVersion: - default: "0.8" - description: Serverless Workflow schema version - type: string - start: - description: Workflow start definition. - x-kubernetes-preserve-unknown-fields: true - states: - items: - properties: - callbackState: - description: callbackState executes a function and waits - for callback event that indicates completion of the task. + end: + description: State end definition. + x-kubernetes-preserve-unknown-fields: true + eventState: + description: event states await one or more events and perform + actions when they are received. If defined as the workflow + starting state, the event state definition controls when + the workflow instances should be created. properties: - action: - description: Defines the action to be executed. - properties: - actionDataFilter: - description: Filter the state data to select only - the data that can be used within function definition - arguments using its fromStateData property. Filter - the action results to select only the result data - that should be added/merged back into the state - data using its results property. Select the part - of state data which the action data results should - be added/merged to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element. + exclusive: + default: true + description: If true consuming one of the defined events + causes its associated actions to be performed. If + false all the defined events must be consumed in order + for actions to be performed. Defaults to true. + type: boolean + onEvents: + description: Define the events to be consumed and optional + actions to be performed. + items: + description: OnEvents define which actions are be + performed for the one or more events. + properties: + actionMode: + default: sequential + description: Should actions be performed sequentially + or in parallel. Default is sequential. + enum: + - sequential + - parallel + type: string + actions: + description: Actions to be performed if expression + matches + items: + description: Action specify invocations of services + or other workflows during workflow execution. + properties: + actionDataFilter: + description: Filter the state data to select + only the data that can be used within + function definition arguments using its + fromStateData property. Filter the action + results to select only the result data + that should be added/merged back into + the state data using its results property. + Select the part of state data which the + action data results should be added/merged + to using the toStateData property. + properties: + fromStateData: + description: Workflow expression that + filters state data that can be used + by the action. + type: string + results: + description: Workflow expression that + filters the actions data results. + type: string + toStateData: + description: Workflow expression that + selects a state data element to which + the action results should be added/merged + into. If not specified denotes the + top-level state data element. + type: string + useResults: + description: If set to false, action + data results are not added/merged + to state data. In this case 'results' + and 'toStateData' should be ignored. + Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must + evaluate to true for this action to be + performed. If false, action is disregarded. + type: string + eventRef: + description: References a 'trigger' and + 'result' reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension + context attributes to the produced + event. + type: object + data: + description: If string type, an expression + which selects parts of the states + data output to become the data (payload) + of the event referenced by triggerEventRef. + If object type, a custom object to + become the data (payload) of the event + referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique + name of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time + (ISO 8601 format) to wait for the + result event. If not defined it be + set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique + name of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to + be passed to the referenced function + TODO: validate it as required if function + type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced + function. + type: string + selectionSet: + description: 'Used if function type + is graphql. String containing a valid + GraphQL selection set. TODO: validate + it as required if function type is + graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to + defined workflow errors for which the + action should not be retried. Used only + when `autoRetries` is set to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow + retry definition. If not defined uses + the default runtime retry definition. + type: string + retryableErrors: + description: List of unique references to + defined workflow errors for which the + action should be retried. Used only when + `autoRetries` is set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow + execution should sleep before / after + function execution. + properties: + after: + description: Defines amount of time + (ISO 8601 duration format) to sleep + after function/subflow invocation. + Does not apply if 'eventRef' is defined. + type: string + before: + description: Defines amount of time + (ISO 8601 duration format) to sleep + before function/subflow invocation. + Does not apply if 'eventRef' is defined. + type: string + type: object + subFlowRef: + description: References a workflow to be + invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow + should be invoked sync or async. Defaults + to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave + when parent workflow completes if + invoke is 'async'. Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object + type: object + type: array + eventDataFilter: + description: eventDataFilter defines the callback + event data filter definition + properties: + data: + description: Workflow expression that filters + of the event data (payload). + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action + results should be added/merged into. If + not specified denotes the top-level state + data element + type: string + useData: + description: If set to false, event payload + is not added/merged to state data. In this + case 'data' and 'toStateData' should be + ignored. Default is true. + type: boolean + type: object + eventRefs: + description: References one or more unique event + names in the defined workflow events. + items: type: string - useResults: - description: If set to false, action data results - are not added/merged to state data. In this - case 'results' and 'toStateData' should be - ignored. Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If false, - action is disregarded. + minItems: 1 + type: array + required: + - eventRefs + type: object + minItems: 1 + type: array + timeouts: + description: State specific timeouts. + properties: + actionExecTimeout: + description: Default single actions definition execution + timeout (ISO 8601 duration format) type: string - eventRef: - description: References a 'trigger' and 'result' - reusable event definitions. + eventTimeout: + description: Default timeout for consuming defined + events (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression which - selects parts of the states data output to - become the data (payload) of the event referenced - by triggerEventRef. If object type, a custom - object to become the data (payload) of the - event referenced by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name of - a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 - format) to wait for the result event. If not - defined it be set to the actionExecutionTimeout + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) type: string - triggerEventRef: - description: Reference to the unique name of - a 'produced' event definition, + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) type: string required: - - resultEventRef - - triggerEventRef + - total type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: + type: object + required: + - onEvents + type: object + forEachState: + description: forEachState used to execute actions for each + element of a data set. + properties: + actions: + description: Actions to be executed for each of the + elements of inputCollection. + items: + description: Action specify invocations of services + or other workflows during workflow execution. + properties: + actionDataFilter: + description: Filter the state data to select only + the data that can be used within function definition + arguments using its fromStateData property. + Filter the action results to select only the + result data that should be added/merged back + into the state data using its results property. + Select the part of state data which the action + data results should be added/merged to using + the toStateData property. + properties: + fromStateData: + description: Workflow expression that filters + state data that can be used by the action. + type: string + results: + description: Workflow expression that filters + the actions data results. + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action + results should be added/merged into. If + not specified denotes the top-level state + data element. + type: string + useResults: + description: If set to false, action data + results are not added/merged to state data. + In this case 'results' and 'toStateData' + should be ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must evaluate + to true for this action to be performed. If + false, action is disregarded. + type: string + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension context + attributes to the produced event. type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate - it as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if function - type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. - type: string - name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should not - be retried. Used only when `autoRetries` is set - to `true` - items: + data: + description: If string type, an expression + which selects parts of the states data output + to become the data (payload) of the event + referenced by triggerEventRef. If object + type, a custom object to become the data + (payload) of the event referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique name + of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO 8601 + format) to wait for the result event. If + not defined it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name + of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be passed + to the referenced function TODO: validate + it as required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is graphql. + String containing a valid GraphQL selection + set. TODO: validate it as required if function + type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. type: string - type: array - retryRef: - description: References a defined workflow retry - definition. If not defined uses the default runtime - retry definition. - type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should be - retried. Used only when `autoRetries` is set to - `false` - items: + name: + description: Defines Unique action name. type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO 8601 - duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' is - defined. + nonRetryableErrors: + description: List of unique references to defined + workflow errors for which the action should + not be retried. Used only when `autoRetries` + is set to `true` + items: type: string - before: - description: Defines amount of time (ISO 8601 - duration format) to sleep before function/subflow - invocation. Does not apply if 'eventRef' is - defined. + type: array + retryRef: + description: References a defined workflow retry + definition. If not defined uses the default + runtime retry definition. + type: string + retryableErrors: + description: List of unique references to defined + workflow errors for which the action should + be retried. Used only when `autoRetries` is + set to `false` + items: type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should - be invoked sync or async. Defaults to sync. - enum: - - async - - sync + type: array + sleep: + description: Defines time period workflow execution + should sleep before / after function execution. + properties: + after: + description: Defines amount of time (ISO 8601 + duration format) to sleep after function/subflow + invocation. Does not apply if 'eventRef' + is defined. + type: string + before: + description: Defines amount of time (ISO 8601 + duration format) to sleep before function/subflow + invocation. Does not apply if 'eventRef' + is defined. + type: string + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow should + be invoked sync or async. Defaults to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies how + subflow execution should behave when parent + workflow completes if invoke is 'async'. + Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object + type: object + minItems: 1 + type: array + batchSize: + anyOf: + - type: integer + - type: string + description: Specifies how many iterations may run in + parallel at the same time. Used if mode property is + set to parallel (default). If not specified, its value + should be the size of the inputCollection. + x-kubernetes-int-or-string: true + inputCollection: + description: Workflow expression selecting an array + element of the states' data. + type: string + iterationParam: + description: Name of the iteration parameter that can + be referenced in actions/workflow. For each parallel + iteration, this param should contain a unique element + of the inputCollection array. + type: string + mode: + default: parallel + description: Specifies how iterations are to be performed + (sequential or in parallel), defaults to parallel. + enum: + - sequential + - parallel + type: string + outputCollection: + description: Workflow expression specifying an array + element of the states data to add the results of each + iteration. + type: string + timeouts: + description: State specific timeout. + properties: + actionExecTimeout: + description: Default single actions definition execution + timeout (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how - subflow execution should behave when parent - workflow completes if invoke is 'async'. Defaults - to terminate. - enum: - - terminate - - continue + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) type: string - version: - description: Sub-workflow version + required: + - total + type: object + type: object + required: + - inputCollection + type: object + id: + description: Unique State id. + type: string + injectState: + description: injectState used to inject static data into + state data input. + properties: + data: + additionalProperties: + type: object + description: JSON object which can be set as state's + data input and can be manipulated via filter + minProperties: 1 + type: object + timeouts: + description: State specific timeouts + properties: + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) type: string - workflowId: - description: Sub-workflow unique id + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) type: string required: - - workflowId + - total type: object type: object - eventDataFilter: - description: Event data filter definition. - properties: - data: - description: Workflow expression that filters of - the event data (payload). - type: string - toStateData: - description: Workflow expression that selects a - state data element to which the action results - should be added/merged into. If not specified - denotes the top-level state data element + required: + - data + type: object + metadata: + additionalProperties: + type: object + description: Metadata information. + type: object + name: + description: State name. + type: string + onErrors: + description: States error handling and retries definitions. + items: + description: OnError ... + properties: + end: + description: End workflow execution in case of this + error. If retryRef is defined, this ends workflow + only if retries were unsuccessful. + x-kubernetes-preserve-unknown-fields: true + errorRef: + description: ErrorRef Reference to a unique workflow + error definition. Used of errorRefs is not used + type: string + errorRefs: + description: ErrorRefs References one or more workflow + error definitions. Used if errorRef is not used + items: type: string - useData: - description: If set to false, event payload is not - added/merged to state data. In this case 'data' - and 'toStateData' should be ignored. Default is - true. - type: boolean - type: object - eventRef: - description: References a unique callback event name - in the defined workflow events. + type: array + transition: + description: Transition to next state to handle the + error. If retryRef is defined, this transition is + taken only if retries were unsuccessful. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + operationState: + description: operationState defines a set of actions to + be performed in sequence or in parallel. + properties: + actionMode: + default: sequential + description: Specifies whether actions are performed + in sequence or in parallel, defaults to sequential. + enum: + - sequential + - parallel type: string + actions: + description: Actions to be performed + items: + description: Action specify invocations of services + or other workflows during workflow execution. + properties: + actionDataFilter: + description: Filter the state data to select only + the data that can be used within function definition + arguments using its fromStateData property. + Filter the action results to select only the + result data that should be added/merged back + into the state data using its results property. + Select the part of state data which the action + data results should be added/merged to using + the toStateData property. + properties: + fromStateData: + description: Workflow expression that filters + state data that can be used by the action. + type: string + results: + description: Workflow expression that filters + the actions data results. + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action + results should be added/merged into. If + not specified denotes the top-level state + data element. + type: string + useResults: + description: If set to false, action data + results are not added/merged to state data. + In this case 'results' and 'toStateData' + should be ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must evaluate + to true for this action to be performed. If + false, action is disregarded. + type: string + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension context + attributes to the produced event. + type: object + data: + description: If string type, an expression + which selects parts of the states data output + to become the data (payload) of the event + referenced by triggerEventRef. If object + type, a custom object to become the data + (payload) of the event referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique name + of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO 8601 + format) to wait for the result event. If + not defined it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name + of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be passed + to the referenced function TODO: validate + it as required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is graphql. + String containing a valid GraphQL selection + set. TODO: validate it as required if function + type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to defined + workflow errors for which the action should + not be retried. Used only when `autoRetries` + is set to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow retry + definition. If not defined uses the default + runtime retry definition. + type: string + retryableErrors: + description: List of unique references to defined + workflow errors for which the action should + be retried. Used only when `autoRetries` is + set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow execution + should sleep before / after function execution. + properties: + after: + description: Defines amount of time (ISO 8601 + duration format) to sleep after function/subflow + invocation. Does not apply if 'eventRef' + is defined. + type: string + before: + description: Defines amount of time (ISO 8601 + duration format) to sleep before function/subflow + invocation. Does not apply if 'eventRef' + is defined. + type: string + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow should + be invoked sync or async. Defaults to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies how + subflow execution should behave when parent + workflow completes if invoke is 'async'. + Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object + type: object + minItems: 1 + type: array timeouts: - description: Time period to wait for incoming events - (ISO 8601 format) + description: State specific timeouts properties: actionExecTimeout: description: Default single actions definition execution timeout (ISO 8601 duration format) type: string - eventTimeout: - description: Default timeout for consuming defined - events (ISO 8601 duration format) - type: string stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) + description: Defines workflow state execution timeout. properties: single: description: Single state execution timeout, @@ -3459,57 +2302,19 @@ spec: type: object type: object required: - - action - - eventRef - type: object - compensatedBy: - description: Unique Name of a workflow state which is responsible - for compensation of this state. - type: string - delayState: - description: delayState Causes the workflow execution to - delay for a specified duration. - properties: - timeDelay: - description: Amount of time (ISO 8601 format) to delay - type: string - required: - - timeDelay + - actions type: object - end: - description: State end definition. - x-kubernetes-preserve-unknown-fields: true - eventState: - description: event states await one or more events and perform - actions when they are received. If defined as the workflow - starting state, the event state definition controls when - the workflow instances should be created. + parallelState: + description: parallelState Consists of a number of states + that are executed in parallel. properties: - exclusive: - default: true - description: If true consuming one of the defined events - causes its associated actions to be performed. If - false all the defined events must be consumed in order - for actions to be performed. Defaults to true. - type: boolean - onEvents: - description: Define the events to be consumed and optional - actions to be performed. + branches: + description: List of branches for this parallel state. items: - description: OnEvents define which actions are be - performed for the one or more events. + description: Branch Definition properties: - actionMode: - default: sequential - description: Should actions be performed sequentially - or in parallel. Default is sequential. - enum: - - sequential - - parallel - type: string actions: - description: Actions to be performed if expression - matches + description: Actions to be executed in this branch items: description: Action specify invocations of services or other workflows during workflow execution. @@ -3715,51 +2520,52 @@ spec: - workflowId type: object type: object + minItems: 1 type: array - eventDataFilter: - description: eventDataFilter defines the callback - event data filter definition + name: + description: Branch name + type: string + timeouts: + description: Branch specific timeout settings properties: - data: - description: Workflow expression that filters - of the event data (payload). + actionExecTimeout: + description: Single actions definition execution + timeout duration (ISO 8601 duration format) type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action - results should be added/merged into. If - not specified denotes the top-level state - data element + branchExecTimeout: + description: Single branch execution timeout + duration (ISO 8601 duration format) type: string - useData: - description: If set to false, event payload - is not added/merged to state data. In this - case 'data' and 'toStateData' should be - ignored. Default is true. - type: boolean type: object - eventRefs: - description: References one or more unique event - names in the defined workflow events. - items: - type: string - minItems: 1 - type: array required: - - eventRefs + - actions + - name type: object minItems: 1 type: array + completionType: + default: allOf + description: Option types on how to complete branch + execution. Defaults to `allOf`. + enum: + - allOf + - atLeast + type: string + numCompleted: + anyOf: + - type: integer + - type: string + description: 'Used when branchCompletionType is set + to atLeast to specify the least number of branches + that must complete in order for the state to transition/end. + TODO: change this field to unmarshal result as int' + x-kubernetes-int-or-string: true timeouts: - description: State specific timeouts. + description: State specific timeouts properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - eventTimeout: - description: Default timeout for consuming defined - events (ISO 8601 duration format) + branchExecTimeout: + description: Default single branch execution timeout + (ISO 8601 duration format) type: string stateExecTimeout: description: Default workflow state execution timeout @@ -3778,1250 +2584,2595 @@ spec: type: object type: object required: - - onEvents + - branches type: object - forEachState: - description: forEachState used to execute actions for each - element of a data set. + sleepState: + description: sleepState suspends workflow execution for + a given time duration. properties: - actions: - description: Actions to be executed for each of the - elements of inputCollection. + duration: + description: Duration (ISO 8601 duration format) to + sleep + type: string + timeouts: + description: Timeouts State specific timeouts + properties: + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - duration + type: object + stateDataFilter: + description: State data filter. + properties: + input: + description: Workflow expression to filter the state + data input + type: string + output: + description: Workflow expression that filters the state + data output + type: string + type: object + switchState: + description: 'switchState is workflow''s gateways: direct + transitions onf a workflow based on certain conditions.' + properties: + dataConditions: + description: Defines conditions evaluated against data items: - description: Action specify invocations of services - or other workflows during workflow execution. + description: DataCondition specify a data-based condition + statement which causes a transition to another workflow + state if evaluated to true. properties: - actionDataFilter: - description: Filter the state data to select only - the data that can be used within function definition - arguments using its fromStateData property. - Filter the action results to select only the - result data that should be added/merged back - into the state data using its results property. - Select the part of state data which the action - data results should be added/merged to using - the toStateData property. - properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: - description: Workflow expression that filters - the actions data results. - type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action - results should be added/merged into. If - not specified denotes the top-level state - data element. - type: string - useResults: - description: If set to false, action data - results are not added/merged to state data. - In this case 'results' and 'toStateData' - should be ignored. Default is true. - type: boolean - type: object condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If - false, action is disregarded. + description: Workflow expression evaluated against + state data. Must evaluate to true or false. type: string - eventRef: - description: References a 'trigger' and 'result' - reusable event definitions. + end: + description: TODO End or Transition needs to be + exclusive tag, one or another should be set. + Explicit transition to end properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression - which selects parts of the states data output - to become the data (payload) of the event - referenced by triggerEventRef. If object - type, a custom object to become the data - (payload) of the event referenced by triggerEventRef. + compensate: + description: If set to true, triggers workflow + compensation before workflow execution completes. + Default is false. + type: boolean + continueAs: + description: Defines that current workflow + execution should stop, and execution should + continue as a new workflow instance of the + provided id + properties: + data: + description: If string type, an expression + which selects parts of the states data + output to become the workflow data input + of continued execution. If object type, + a custom object to become the workflow + data input of the continued execution + type: object + version: + description: Version of the workflow to + continue execution as. + type: string + workflowExecTimeout: + description: WorkflowExecTimeout Workflow + execution timeout to be used by the + workflow continuing execution. Overwrites + any specific settings set by that workflow + properties: + duration: + default: unlimited + description: Workflow execution timeout + duration (ISO 8601 duration format). + If not specified should be 'unlimited'. + type: string + interrupt: + description: If false, workflow instance + is allowed to finish current execution. + If true, current workflow execution + is stopped immediately. Default + is false. + type: boolean + runBefore: + description: Name of a workflow state + to be executed before workflow instance + is terminated. + type: string + required: + - duration + type: object + workflowId: + description: Unique id of the workflow + to continue execution as. + type: string + required: + - workflowId type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name - of a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 - format) to wait for the result event. If - not defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name - of a 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: + produceEvents: + description: Array of producedEvent definitions. + Defines events that should be produced. + items: + description: ProduceEvent Defines the event + (CloudEvent format) to be produced when + workflow execution completes or during + a workflow transitions. The eventRef property + must match the name of one of the defined + produced events in the events definition. + properties: + contextAttributes: + additionalProperties: + type: string + description: Add additional event extension + context attributes. + type: object + data: + description: If String, expression which + selects parts of the states data output + to become the data of the produced + event. If object a custom object to + become the data of produced event. + type: object + eventRef: + description: Reference to a defined + unique event name in the events definition + type: string + required: + - eventRef type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate - it as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if function - type is graphql' - type: string - required: - - refName + type: array + terminate: + description: If true, completes all execution + flows in the given workflow instance. + type: boolean + type: object + metadata: + additionalProperties: + type: object + description: Metadata information. type: object - id: - description: Defines Unique action identifier. - type: string name: - description: Defines Unique action name. - type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should - not be retried. Used only when `autoRetries` - is set to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry - definition. If not defined uses the default - runtime retry definition. + description: Data condition name. type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should - be retried. Used only when `autoRetries` is - set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO 8601 - duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string - before: - description: Defines amount of time (ISO 8601 - duration format) to sleep before function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. + transition: + description: Workflow transition if condition + is evaluated to true properties: - invoke: - default: sync - description: Specifies if the subflow should - be invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how - subflow execution should behave when parent - workflow completes if invoke is 'async'. - Defaults to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id + compensate: + default: false + description: If set to true, triggers workflow + compensation before this transition is taken. + Default is false. + type: boolean + nextState: + description: Name of the state to transition + to next. type: string + produceEvents: + description: Array of producedEvent definitions. + Events to be produced before the transition + takes place. + items: + description: ProduceEvent Defines the event + (CloudEvent format) to be produced when + workflow execution completes or during + a workflow transitions. The eventRef property + must match the name of one of the defined + produced events in the events definition. + properties: + contextAttributes: + additionalProperties: + type: string + description: Add additional event extension + context attributes. + type: object + data: + description: If String, expression which + selects parts of the states data output + to become the data of the produced + event. If object a custom object to + become the data of produced event. + type: object + eventRef: + description: Reference to a defined + unique event name in the events definition + type: string + required: + - eventRef + type: object + type: array required: - - workflowId + - nextState type: object + required: + - condition + - end type: object - minItems: 1 type: array - batchSize: - anyOf: - - type: integer - - type: string - description: Specifies how many iterations may run in - parallel at the same time. Used if mode property is - set to parallel (default). If not specified, its value - should be the size of the inputCollection. - x-kubernetes-int-or-string: true - inputCollection: - description: Workflow expression selecting an array - element of the states' data. - type: string - iterationParam: - description: Name of the iteration parameter that can - be referenced in actions/workflow. For each parallel - iteration, this param should contain a unique element - of the inputCollection array. - type: string - mode: - default: parallel - description: Specifies how iterations are to be performed - (sequential or in parallel), defaults to parallel. - enum: - - sequential - - parallel - type: string - outputCollection: - description: Workflow expression specifying an array - element of the states data to add the results of each - iteration. - type: string - timeouts: - description: State specific timeout. - properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) - type: string - required: - - total - type: object - type: object - required: - - inputCollection - type: object - id: - description: Unique State id. - type: string - injectState: - description: injectState used to inject static data into - state data input. - properties: - data: - additionalProperties: - type: object - description: JSON object which can be set as state's - data input and can be manipulated via filter - minProperties: 1 - type: object - timeouts: - description: State specific timeouts + defaultCondition: + description: Default transition of the workflow if there + is no matching data conditions. Can include a transition + or end definition. properties: - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) - type: string - required: - - total - type: object + end: + description: If this state an end state + x-kubernetes-preserve-unknown-fields: true + transition: + description: Serverless workflow states can have + one or more incoming and outgoing transitions + (from/to other states). Each state can define + a transition definition that is used to determine + which state to transition to next. + x-kubernetes-preserve-unknown-fields: true type: object - required: - - data - type: object - metadata: - additionalProperties: - type: object - description: Metadata information. - type: object - name: - description: State name. - type: string - onErrors: - description: States error handling and retries definitions. - items: - description: OnError ... - properties: - end: - description: End workflow execution in case of this - error. If retryRef is defined, this ends workflow - only if retries were unsuccessful. - x-kubernetes-preserve-unknown-fields: true - errorRef: - description: ErrorRef Reference to a unique workflow - error definition. Used of errorRefs is not used - type: string - errorRefs: - description: ErrorRefs References one or more workflow - error definitions. Used if errorRef is not used - items: - type: string - type: array - transition: - description: Transition to next state to handle the - error. If retryRef is defined, this transition is - taken only if retries were unsuccessful. - x-kubernetes-preserve-unknown-fields: true - type: object - type: array - operationState: - description: operationState defines a set of actions to - be performed in sequence or in parallel. - properties: - actionMode: - default: sequential - description: Specifies whether actions are performed - in sequence or in parallel, defaults to sequential. - enum: - - sequential - - parallel - type: string - actions: - description: Actions to be performed + eventConditions: + description: Defines conditions evaluated against events. items: - description: Action specify invocations of services - or other workflows during workflow execution. + description: EventCondition specify events which the + switch state must wait for. properties: - actionDataFilter: - description: Filter the state data to select only - the data that can be used within function definition - arguments using its fromStateData property. - Filter the action results to select only the - result data that should be added/merged back - into the state data using its results property. - Select the part of state data which the action - data results should be added/merged to using - the toStateData property. + end: + description: TODO End or Transition needs to be + exclusive tag, one or another should be set. + Explicit transition to end + x-kubernetes-preserve-unknown-fields: true + eventDataFilter: + description: Event data filter definition. properties: - fromStateData: - description: Workflow expression that filters - state data that can be used by the action. - type: string - results: + data: description: Workflow expression that filters - the actions data results. + of the event data (payload). type: string toStateData: description: Workflow expression that selects a state data element to which the action results should be added/merged into. If not specified denotes the top-level state - data element. + data element type: string - useResults: - description: If set to false, action data - results are not added/merged to state data. - In this case 'results' and 'toStateData' - should be ignored. Default is true. + useData: + description: If set to false, event payload + is not added/merged to state data. In this + case 'data' and 'toStateData' should be + ignored. Default is true. type: boolean type: object - condition: - description: Expression, if defined, must evaluate - to true for this action to be performed. If - false, action is disregarded. - type: string eventRef: - description: References a 'trigger' and 'result' - reusable event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension context - attributes to the produced event. - type: object - data: - description: If string type, an expression - which selects parts of the states data output - to become the data (payload) of the event - referenced by triggerEventRef. If object - type, a custom object to become the data - (payload) of the event referenced by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique name - of a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time (ISO 8601 - format) to wait for the result event. If - not defined it be set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique name - of a 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to be passed - to the referenced function TODO: validate - it as required if function type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function should - be invoked sync or async. Default is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced function. - type: string - selectionSet: - description: 'Used if function type is graphql. - String containing a valid GraphQL selection - set. TODO: validate it as required if function - type is graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. + description: References a unique event name in + the defined workflow events. type: string + metadata: + description: Metadata information. + x-kubernetes-preserve-unknown-fields: true name: - description: Defines Unique action name. + description: Event condition name. + type: string + transition: + description: Workflow transition if condition + is evaluated to true + x-kubernetes-preserve-unknown-fields: true + required: + - eventRef + type: object + type: array + timeouts: + description: SwitchState specific timeouts + properties: + eventTimeout: + description: 'Specify the expire value to transitions + to defaultCondition. When event-based conditions + do not arrive. NOTE: this is only available for + EventConditions' + type: string + stateExecTimeout: + description: Default workflow state execution timeout + (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - defaultCondition + type: object + transition: + description: Next transition of the workflow after the time + delay. + x-kubernetes-preserve-unknown-fields: true + type: + description: stateType can be any of delay, callback, event, + foreach, inject, operation, parallel, sleep, switch + enum: + - delay + - callback + - event + - foreach + - inject + - operation + - parallel + - sleep + - switch + type: string + usedForCompensation: + description: If true, this state is used to compensate another + state. Default is false. + type: boolean + required: + - name + - type + type: object + minItems: 1 + type: array + x-kubernetes-preserve-unknown-fields: true + timeouts: + description: Defines the workflow default timeout settings. + properties: + actionExecTimeout: + description: ActionExecTimeout Single actions definition execution + timeout duration (ISO 8601 duration format). + type: string + branchExecTimeout: + description: BranchExecTimeout Single branch execution timeout + duration (ISO 8601 duration format). + type: string + eventTimeout: + description: EventTimeout Timeout duration to wait for consuming + defined events (ISO 8601 duration format). + type: string + stateExecTimeout: + description: StateExecTimeout Total state execution timeout + (including retries) (ISO 8601 duration format). + properties: + single: + description: Single state execution timeout, not including + retries (ISO 8601 duration format) + type: string + total: + description: Total state execution timeout, including + retries (ISO 8601 duration format) + type: string + required: + - total + type: object + workflowExecTimeout: + description: WorkflowExecTimeout Workflow execution timeout + duration (ISO 8601 duration format). If not specified should + be 'unlimited'. + properties: + duration: + default: unlimited + description: Workflow execution timeout duration (ISO + 8601 duration format). If not specified should be 'unlimited'. + type: string + interrupt: + description: If false, workflow instance is allowed to + finish current execution. If true, current workflow + execution is stopped immediately. Default is false. + type: boolean + runBefore: + description: Name of a workflow state to be executed before + workflow instance is terminated. + type: string + required: + - duration + type: object + type: object + version: + description: Workflow version. + type: string + required: + - specVersion + - states + type: object + required: + - flow + type: object + status: + description: KogitoServerlessWorkflowStatus defines the observed state + of KogitoServerlessWorkflow + properties: + address: + description: "Addressable provides a generic mechanism for a custom + resource definition to indicate a destination for message delivery. + \n Addressable is the schema for the destination information. This + is typically stored in the object's `status`, as this information + may be generated by the controller." + properties: + url: + type: string + type: object + applied: + description: KogitoServerlessWorkflowSpec defines the desired state + of KogitoServerlessWorkflow + properties: + flow: + description: Workflow base definition + properties: + annotations: + description: Annotations List of helpful terms describing + the workflows intended purpose, subject areas, or other + important qualities. + items: + type: string + type: array + auth: + description: Auth definitions can be used to define authentication + information that should be applied to resources defined + in the operation property of function definitions. It is + not used as authentication information for the function + invocation, but just to access the resource containing the + function invocation information. + x-kubernetes-preserve-unknown-fields: true + autoRetries: + description: AutoRetries If set to true, actions should automatically + be retried on unchecked errors. Default is false + type: boolean + constants: + additionalProperties: + description: RawMessage is a raw encoded JSON value. It + implements Marshaler and Unmarshaler and can be used to + delay JSON decoding or precompute a JSON encoding. + format: byte + type: string + description: Constants Workflow constants are used to define + static, and immutable, data which is available to Workflow + Expressions. + type: object + dataInputSchema: + description: DataInputSchema URI of the JSON Schema used to + validate the workflow data input + properties: + failOnValidationErrors: + type: boolean + schema: + type: string + required: + - failOnValidationErrors + - schema + type: object + description: + description: Workflow description. + type: string + errors: + description: Defines checked errors that can be explicitly + handled during workflow execution. + items: + description: Error declaration for workflow definitions + properties: + code: + description: Code OnError code. Can be used in addition + to the name to help runtimes resolve to technical + errors/exceptions. Should not be defined if error + is set to '*'. + type: string + description: + description: OnError description. + type: string + name: + description: Name Domain-specific error name. + type: string + required: + - name + type: object + type: array + events: + items: + description: Event used to define events and their correlations + properties: + correlation: + description: Define event correlation rules for this + event. Only used for consumed events. + items: + description: Correlation define event correlation + rules for an event. Only used for `consumed` events + properties: + contextAttributeName: + description: CloudEvent Extension Context Attribute + name type: string - nonRetryableErrors: - description: List of unique references to defined - workflow errors for which the action should - not be retried. Used only when `autoRetries` - is set to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow retry - definition. If not defined uses the default - runtime retry definition. + contextAttributeValue: + description: CloudEvent Extension Context Attribute + value type: string - retryableErrors: - description: List of unique references to defined - workflow errors for which the action should - be retried. Used only when `autoRetries` is - set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow execution - should sleep before / after function execution. - properties: - after: - description: Defines amount of time (ISO 8601 - duration format) to sleep after function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string - before: - description: Defines amount of time (ISO 8601 - duration format) to sleep before function/subflow - invocation. Does not apply if 'eventRef' - is defined. - type: string - type: object - subFlowRef: - description: References a workflow to be invoked. - properties: - invoke: - default: sync - description: Specifies if the subflow should - be invoked sync or async. Defaults to sync. - enum: - - async - - sync - type: string - onParentComplete: - default: terminate - description: onParentComplete specifies how - subflow execution should behave when parent - workflow completes if invoke is 'async'. - Defaults to terminate. - enum: - - terminate - - continue - type: string - version: - description: Sub-workflow version - type: string - workflowId: - description: Sub-workflow unique id - type: string - required: - - workflowId - type: object + required: + - contextAttributeName type: object - minItems: 1 type: array - timeouts: - description: State specific timeouts + dataOnly: + description: If `true`, only the Event payload is accessible + to consuming Workflow states. If `false`, both event + payload and context attributes should be accessible. + Defaults to true. + type: boolean + kind: + default: consumed + description: Defines the CloudEvent as either 'consumed' + or 'produced' by the workflow. Defaults to `consumed`. + enum: + - consumed + - produced + type: string + metadata: + additionalProperties: + type: object + description: Metadata information + type: object + name: + description: Unique event name. + type: string + source: + description: CloudEvent source. + type: string + type: + description: CloudEvent type. + type: string + required: + - name + - type + type: object + type: array + expressionLang: + default: jq + description: Identifies the expression language used for workflow + expressions. Default is 'jq'. + enum: + - jq + - jsonpath + type: string + functions: + items: + description: Function ... + properties: + authRef: + description: References an auth definition name to be + used to access to resource defined in the operation + parameter. + type: string + metadata: + additionalProperties: + type: object + description: Metadata information + type: object + name: + description: Unique function name + type: string + operation: + description: If type is `rest`, #. + If type is `rpc`, ##. + If type is `expression`, defines the workflow expression. + If the type is `custom`, #. + type: string + type: + default: rest + description: Defines the function type. Is either `custom`, + `rest`, `rpc`, `expression`, `graphql`, `odata` or + `asyncapi`. Default is `rest`. + enum: + - rest + - rpc + - expression + - graphql + - odata + - asyncapi + - custom + type: string + required: + - name + - operation + type: object + type: array + id: + description: Workflow unique identifier + type: string + keepActive: + description: If "true", workflow instances is not terminated + when there are no active execution paths. Instance can be + terminated with "terminate end definition" or reaching defined + "workflowExecTimeout" + type: boolean + key: + description: Key Domain-specific workflow identifier + type: string + metadata: + description: Metadata custom information shared with the runtime. + x-kubernetes-preserve-unknown-fields: true + name: + description: Workflow name + type: string + retries: + items: + description: Retry ... + properties: + delay: + description: Time delay between retry attempts (ISO + 8601 duration format) + type: string + increment: + description: Static value by which the delay increases + during each attempt (ISO 8601 time format) + type: string + jitter: + description: 'If float type, maximum amount of random + time added or subtracted from the delay between each + retry relative to total delay (between 0 and 1). If + string type, absolute maximum amount of random time + added or subtracted from the delay between each retry + (ISO 8601 duration format) TODO: make iso8601duration + compatible this type' properties: - actionExecTimeout: - description: Default single actions definition execution - timeout (ISO 8601 duration format) + floatVal: + type: number + strVal: type: string - stateExecTimeout: - description: Defines workflow state execution timeout. + type: + description: Type represents the stored type of + Float32OrString. + format: int64 + type: integer + type: object + maxAttempts: + anyOf: + - type: integer + - type: string + description: Maximum number of retry attempts. + x-kubernetes-int-or-string: true + maxDelay: + description: Maximum time delay between retry attempts + (ISO 8601 duration format) + type: string + multiplier: + description: Numeric value, if specified the delay between + retries is multiplied by this value. + properties: + floatVal: + type: number + strVal: + type: string + type: + description: Type represents the stored type of + Float32OrString. + format: int64 + type: integer + type: object + name: + description: Unique retry strategy name + type: string + required: + - maxAttempts + - name + type: object + type: array + secrets: + description: Secrets allow you to access sensitive information, + such as passwords, OAuth tokens, ssh keys, etc, inside your + Workflow Expressions. + items: + type: string + type: array + specVersion: + default: "0.8" + description: Serverless Workflow schema version + type: string + start: + description: Workflow start definition. + x-kubernetes-preserve-unknown-fields: true + states: + items: + properties: + callbackState: + description: callbackState executes a function and waits + for callback event that indicates completion of the + task. + properties: + action: + description: Defines the action to be executed. properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) + actionDataFilter: + description: Filter the state data to select + only the data that can be used within function + definition arguments using its fromStateData + property. Filter the action results to select + only the result data that should be added/merged + back into the state data using its results + property. Select the part of state data which + the action data results should be added/merged + to using the toStateData property. + properties: + fromStateData: + description: Workflow expression that filters + state data that can be used by the action. + type: string + results: + description: Workflow expression that filters + the actions data results. + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action + results should be added/merged into. If + not specified denotes the top-level state + data element. + type: string + useResults: + description: If set to false, action data + results are not added/merged to state + data. In this case 'results' and 'toStateData' + should be ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must evaluate + to true for this action to be performed. If + false, action is disregarded. + type: string + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension context + attributes to the produced event. + type: object + data: + description: If string type, an expression + which selects parts of the states data + output to become the data (payload) of + the event referenced by triggerEventRef. + If object type, a custom object to become + the data (payload) of the event referenced + by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique name + of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO + 8601 format) to wait for the result event. + If not defined it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name + of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be passed + to the referenced function TODO: validate + it as required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function should + be invoked sync or async. Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is graphql. + String containing a valid GraphQL selection + set. TODO: validate it as required if + function type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) + name: + description: Defines Unique action name. type: string - required: - - total - type: object - type: object - required: - - actions - type: object - parallelState: - description: parallelState Consists of a number of states - that are executed in parallel. - properties: - branches: - description: List of branches for this parallel state. - items: - description: Branch Definition - properties: - actions: - description: Actions to be executed in this branch - items: - description: Action specify invocations of services - or other workflows during workflow execution. + nonRetryableErrors: + description: List of unique references to defined + workflow errors for which the action should + not be retried. Used only when `autoRetries` + is set to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow retry + definition. If not defined uses the default + runtime retry definition. + type: string + retryableErrors: + description: List of unique references to defined + workflow errors for which the action should + be retried. Used only when `autoRetries` is + set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow execution + should sleep before / after function execution. properties: - actionDataFilter: - description: Filter the state data to select - only the data that can be used within - function definition arguments using its - fromStateData property. Filter the action - results to select only the result data - that should be added/merged back into - the state data using its results property. - Select the part of state data which the - action data results should be added/merged - to using the toStateData property. - properties: - fromStateData: - description: Workflow expression that - filters state data that can be used - by the action. - type: string - results: - description: Workflow expression that - filters the actions data results. - type: string - toStateData: - description: Workflow expression that - selects a state data element to which - the action results should be added/merged - into. If not specified denotes the - top-level state data element. - type: string - useResults: - description: If set to false, action - data results are not added/merged - to state data. In this case 'results' - and 'toStateData' should be ignored. - Default is true. - type: boolean - type: object - condition: - description: Expression, if defined, must - evaluate to true for this action to be - performed. If false, action is disregarded. + after: + description: Defines amount of time (ISO + 8601 duration format) to sleep after function/subflow + invocation. Does not apply if 'eventRef' + is defined. type: string - eventRef: - description: References a 'trigger' and - 'result' reusable event definitions. - properties: - contextAttributes: - additionalProperties: - type: object - description: Add additional extension - context attributes to the produced - event. - type: object - data: - description: If string type, an expression - which selects parts of the states - data output to become the data (payload) - of the event referenced by triggerEventRef. - If object type, a custom object to - become the data (payload) of the event - referenced by triggerEventRef. - type: object - invoke: - default: sync - description: Specifies if the function - should be invoked sync or async. Default - is sync. - enum: - - async - - sync - type: string - resultEventRef: - description: Reference to the unique - name of a 'consumed' event definition - type: string - resultEventTimeout: - description: Maximum amount of time - (ISO 8601 format) to wait for the - result event. If not defined it be - set to the actionExecutionTimeout - type: string - triggerEventRef: - description: Reference to the unique - name of a 'produced' event definition, - type: string - required: - - resultEventRef - - triggerEventRef - type: object - functionRef: - description: References a reusable function - definition. - properties: - arguments: - additionalProperties: - type: object - description: 'Arguments (inputs) to - be passed to the referenced function - TODO: validate it as required if function - type is graphql' - type: object - invoke: - default: sync - description: Specifies if the function - should be invoked sync or async. Default - is sync. - enum: - - async - - sync - type: string - refName: - description: Name of the referenced - function. - type: string - selectionSet: - description: 'Used if function type - is graphql. String containing a valid - GraphQL selection set. TODO: validate - it as required if function type is - graphql' - type: string - required: - - refName - type: object - id: - description: Defines Unique action identifier. + before: + description: Defines amount of time (ISO + 8601 duration format) to sleep before + function/subflow invocation. Does not + apply if 'eventRef' is defined. type: string - name: - description: Defines Unique action name. + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow should + be invoked sync or async. Defaults to + sync. + enum: + - async + - sync type: string - nonRetryableErrors: - description: List of unique references to - defined workflow errors for which the - action should not be retried. Used only - when `autoRetries` is set to `true` - items: - type: string - type: array - retryRef: - description: References a defined workflow - retry definition. If not defined uses - the default runtime retry definition. + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave when + parent workflow completes if invoke is + 'async'. Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object + type: object + eventDataFilter: + description: Event data filter definition. + properties: + data: + description: Workflow expression that filters + of the event data (payload). + type: string + toStateData: + description: Workflow expression that selects + a state data element to which the action results + should be added/merged into. If not specified + denotes the top-level state data element + type: string + useData: + description: If set to false, event payload + is not added/merged to state data. In this + case 'data' and 'toStateData' should be ignored. + Default is true. + type: boolean + type: object + eventRef: + description: References a unique callback event + name in the defined workflow events. + type: string + timeouts: + description: Time period to wait for incoming events + (ISO 8601 format) + properties: + actionExecTimeout: + description: Default single actions definition + execution timeout (ISO 8601 duration format) + type: string + eventTimeout: + description: Default timeout for consuming defined + events (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) type: string - retryableErrors: - description: List of unique references to - defined workflow errors for which the - action should be retried. Used only when - `autoRetries` is set to `false` - items: - type: string - type: array - sleep: - description: Defines time period workflow - execution should sleep before / after - function execution. - properties: - after: - description: Defines amount of time - (ISO 8601 duration format) to sleep - after function/subflow invocation. - Does not apply if 'eventRef' is defined. - type: string - before: - description: Defines amount of time - (ISO 8601 duration format) to sleep - before function/subflow invocation. - Does not apply if 'eventRef' is defined. - type: string - type: object - subFlowRef: - description: References a workflow to be - invoked. + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - action + - eventRef + type: object + compensatedBy: + description: Unique Name of a workflow state which is + responsible for compensation of this state. + type: string + delayState: + description: delayState Causes the workflow execution + to delay for a specified duration. + properties: + timeDelay: + description: Amount of time (ISO 8601 format) to + delay + type: string + required: + - timeDelay + type: object + end: + description: State end definition. + x-kubernetes-preserve-unknown-fields: true + eventState: + description: event states await one or more events and + perform actions when they are received. If defined + as the workflow starting state, the event state definition + controls when the workflow instances should be created. + properties: + exclusive: + default: true + description: If true consuming one of the defined + events causes its associated actions to be performed. + If false all the defined events must be consumed + in order for actions to be performed. Defaults + to true. + type: boolean + onEvents: + description: Define the events to be consumed and + optional actions to be performed. + items: + description: OnEvents define which actions are + be performed for the one or more events. + properties: + actionMode: + default: sequential + description: Should actions be performed sequentially + or in parallel. Default is sequential. + enum: + - sequential + - parallel + type: string + actions: + description: Actions to be performed if expression + matches + items: + description: Action specify invocations + of services or other workflows during + workflow execution. properties: - invoke: - default: sync - description: Specifies if the subflow - should be invoked sync or async. Defaults - to sync. - enum: - - async - - sync + actionDataFilter: + description: Filter the state data to + select only the data that can be used + within function definition arguments + using its fromStateData property. + Filter the action results to select + only the result data that should be + added/merged back into the state data + using its results property. Select + the part of state data which the action + data results should be added/merged + to using the toStateData property. + properties: + fromStateData: + description: Workflow expression + that filters state data that can + be used by the action. + type: string + results: + description: Workflow expression + that filters the actions data + results. + type: string + toStateData: + description: Workflow expression + that selects a state data element + to which the action results should + be added/merged into. If not specified + denotes the top-level state data + element. + type: string + useResults: + description: If set to false, action + data results are not added/merged + to state data. In this case 'results' + and 'toStateData' should be ignored. + Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, + must evaluate to true for this action + to be performed. If false, action + is disregarded. type: string - onParentComplete: - default: terminate - description: onParentComplete specifies - how subflow execution should behave - when parent workflow completes if - invoke is 'async'. Defaults to terminate. - enum: - - terminate - - continue + eventRef: + description: References a 'trigger' + and 'result' reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension + context attributes to the produced + event. + type: object + data: + description: If string type, an + expression which selects parts + of the states data output to become + the data (payload) of the event + referenced by triggerEventRef. + If object type, a custom object + to become the data (payload) of + the event referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. + Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique + name of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time + (ISO 8601 format) to wait for + the result event. If not defined + it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique + name of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) + to be passed to the referenced + function TODO: validate it as + required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. + Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced + function. + type: string + selectionSet: + description: 'Used if function type + is graphql. String containing + a valid GraphQL selection set. + TODO: validate it as required + if function type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. type: string - version: - description: Sub-workflow version + name: + description: Defines Unique action name. type: string - workflowId: - description: Sub-workflow unique id + nonRetryableErrors: + description: List of unique references + to defined workflow errors for which + the action should not be retried. + Used only when `autoRetries` is set + to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow + retry definition. If not defined uses + the default runtime retry definition. type: string - required: - - workflowId + retryableErrors: + description: List of unique references + to defined workflow errors for which + the action should be retried. Used + only when `autoRetries` is set to + `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow + execution should sleep before / after + function execution. + properties: + after: + description: Defines amount of time + (ISO 8601 duration format) to + sleep after function/subflow invocation. + Does not apply if 'eventRef' is + defined. + type: string + before: + description: Defines amount of time + (ISO 8601 duration format) to + sleep before function/subflow + invocation. Does not apply if + 'eventRef' is defined. + type: string + type: object + subFlowRef: + description: References a workflow to + be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow + should be invoked sync or async. + Defaults to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave + when parent workflow completes + if invoke is 'async'. Defaults + to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique + id + type: string + required: + - workflowId + type: object type: object + type: array + eventDataFilter: + description: eventDataFilter defines the callback + event data filter definition + properties: + data: + description: Workflow expression that + filters of the event data (payload). + type: string + toStateData: + description: Workflow expression that + selects a state data element to which + the action results should be added/merged + into. If not specified denotes the top-level + state data element + type: string + useData: + description: If set to false, event payload + is not added/merged to state data. In + this case 'data' and 'toStateData' should + be ignored. Default is true. + type: boolean + type: object + eventRefs: + description: References one or more unique + event names in the defined workflow events. + items: + type: string + minItems: 1 + type: array + required: + - eventRefs + type: object + minItems: 1 + type: array + timeouts: + description: State specific timeouts. + properties: + actionExecTimeout: + description: Default single actions definition + execution timeout (ISO 8601 duration format) + type: string + eventTimeout: + description: Default timeout for consuming defined + events (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total type: object - minItems: 1 - type: array - name: - description: Branch name - type: string - timeouts: - description: Branch specific timeout settings + type: object + required: + - onEvents + type: object + forEachState: + description: forEachState used to execute actions for + each element of a data set. + properties: + actions: + description: Actions to be executed for each of + the elements of inputCollection. + items: + description: Action specify invocations of services + or other workflows during workflow execution. properties: - actionExecTimeout: - description: Single actions definition execution - timeout duration (ISO 8601 duration format) + actionDataFilter: + description: Filter the state data to select + only the data that can be used within function + definition arguments using its fromStateData + property. Filter the action results to select + only the result data that should be added/merged + back into the state data using its results + property. Select the part of state data + which the action data results should be + added/merged to using the toStateData property. + properties: + fromStateData: + description: Workflow expression that + filters state data that can be used + by the action. + type: string + results: + description: Workflow expression that + filters the actions data results. + type: string + toStateData: + description: Workflow expression that + selects a state data element to which + the action results should be added/merged + into. If not specified denotes the top-level + state data element. + type: string + useResults: + description: If set to false, action data + results are not added/merged to state + data. In this case 'results' and 'toStateData' + should be ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must + evaluate to true for this action to be performed. + If false, action is disregarded. type: string - branchExecTimeout: - description: Single branch execution timeout - duration (ISO 8601 duration format) + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension + context attributes to the produced event. + type: object + data: + description: If string type, an expression + which selects parts of the states data + output to become the data (payload) + of the event referenced by triggerEventRef. + If object type, a custom object to become + the data (payload) of the event referenced + by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique name + of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO + 8601 format) to wait for the result + event. If not defined it be set to the + actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name + of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be + passed to the referenced function TODO: + validate it as required if function + type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is + graphql. String containing a valid GraphQL + selection set. TODO: validate it as + required if function type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to + defined workflow errors for which the action + should not be retried. Used only when `autoRetries` + is set to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow + retry definition. If not defined uses the + default runtime retry definition. type: string + retryableErrors: + description: List of unique references to + defined workflow errors for which the action + should be retried. Used only when `autoRetries` + is set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow + execution should sleep before / after function + execution. + properties: + after: + description: Defines amount of time (ISO + 8601 duration format) to sleep after + function/subflow invocation. Does not + apply if 'eventRef' is defined. + type: string + before: + description: Defines amount of time (ISO + 8601 duration format) to sleep before + function/subflow invocation. Does not + apply if 'eventRef' is defined. + type: string + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow + should be invoked sync or async. Defaults + to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave + when parent workflow completes if invoke + is 'async'. Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique id + type: string + required: + - workflowId + type: object type: object - required: - - actions - - name - type: object - minItems: 1 - type: array - completionType: - default: allOf - description: Option types on how to complete branch - execution. Defaults to `allOf`. - enum: - - allOf - - atLeast - type: string - numCompleted: - anyOf: - - type: integer - - type: string - description: 'Used when branchCompletionType is set - to atLeast to specify the least number of branches - that must complete in order for the state to transition/end. - TODO: change this field to unmarshal result as int' - x-kubernetes-int-or-string: true - timeouts: - description: State specific timeouts - properties: - branchExecTimeout: - description: Default single branch execution timeout - (ISO 8601 duration format) + minItems: 1 + type: array + batchSize: + anyOf: + - type: integer + - type: string + description: Specifies how many iterations may run + in parallel at the same time. Used if mode property + is set to parallel (default). If not specified, + its value should be the size of the inputCollection. + x-kubernetes-int-or-string: true + inputCollection: + description: Workflow expression selecting an array + element of the states' data. type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) + iterationParam: + description: Name of the iteration parameter that + can be referenced in actions/workflow. For each + parallel iteration, this param should contain + a unique element of the inputCollection array. + type: string + mode: + default: parallel + description: Specifies how iterations are to be + performed (sequential or in parallel), defaults + to parallel. + enum: + - sequential + - parallel + type: string + outputCollection: + description: Workflow expression specifying an array + element of the states data to add the results + of each iteration. + type: string + timeouts: + description: State specific timeout. properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) + actionExecTimeout: + description: Default single actions definition + execution timeout (ISO 8601 duration format) type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) - type: string - required: - - total + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object type: object + required: + - inputCollection type: object - required: - - branches - type: object - sleepState: - description: sleepState suspends workflow execution for - a given time duration. - properties: - duration: - description: Duration (ISO 8601 duration format) to - sleep + id: + description: Unique State id. type: string - timeouts: - description: Timeouts State specific timeouts + injectState: + description: injectState used to inject static data + into state data input. properties: - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) - properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) - type: string - required: - - total + data: + additionalProperties: + type: object + description: JSON object which can be set as state's + data input and can be manipulated via filter + minProperties: 1 + type: object + timeouts: + description: State specific timeouts + properties: + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object type: object + required: + - data type: object - required: - - duration - type: object - stateDataFilter: - description: State data filter. - properties: - input: - description: Workflow expression to filter the state - data input - type: string - output: - description: Workflow expression that filters the state - data output + metadata: + additionalProperties: + type: object + description: Metadata information. + type: object + name: + description: State name. type: string - type: object - switchState: - description: 'switchState is workflow''s gateways: direct - transitions onf a workflow based on certain conditions.' - properties: - dataConditions: - description: Defines conditions evaluated against data + onErrors: + description: States error handling and retries definitions. items: - description: DataCondition specify a data-based condition - statement which causes a transition to another workflow - state if evaluated to true. + description: OnError ... properties: - condition: - description: Workflow expression evaluated against - state data. Must evaluate to true or false. - type: string end: - description: TODO End or Transition needs to be - exclusive tag, one or another should be set. - Explicit transition to end + description: End workflow execution in case of + this error. If retryRef is defined, this ends + workflow only if retries were unsuccessful. + x-kubernetes-preserve-unknown-fields: true + errorRef: + description: ErrorRef Reference to a unique workflow + error definition. Used of errorRefs is not used + type: string + errorRefs: + description: ErrorRefs References one or more + workflow error definitions. Used if errorRef + is not used + items: + type: string + type: array + transition: + description: Transition to next state to handle + the error. If retryRef is defined, this transition + is taken only if retries were unsuccessful. + x-kubernetes-preserve-unknown-fields: true + type: object + type: array + operationState: + description: operationState defines a set of actions + to be performed in sequence or in parallel. + properties: + actionMode: + default: sequential + description: Specifies whether actions are performed + in sequence or in parallel, defaults to sequential. + enum: + - sequential + - parallel + type: string + actions: + description: Actions to be performed + items: + description: Action specify invocations of services + or other workflows during workflow execution. properties: - compensate: - description: If set to true, triggers workflow - compensation before workflow execution completes. - Default is false. - type: boolean - continueAs: - description: Defines that current workflow - execution should stop, and execution should - continue as a new workflow instance of the - provided id + actionDataFilter: + description: Filter the state data to select + only the data that can be used within function + definition arguments using its fromStateData + property. Filter the action results to select + only the result data that should be added/merged + back into the state data using its results + property. Select the part of state data + which the action data results should be + added/merged to using the toStateData property. + properties: + fromStateData: + description: Workflow expression that + filters state data that can be used + by the action. + type: string + results: + description: Workflow expression that + filters the actions data results. + type: string + toStateData: + description: Workflow expression that + selects a state data element to which + the action results should be added/merged + into. If not specified denotes the top-level + state data element. + type: string + useResults: + description: If set to false, action data + results are not added/merged to state + data. In this case 'results' and 'toStateData' + should be ignored. Default is true. + type: boolean + type: object + condition: + description: Expression, if defined, must + evaluate to true for this action to be performed. + If false, action is disregarded. + type: string + eventRef: + description: References a 'trigger' and 'result' + reusable event definitions. properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension + context attributes to the produced event. + type: object data: description: If string type, an expression which selects parts of the states data - output to become the workflow data input - of continued execution. If object type, - a custom object to become the workflow - data input of the continued execution + output to become the data (payload) + of the event referenced by triggerEventRef. + If object type, a custom object to become + the data (payload) of the event referenced + by triggerEventRef. type: object - version: - description: Version of the workflow to - continue execution as. + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync type: string - workflowExecTimeout: - description: WorkflowExecTimeout Workflow - execution timeout to be used by the - workflow continuing execution. Overwrites - any specific settings set by that workflow - properties: - duration: - default: unlimited - description: Workflow execution timeout - duration (ISO 8601 duration format). - If not specified should be 'unlimited'. - type: string - interrupt: - description: If false, workflow instance - is allowed to finish current execution. - If true, current workflow execution - is stopped immediately. Default - is false. - type: boolean - runBefore: - description: Name of a workflow state - to be executed before workflow instance - is terminated. - type: string - required: - - duration + resultEventRef: + description: Reference to the unique name + of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time (ISO + 8601 format) to wait for the result + event. If not defined it be set to the + actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique name + of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) to be + passed to the referenced function TODO: + validate it as required if function + type is graphql' type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. Default + is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced function. + type: string + selectionSet: + description: 'Used if function type is + graphql. String containing a valid GraphQL + selection set. TODO: validate it as + required if function type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. + type: string + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references to + defined workflow errors for which the action + should not be retried. Used only when `autoRetries` + is set to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow + retry definition. If not defined uses the + default runtime retry definition. + type: string + retryableErrors: + description: List of unique references to + defined workflow errors for which the action + should be retried. Used only when `autoRetries` + is set to `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow + execution should sleep before / after function + execution. + properties: + after: + description: Defines amount of time (ISO + 8601 duration format) to sleep after + function/subflow invocation. Does not + apply if 'eventRef' is defined. + type: string + before: + description: Defines amount of time (ISO + 8601 duration format) to sleep before + function/subflow invocation. Does not + apply if 'eventRef' is defined. + type: string + type: object + subFlowRef: + description: References a workflow to be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow + should be invoked sync or async. Defaults + to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave + when parent workflow completes if invoke + is 'async'. Defaults to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string workflowId: - description: Unique id of the workflow - to continue execution as. + description: Sub-workflow unique id type: string required: - workflowId type: object - produceEvents: - description: Array of producedEvent definitions. - Defines events that should be produced. + type: object + minItems: 1 + type: array + timeouts: + description: State specific timeouts + properties: + actionExecTimeout: + description: Default single actions definition + execution timeout (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Defines workflow state execution + timeout. + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - actions + type: object + parallelState: + description: parallelState Consists of a number of states + that are executed in parallel. + properties: + branches: + description: List of branches for this parallel + state. + items: + description: Branch Definition + properties: + actions: + description: Actions to be executed in this + branch items: - description: ProduceEvent Defines the event - (CloudEvent format) to be produced when - workflow execution completes or during - a workflow transitions. The eventRef property - must match the name of one of the defined - produced events in the events definition. + description: Action specify invocations + of services or other workflows during + workflow execution. properties: - contextAttributes: - additionalProperties: - type: string - description: Add additional event extension - context attributes. - type: object - data: - description: If String, expression which - selects parts of the states data output - to become the data of the produced - event. If object a custom object to - become the data of produced event. + actionDataFilter: + description: Filter the state data to + select only the data that can be used + within function definition arguments + using its fromStateData property. + Filter the action results to select + only the result data that should be + added/merged back into the state data + using its results property. Select + the part of state data which the action + data results should be added/merged + to using the toStateData property. + properties: + fromStateData: + description: Workflow expression + that filters state data that can + be used by the action. + type: string + results: + description: Workflow expression + that filters the actions data + results. + type: string + toStateData: + description: Workflow expression + that selects a state data element + to which the action results should + be added/merged into. If not specified + denotes the top-level state data + element. + type: string + useResults: + description: If set to false, action + data results are not added/merged + to state data. In this case 'results' + and 'toStateData' should be ignored. + Default is true. + type: boolean type: object + condition: + description: Expression, if defined, + must evaluate to true for this action + to be performed. If false, action + is disregarded. + type: string eventRef: - description: Reference to a defined - unique event name in the events definition + description: References a 'trigger' + and 'result' reusable event definitions. + properties: + contextAttributes: + additionalProperties: + type: object + description: Add additional extension + context attributes to the produced + event. + type: object + data: + description: If string type, an + expression which selects parts + of the states data output to become + the data (payload) of the event + referenced by triggerEventRef. + If object type, a custom object + to become the data (payload) of + the event referenced by triggerEventRef. + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. + Default is sync. + enum: + - async + - sync + type: string + resultEventRef: + description: Reference to the unique + name of a 'consumed' event definition + type: string + resultEventTimeout: + description: Maximum amount of time + (ISO 8601 format) to wait for + the result event. If not defined + it be set to the actionExecutionTimeout + type: string + triggerEventRef: + description: Reference to the unique + name of a 'produced' event definition, + type: string + required: + - resultEventRef + - triggerEventRef + type: object + functionRef: + description: References a reusable function + definition. + properties: + arguments: + additionalProperties: + type: object + description: 'Arguments (inputs) + to be passed to the referenced + function TODO: validate it as + required if function type is graphql' + type: object + invoke: + default: sync + description: Specifies if the function + should be invoked sync or async. + Default is sync. + enum: + - async + - sync + type: string + refName: + description: Name of the referenced + function. + type: string + selectionSet: + description: 'Used if function type + is graphql. String containing + a valid GraphQL selection set. + TODO: validate it as required + if function type is graphql' + type: string + required: + - refName + type: object + id: + description: Defines Unique action identifier. type: string - required: - - eventRef + name: + description: Defines Unique action name. + type: string + nonRetryableErrors: + description: List of unique references + to defined workflow errors for which + the action should not be retried. + Used only when `autoRetries` is set + to `true` + items: + type: string + type: array + retryRef: + description: References a defined workflow + retry definition. If not defined uses + the default runtime retry definition. + type: string + retryableErrors: + description: List of unique references + to defined workflow errors for which + the action should be retried. Used + only when `autoRetries` is set to + `false` + items: + type: string + type: array + sleep: + description: Defines time period workflow + execution should sleep before / after + function execution. + properties: + after: + description: Defines amount of time + (ISO 8601 duration format) to + sleep after function/subflow invocation. + Does not apply if 'eventRef' is + defined. + type: string + before: + description: Defines amount of time + (ISO 8601 duration format) to + sleep before function/subflow + invocation. Does not apply if + 'eventRef' is defined. + type: string + type: object + subFlowRef: + description: References a workflow to + be invoked. + properties: + invoke: + default: sync + description: Specifies if the subflow + should be invoked sync or async. + Defaults to sync. + enum: + - async + - sync + type: string + onParentComplete: + default: terminate + description: onParentComplete specifies + how subflow execution should behave + when parent workflow completes + if invoke is 'async'. Defaults + to terminate. + enum: + - terminate + - continue + type: string + version: + description: Sub-workflow version + type: string + workflowId: + description: Sub-workflow unique + id + type: string + required: + - workflowId + type: object type: object + minItems: 1 type: array - terminate: - description: If true, completes all execution - flows in the given workflow instance. - type: boolean + name: + description: Branch name + type: string + timeouts: + description: Branch specific timeout settings + properties: + actionExecTimeout: + description: Single actions definition + execution timeout duration (ISO 8601 + duration format) + type: string + branchExecTimeout: + description: Single branch execution timeout + duration (ISO 8601 duration format) + type: string + type: object + required: + - actions + - name type: object - metadata: - additionalProperties: + minItems: 1 + type: array + completionType: + default: allOf + description: Option types on how to complete branch + execution. Defaults to `allOf`. + enum: + - allOf + - atLeast + type: string + numCompleted: + anyOf: + - type: integer + - type: string + description: 'Used when branchCompletionType is + set to atLeast to specify the least number of + branches that must complete in order for the state + to transition/end. TODO: change this field to + unmarshal result as int' + x-kubernetes-int-or-string: true + timeouts: + description: State specific timeouts + properties: + branchExecTimeout: + description: Default single branch execution + timeout (ISO 8601 duration format) + type: string + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total type: object - description: Metadata information. - type: object - name: - description: Data condition name. - type: string - transition: - description: Workflow transition if condition - is evaluated to true - properties: - compensate: - default: false - description: If set to true, triggers workflow - compensation before this transition is taken. - Default is false. - type: boolean - nextState: - description: Name of the state to transition - to next. - type: string - produceEvents: - description: Array of producedEvent definitions. - Events to be produced before the transition - takes place. - items: - description: ProduceEvent Defines the event - (CloudEvent format) to be produced when - workflow execution completes or during - a workflow transitions. The eventRef property - must match the name of one of the defined - produced events in the events definition. - properties: - contextAttributes: - additionalProperties: + type: object + required: + - branches + type: object + sleepState: + description: sleepState suspends workflow execution + for a given time duration. + properties: + duration: + description: Duration (ISO 8601 duration format) + to sleep + type: string + timeouts: + description: Timeouts State specific timeouts + properties: + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object + type: object + required: + - duration + type: object + stateDataFilter: + description: State data filter. + properties: + input: + description: Workflow expression to filter the state + data input + type: string + output: + description: Workflow expression that filters the + state data output + type: string + type: object + switchState: + description: 'switchState is workflow''s gateways: direct + transitions onf a workflow based on certain conditions.' + properties: + dataConditions: + description: Defines conditions evaluated against + data + items: + description: DataCondition specify a data-based + condition statement which causes a transition + to another workflow state if evaluated to true. + properties: + condition: + description: Workflow expression evaluated + against state data. Must evaluate to true + or false. + type: string + end: + description: TODO End or Transition needs + to be exclusive tag, one or another should + be set. Explicit transition to end + properties: + compensate: + description: If set to true, triggers + workflow compensation before workflow + execution completes. Default is false. + type: boolean + continueAs: + description: Defines that current workflow + execution should stop, and execution + should continue as a new workflow instance + of the provided id + properties: + data: + description: If string type, an expression + which selects parts of the states + data output to become the workflow + data input of continued execution. + If object type, a custom object + to become the workflow data input + of the continued execution + type: object + version: + description: Version of the workflow + to continue execution as. type: string - description: Add additional event extension - context attributes. - type: object - data: - description: If String, expression which - selects parts of the states data output - to become the data of the produced - event. If object a custom object to - become the data of produced event. + workflowExecTimeout: + description: WorkflowExecTimeout Workflow + execution timeout to be used by + the workflow continuing execution. + Overwrites any specific settings + set by that workflow + properties: + duration: + default: unlimited + description: Workflow execution + timeout duration (ISO 8601 duration + format). If not specified should + be 'unlimited'. + type: string + interrupt: + description: If false, workflow + instance is allowed to finish + current execution. If true, + current workflow execution is + stopped immediately. Default + is false. + type: boolean + runBefore: + description: Name of a workflow + state to be executed before + workflow instance is terminated. + type: string + required: + - duration + type: object + workflowId: + description: Unique id of the workflow + to continue execution as. + type: string + required: + - workflowId + type: object + produceEvents: + description: Array of producedEvent definitions. + Defines events that should be produced. + items: + description: ProduceEvent Defines the + event (CloudEvent format) to be produced + when workflow execution completes + or during a workflow transitions. + The eventRef property must match the + name of one of the defined produced + events in the events definition. + properties: + contextAttributes: + additionalProperties: + type: string + description: Add additional event + extension context attributes. + type: object + data: + description: If String, expression + which selects parts of the states + data output to become the data + of the produced event. If object + a custom object to become the + data of produced event. + type: object + eventRef: + description: Reference to a defined + unique event name in the events + definition + type: string + required: + - eventRef type: object - eventRef: - description: Reference to a defined - unique event name in the events definition - type: string - required: - - eventRef + type: array + terminate: + description: If true, completes all execution + flows in the given workflow instance. + type: boolean + type: object + metadata: + additionalProperties: type: object - type: array + description: Metadata information. + type: object + name: + description: Data condition name. + type: string + transition: + description: Workflow transition if condition + is evaluated to true + properties: + compensate: + default: false + description: If set to true, triggers + workflow compensation before this transition + is taken. Default is false. + type: boolean + nextState: + description: Name of the state to transition + to next. + type: string + produceEvents: + description: Array of producedEvent definitions. + Events to be produced before the transition + takes place. + items: + description: ProduceEvent Defines the + event (CloudEvent format) to be produced + when workflow execution completes + or during a workflow transitions. + The eventRef property must match the + name of one of the defined produced + events in the events definition. + properties: + contextAttributes: + additionalProperties: + type: string + description: Add additional event + extension context attributes. + type: object + data: + description: If String, expression + which selects parts of the states + data output to become the data + of the produced event. If object + a custom object to become the + data of produced event. + type: object + eventRef: + description: Reference to a defined + unique event name in the events + definition + type: string + required: + - eventRef + type: object + type: array + required: + - nextState + type: object required: - - nextState + - condition + - end type: object - required: - - condition - - end - type: object - type: array - defaultCondition: - description: Default transition of the workflow if there - is no matching data conditions. Can include a transition - or end definition. - properties: - end: - description: If this state an end state - x-kubernetes-preserve-unknown-fields: true - transition: - description: Serverless workflow states can have - one or more incoming and outgoing transitions - (from/to other states). Each state can define - a transition definition that is used to determine - which state to transition to next. - x-kubernetes-preserve-unknown-fields: true - type: object - eventConditions: - description: Defines conditions evaluated against events. - items: - description: EventCondition specify events which the - switch state must wait for. - properties: - end: - description: TODO End or Transition needs to be - exclusive tag, one or another should be set. - Explicit transition to end - x-kubernetes-preserve-unknown-fields: true - eventDataFilter: - description: Event data filter definition. + type: array + defaultCondition: + description: Default transition of the workflow + if there is no matching data conditions. Can include + a transition or end definition. + properties: + end: + description: If this state an end state + x-kubernetes-preserve-unknown-fields: true + transition: + description: Serverless workflow states can + have one or more incoming and outgoing transitions + (from/to other states). Each state can define + a transition definition that is used to determine + which state to transition to next. + x-kubernetes-preserve-unknown-fields: true + type: object + eventConditions: + description: Defines conditions evaluated against + events. + items: + description: EventCondition specify events which + the switch state must wait for. properties: - data: - description: Workflow expression that filters - of the event data (payload). + end: + description: TODO End or Transition needs + to be exclusive tag, one or another should + be set. Explicit transition to end + x-kubernetes-preserve-unknown-fields: true + eventDataFilter: + description: Event data filter definition. + properties: + data: + description: Workflow expression that + filters of the event data (payload). + type: string + toStateData: + description: Workflow expression that + selects a state data element to which + the action results should be added/merged + into. If not specified denotes the top-level + state data element + type: string + useData: + description: If set to false, event payload + is not added/merged to state data. In + this case 'data' and 'toStateData' should + be ignored. Default is true. + type: boolean + type: object + eventRef: + description: References a unique event name + in the defined workflow events. type: string - toStateData: - description: Workflow expression that selects - a state data element to which the action - results should be added/merged into. If - not specified denotes the top-level state - data element + metadata: + description: Metadata information. + x-kubernetes-preserve-unknown-fields: true + name: + description: Event condition name. type: string - useData: - description: If set to false, event payload - is not added/merged to state data. In this - case 'data' and 'toStateData' should be - ignored. Default is true. - type: boolean + transition: + description: Workflow transition if condition + is evaluated to true + x-kubernetes-preserve-unknown-fields: true + required: + - eventRef type: object - eventRef: - description: References a unique event name in - the defined workflow events. - type: string - metadata: - description: Metadata information. - x-kubernetes-preserve-unknown-fields: true - name: - description: Event condition name. - type: string - transition: - description: Workflow transition if condition - is evaluated to true - x-kubernetes-preserve-unknown-fields: true - required: - - eventRef - type: object - type: array - timeouts: - description: SwitchState specific timeouts - properties: - eventTimeout: - description: 'Specify the expire value to transitions - to defaultCondition. When event-based conditions - do not arrive. NOTE: this is only available for - EventConditions' - type: string - stateExecTimeout: - description: Default workflow state execution timeout - (ISO 8601 duration format) + type: array + timeouts: + description: SwitchState specific timeouts properties: - single: - description: Single state execution timeout, - not including retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, - including retries (ISO 8601 duration format) + eventTimeout: + description: 'Specify the expire value to transitions + to defaultCondition. When event-based conditions + do not arrive. NOTE: this is only available + for EventConditions' type: string - required: - - total + stateExecTimeout: + description: Default workflow state execution + timeout (ISO 8601 duration format) + properties: + single: + description: Single state execution timeout, + not including retries (ISO 8601 duration + format) + type: string + total: + description: Total state execution timeout, + including retries (ISO 8601 duration format) + type: string + required: + - total + type: object type: object + required: + - defaultCondition type: object + transition: + description: Next transition of the workflow after the + time delay. + x-kubernetes-preserve-unknown-fields: true + type: + description: stateType can be any of delay, callback, + event, foreach, inject, operation, parallel, sleep, + switch + enum: + - delay + - callback + - event + - foreach + - inject + - operation + - parallel + - sleep + - switch + type: string + usedForCompensation: + description: If true, this state is used to compensate + another state. Default is false. + type: boolean required: - - defaultCondition + - name + - type type: object - transition: - description: Next transition of the workflow after the time - delay. - x-kubernetes-preserve-unknown-fields: true - type: - description: stateType can be any of delay, callback, event, - foreach, inject, operation, parallel, sleep, switch - enum: - - delay - - callback - - event - - foreach - - inject - - operation - - parallel - - sleep - - switch - type: string - usedForCompensation: - description: If true, this state is used to compensate another - state. Default is false. - type: boolean - required: - - name - - type - type: object - minItems: 1 - type: array - x-kubernetes-preserve-unknown-fields: true - timeouts: - description: Defines the workflow default timeout settings. - properties: - actionExecTimeout: - description: ActionExecTimeout Single actions definition execution - timeout duration (ISO 8601 duration format). - type: string - branchExecTimeout: - description: BranchExecTimeout Single branch execution timeout - duration (ISO 8601 duration format). - type: string - eventTimeout: - description: EventTimeout Timeout duration to wait for consuming - defined events (ISO 8601 duration format). - type: string - stateExecTimeout: - description: StateExecTimeout Total state execution timeout - (including retries) (ISO 8601 duration format). + minItems: 1 + type: array + x-kubernetes-preserve-unknown-fields: true + timeouts: + description: Defines the workflow default timeout settings. properties: - single: - description: Single state execution timeout, not including - retries (ISO 8601 duration format) - type: string - total: - description: Total state execution timeout, including - retries (ISO 8601 duration format) + actionExecTimeout: + description: ActionExecTimeout Single actions definition + execution timeout duration (ISO 8601 duration format). type: string - required: - - total - type: object - workflowExecTimeout: - description: WorkflowExecTimeout Workflow execution timeout - duration (ISO 8601 duration format). If not specified should - be 'unlimited'. - properties: - duration: - default: unlimited - description: Workflow execution timeout duration (ISO - 8601 duration format). If not specified should be 'unlimited'. + branchExecTimeout: + description: BranchExecTimeout Single branch execution + timeout duration (ISO 8601 duration format). type: string - interrupt: - description: If false, workflow instance is allowed to - finish current execution. If true, current workflow - execution is stopped immediately. Default is false. - type: boolean - runBefore: - description: Name of a workflow state to be executed before - workflow instance is terminated. + eventTimeout: + description: EventTimeout Timeout duration to wait for + consuming defined events (ISO 8601 duration format). type: string - required: - - duration + stateExecTimeout: + description: StateExecTimeout Total state execution timeout + (including retries) (ISO 8601 duration format). + properties: + single: + description: Single state execution timeout, not including + retries (ISO 8601 duration format) + type: string + total: + description: Total state execution timeout, including + retries (ISO 8601 duration format) + type: string + required: + - total + type: object + workflowExecTimeout: + description: WorkflowExecTimeout Workflow execution timeout + duration (ISO 8601 duration format). If not specified + should be 'unlimited'. + properties: + duration: + default: unlimited + description: Workflow execution timeout duration (ISO + 8601 duration format). If not specified should be + 'unlimited'. + type: string + interrupt: + description: If false, workflow instance is allowed + to finish current execution. If true, current workflow + execution is stopped immediately. Default is false. + type: boolean + runBefore: + description: Name of a workflow state to be executed + before workflow instance is terminated. + type: string + required: + - duration + type: object type: object + version: + description: Workflow version. + type: string + required: + - specVersion + - states type: object - version: - description: Workflow version. - type: string required: - - specVersion - - states + - flow type: object conditions: description: The latest available observations of a resource's current diff --git a/utils/workflow_converter.go b/utils/workflow_converter.go index c10370b3bba..c7ddb6f0e5a 100644 --- a/utils/workflow_converter.go +++ b/utils/workflow_converter.go @@ -36,16 +36,16 @@ func ToCNCFWorkflow(ctx context.Context, serverlessWorkflow *operatorapi.KogitoS if serverlessWorkflow != nil { logger = ctrllog.FromContext(ctx) - serverlessWorkflow.Spec.Workflow.ID = serverlessWorkflow.ObjectMeta.Name - serverlessWorkflow.Spec.Workflow.Key = serverlessWorkflow.ObjectMeta.Annotations[metadata.Key] - serverlessWorkflow.Spec.Workflow.Name = serverlessWorkflow.ObjectMeta.Name - serverlessWorkflow.Spec.Workflow.Description = serverlessWorkflow.ObjectMeta.Annotations[metadata.Description] - serverlessWorkflow.Spec.Workflow.Version = serverlessWorkflow.ObjectMeta.Annotations[metadata.Version] - serverlessWorkflow.Spec.Workflow.SpecVersion = extractSchemaVersion(serverlessWorkflow.APIVersion) - serverlessWorkflow.Spec.Workflow.ExpressionLang = model.ExpressionLangType(extractExpressionLang(serverlessWorkflow.ObjectMeta.Annotations)) + serverlessWorkflow.Spec.Flow.ID = serverlessWorkflow.ObjectMeta.Name + serverlessWorkflow.Spec.Flow.Key = serverlessWorkflow.ObjectMeta.Annotations[metadata.Key] + serverlessWorkflow.Spec.Flow.Name = serverlessWorkflow.ObjectMeta.Name + serverlessWorkflow.Spec.Flow.Description = serverlessWorkflow.ObjectMeta.Annotations[metadata.Description] + serverlessWorkflow.Spec.Flow.Version = serverlessWorkflow.ObjectMeta.Annotations[metadata.Version] + serverlessWorkflow.Spec.Flow.SpecVersion = extractSchemaVersion(serverlessWorkflow.APIVersion) + serverlessWorkflow.Spec.Flow.ExpressionLang = model.ExpressionLangType(extractExpressionLang(serverlessWorkflow.ObjectMeta.Annotations)) - logger.V(DebugV).Info("Created new Base Workflow with name", "name", serverlessWorkflow.Spec.Workflow.Name) - return &serverlessWorkflow.Spec.Workflow, nil + logger.V(DebugV).Info("Created new Base Workflow with name", "name", serverlessWorkflow.Spec.Flow.Name) + return &serverlessWorkflow.Spec.Flow, nil } return nil, errors.New("kogitoServerlessWorkflow is nil") }