Skip to content

ConsumeEvent State

- id: a
  type: consumeEvent
  timeout: PT15M
  event:
    type: com.github.pull.create
    context:
      subject: '123'

ConsumeEventStateDefinition

To pause the workflow and wait until a CloudEvents event is received before proceeding, the consumeEvent is the simplest state that can be used. It is one of three states that can do so, along with eventsAnd and eventsXor.

Parameter Description Type Required
type Identifies which kind of StateDefinition is being used. In this case it must be set to consumeEvent. string yes
id An identifier unique within the workflow to this one state. string yes
log If defined, the workflow will generate a log when it commences this state. See StateLogging. Structured JQ no
metadata If defined, updates the instance's metadata. See InstanceMetadata. Structured JQ no
transform If defined, modifies the instance's data upon completing the state logic. See StateTransforms. Structured JQ no
transition Identifies which state to transition to next, referring to the next state's unique id. If undefined, this state terminates the workflow. string no
catch Defines behaviour for handling of catchable errors. []ErrorCatchDefinition no
timeout An ISO8601 duration string. string no
event Defines the criteria by which incoming CloudEvents events are evaluated to find a match. ConsumeEventDefinition yes

ConsumeEventDefinition

The StartEventDefinition is a structure shared by various event-consuming states.

Parameter Description Type Required
type Identifies which CloudEvents events can trigger the workflow by requiring an exact match to the event's own type context value. string yes
context Optional key-value pairs to further restrict what events can trigger the workflow. For each pair, incoming CloudEvents context values will be checked for a match. All pairs must find a match for the event to be accepted. The "keys" must be strings that match exactly to specific context keys, but the "values" can be "glob" patterns allowing them to match a range of possible context values. Structured JQ no

The received data of an event-triggered workflow is a JSON representation of all the received events stored under keys matching the events' respective type. For example, this CloudEvents event will result in the following data:

CloudEvents Event

{
    "specversion" : "1.0",
    "type" : "com.github.pull.create",
    "source" : "https://github.com/cloudevents/spec/pull",
    "subject" : "123",
    "id" : "A234-1234-1234",
    "time" : "2018-04-05T17:31:00Z",
    "comexampleextension1" : "value",
    "comexampleothervalue" : 5,
    "datacontenttype" : "text/xml",
    "data" : "<much wow=\"xml\"/>"
}

Input Data

{
  "com.github.pull.create": {
    "specversion" : "1.0",
    "type" : "com.github.pull.create",
    "source" : "https://github.com/cloudevents/spec/pull",
    "subject" : "123",
    "id" : "A234-1234-1234",
    "time" : "2018-04-05T17:31:00Z",
    "comexampleextension1" : "value",
    "comexampleothervalue" : 5,
    "datacontenttype" : "text/xml",
    "data" : "<much wow=\"xml\"/>"
  }
}

Back to top