specification/workflow-yaml/states.md
# States
## StateDefinition
A `StateDefinition` may be defined using one of the following, depending on the desired behaviour:
* [`action`](./action.md)
* [`consumeEvent`](./consume-event.md)
* [`delay`](./delay.md)
* [`error`](./error.md)
* [`eventsAnd`](./events-and.md)
* [`eventsXor`](./events-xor.md)
* [`foreach`](./foreach.md)
* [`generateEvent`](./generate-event.md)
* [`getter`](./getter.md)
* [`noop`](./noop.md)
* [`parallel`](./parallel.md)
* [`setter`](./setter.md)
* [`switch`](./switch.md)
* [`validate`](./validate.md)