TransitionOptions

class aws_cdk.aws_iotevents.TransitionOptions(*, when, event_name=None, executing=None)

Bases: object

(experimental) Properties for options of state transition.

Parameters:
  • when (Expression) – (experimental) The condition that is used to determine to cause the state transition and the actions. When this was evaluated to true, the state transition and the actions are triggered.

  • event_name (Optional[str]) – (experimental) The name of the event. Default: string combining the names of the States as ${originStateName}_to_${targetStateName}

  • executing (Optional[Sequence[IAction]]) – (experimental) The actions to be performed with the transition. Default: - no actions will be performed

Stability:

experimental

ExampleMetadata:

infused

Example:

import aws_cdk.aws_iotevents as iotevents
import aws_cdk.aws_iotevents_actions as actions
import aws_cdk.aws_lambda as lambda_

# func: lambda.IFunction


input = iotevents.Input(self, "MyInput",
    input_name="my_input",  # optional
    attribute_json_paths=["payload.deviceId", "payload.temperature"]
)

warm_state = iotevents.State(
    state_name="warm",
    on_enter=[iotevents.Event(
        event_name="test-enter-event",
        condition=iotevents.Expression.current_input(input),
        actions=[actions.LambdaInvokeAction(func)]
    )],
    on_input=[iotevents.Event( # optional
        event_name="test-input-event",
        actions=[actions.LambdaInvokeAction(func)])],
    on_exit=[iotevents.Event( # optional
        event_name="test-exit-event",
        actions=[actions.LambdaInvokeAction(func)])]
)
cold_state = iotevents.State(
    state_name="cold"
)

# transit to coldState when temperature is less than 15
warm_state.transition_to(cold_state,
    event_name="to_coldState",  # optional property, default by combining the names of the States
    when=iotevents.Expression.lt(
        iotevents.Expression.input_attribute(input, "payload.temperature"),
        iotevents.Expression.from_string("15")),
    executing=[actions.LambdaInvokeAction(func)]
)
# transit to warmState when temperature is greater than or equal to 15
cold_state.transition_to(warm_state,
    when=iotevents.Expression.gte(
        iotevents.Expression.input_attribute(input, "payload.temperature"),
        iotevents.Expression.from_string("15"))
)

iotevents.DetectorModel(self, "MyDetectorModel",
    detector_model_name="test-detector-model",  # optional
    description="test-detector-model-description",  # optional property, default is none
    evaluation_method=iotevents.EventEvaluation.SERIAL,  # optional property, default is iotevents.EventEvaluation.BATCH
    detector_key="payload.deviceId",  # optional property, default is none and single detector instance will be created and all inputs will be routed to it
    initial_state=warm_state
)

Attributes

event_name

(experimental) The name of the event.

Default:

string combining the names of the States as ${originStateName}_to_${targetStateName}

Stability:

experimental

executing

(experimental) The actions to be performed with the transition.

Default:
  • no actions will be performed

Stability:

experimental

when

(experimental) The condition that is used to determine to cause the state transition and the actions.

When this was evaluated to true, the state transition and the actions are triggered.

Stability:

experimental