A collection of connected states.
A StateGraph is used to keep track of all states that are connected (have transitions between them). It does not include the substatemachines in a Parallel's branches: those are their own StateGraphs, but the graphs themselves have a hierarchical relationship as well.
By assigning states to a definintive StateGraph, we verify that no state machines are constructed. In particular:
- Every state object can only ever be in 1 StateGraph, and not inadvertently be used in two graphs.
- Every stateId must be unique across all states in the entire state machine.
All policy statements in all states in all substatemachines are bubbled so that the top-level StateMachine instantiation can read them all and add them to the IAM Role.
You do not need to instantiate this class; it is used internally.
new StateGraph(startState: State, graphDescription: string)
|policy||The accumulated policy statements.|
|timeout?||Set a timeout to render into the graph JSON.|
The accumulated policy statements.
(optional, default: No timeout)
Set a timeout to render into the graph JSON.
Read/write. Only makes sense on the top-level graph, subgraphs do not support this feature.
|register||Register a Policy Statement used by states in this graph.|
|register||Register a state as part of this graph.|
|register||Register this graph as a child of the given graph.|
|to||Return the Amazon States Language JSON for this graph.|
|to||Return a string description of this graph.|
public registerPolicyStatement(statement: PolicyStatement): void
Register a Policy Statement used by states in this graph.
public registerState(state: State): void
Register a state as part of this graph.
Called by State.bindToGraph().
public registerSuperGraph(graph: StateGraph): void
Register this graph as a child of the given graph.
Resource changes will be bubbled up to the given graph.
public toGraphJson(): json
Return the Amazon States Language JSON for this graph.
public toString(): string
Return a string description of this graph.