DetectorModelProps
- class aws_cdk.aws_iotevents.DetectorModelProps(*, initial_state, description=None, detector_key=None, detector_model_name=None, evaluation_method=None, role=None)
Bases:
object
(experimental) Properties for defining an AWS IoT Events detector model.
- Parameters:
initial_state (
State
) – (experimental) The state that is entered at the creation of each detector.description (
Optional
[str
]) – (experimental) A brief description of the detector model. Default: nonedetector_key (
Optional
[str
]) – (experimental) The value used to identify a detector instance. When a device or system sends input, a new detector instance with a unique key value is created. AWS IoT Events can continue to route input to its corresponding detector instance based on this identifying information. This parameter uses a JSON-path expression to select the attribute-value pair in the message payload that is used for identification. To route the message to the correct detector instance, the device must send a message payload that contains the same attribute-value. Default: - none (single detector instance will be created and all inputs will be routed to it)detector_model_name (
Optional
[str
]) – (experimental) The name of the detector model. Default: - CloudFormation will generate a unique name of the detector modelevaluation_method (
Optional
[EventEvaluation
]) – (experimental) Information about the order in which events are evaluated and how actions are executed. When setting to SERIAL, variables are updated and event conditions are evaluated in the order that the events are defined. When setting to BATCH, variables within a state are updated and events within a state are performed only after all event conditions are evaluated. Default: EventEvaluation.BATCHrole (
Optional
[IRole
]) – (experimental) The role that grants permission to AWS IoT Events to perform its operations. Default: - a role will be created with default permissions
- 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
- description
(experimental) A brief description of the detector model.
- Default:
none
- Stability:
experimental
- detector_key
(experimental) The value used to identify a detector instance.
When a device or system sends input, a new detector instance with a unique key value is created. AWS IoT Events can continue to route input to its corresponding detector instance based on this identifying information.
This parameter uses a JSON-path expression to select the attribute-value pair in the message payload that is used for identification. To route the message to the correct detector instance, the device must send a message payload that contains the same attribute-value.
- Default:
none (single detector instance will be created and all inputs will be routed to it)
- Stability:
experimental
- detector_model_name
(experimental) The name of the detector model.
- Default:
CloudFormation will generate a unique name of the detector model
- Stability:
experimental
- evaluation_method
(experimental) Information about the order in which events are evaluated and how actions are executed.
When setting to SERIAL, variables are updated and event conditions are evaluated in the order that the events are defined. When setting to BATCH, variables within a state are updated and events within a state are performed only after all event conditions are evaluated.
- Default:
EventEvaluation.BATCH
- Stability:
experimental
- initial_state
(experimental) The state that is entered at the creation of each detector.
- Stability:
experimental
- role
(experimental) The role that grants permission to AWS IoT Events to perform its operations.
- Default:
a role will be created with default permissions
- Stability:
experimental