# AWS::IoTEvents Construct Library
<!--BEGIN STABILITY BANNER-->---

> The APIs of higher level constructs in this module are experimental and under active development.
> They are subject to non-backward compatible changes or removal in any future version. These are
> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be
> announced in the release notes. This means that while you may use them, you may need to update
> your source code when upgrading to a newer version of this package.
---
<!--END STABILITY BANNER-->
AWS IoT Events enables you to monitor your equipment or device fleets for
failures or changes in operation, and to trigger actions when such events
occur.
## `DetectorModel`
The following example creates an AWS IoT Events detector model to your stack.
The detector model need a reference to at least one AWS IoT Events input.
AWS IoT Events inputs enable the detector to get MQTT payload values from IoT Core rules.
You can define built-in actions to use a timer or set a variable, or send data to other AWS resources.
See also [@aws-cdk/aws-iotevents-actions-alpha](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-iotevents-actions-alpha-readme.html) for other actions.
```python
import aws_cdk.aws_iotevents_alpha as iotevents
import aws_cdk.aws_iotevents_actions_alpha 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
)
```
To grant permissions to put messages in the input,
you can use the `grantWrite()` method:
```python
import aws_cdk.aws_iam as iam
import aws_cdk.aws_iotevents_alpha as iotevents
# grantable: iam.IGrantable
input = iotevents.Input.from_input_name(self, "MyInput", "my_input")
input.grant_write(grantable)
```
Raw data
{
"_id": null,
"home_page": "https://github.com/aws/aws-cdk",
"name": "aws-cdk.aws-iotevents-alpha",
"maintainer": null,
"docs_url": null,
"requires_python": "~=3.9",
"maintainer_email": null,
"keywords": null,
"author": "Amazon Web Services",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/55/be/1b0ac730f1198969eccc12d3fc8b53299e9244f9e88ce2afa3d7a91167dc/aws_cdk_aws_iotevents_alpha-2.206.0a0.tar.gz",
"platform": null,
"description": "# AWS::IoTEvents Construct Library\n\n<!--BEGIN STABILITY BANNER-->---\n\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n<!--END STABILITY BANNER-->\n\nAWS IoT Events enables you to monitor your equipment or device fleets for\nfailures or changes in operation, and to trigger actions when such events\noccur.\n\n## `DetectorModel`\n\nThe following example creates an AWS IoT Events detector model to your stack.\nThe detector model need a reference to at least one AWS IoT Events input.\nAWS IoT Events inputs enable the detector to get MQTT payload values from IoT Core rules.\n\nYou can define built-in actions to use a timer or set a variable, or send data to other AWS resources.\nSee also [@aws-cdk/aws-iotevents-actions-alpha](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-iotevents-actions-alpha-readme.html) for other actions.\n\n```python\nimport aws_cdk.aws_iotevents_alpha as iotevents\nimport aws_cdk.aws_iotevents_actions_alpha as actions\nimport aws_cdk.aws_lambda as lambda_\n\n# func: lambda.IFunction\n\n\ninput = iotevents.Input(self, \"MyInput\",\n input_name=\"my_input\", # optional\n attribute_json_paths=[\"payload.deviceId\", \"payload.temperature\"]\n)\n\nwarm_state = iotevents.State(\n state_name=\"warm\",\n on_enter=[iotevents.Event(\n event_name=\"test-enter-event\",\n condition=iotevents.Expression.current_input(input),\n actions=[actions.LambdaInvokeAction(func)]\n )],\n on_input=[iotevents.Event( # optional\n event_name=\"test-input-event\",\n actions=[actions.LambdaInvokeAction(func)])],\n on_exit=[iotevents.Event( # optional\n event_name=\"test-exit-event\",\n actions=[actions.LambdaInvokeAction(func)])]\n)\ncold_state = iotevents.State(\n state_name=\"cold\"\n)\n\n# transit to coldState when temperature is less than 15\nwarm_state.transition_to(cold_state,\n event_name=\"to_coldState\", # optional property, default by combining the names of the States\n when=iotevents.Expression.lt(\n iotevents.Expression.input_attribute(input, \"payload.temperature\"),\n iotevents.Expression.from_string(\"15\")),\n executing=[actions.LambdaInvokeAction(func)]\n)\n# transit to warmState when temperature is greater than or equal to 15\ncold_state.transition_to(warm_state,\n when=iotevents.Expression.gte(\n iotevents.Expression.input_attribute(input, \"payload.temperature\"),\n iotevents.Expression.from_string(\"15\"))\n)\n\niotevents.DetectorModel(self, \"MyDetectorModel\",\n detector_model_name=\"test-detector-model\", # optional\n description=\"test-detector-model-description\", # optional property, default is none\n evaluation_method=iotevents.EventEvaluation.SERIAL, # optional property, default is iotevents.EventEvaluation.BATCH\n detector_key=\"payload.deviceId\", # optional property, default is none and single detector instance will be created and all inputs will be routed to it\n initial_state=warm_state\n)\n```\n\nTo grant permissions to put messages in the input,\nyou can use the `grantWrite()` method:\n\n```python\nimport aws_cdk.aws_iam as iam\nimport aws_cdk.aws_iotevents_alpha as iotevents\n\n# grantable: iam.IGrantable\n\ninput = iotevents.Input.from_input_name(self, \"MyInput\", \"my_input\")\n\ninput.grant_write(grantable)\n```\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "The CDK Construct Library for AWS::IoTEvents",
"version": "2.206.0a0",
"project_urls": {
"Homepage": "https://github.com/aws/aws-cdk",
"Source": "https://github.com/aws/aws-cdk.git"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "ce57d8edeeb19018c2a292ea898598e1e040a8759ac5ce3521a58af62ae4e971",
"md5": "442739d59fde010631c11d3248cabf35",
"sha256": "7ea1acd8de1444ea05c8be453845a32131214e94cb533055018107d50f11d2a7"
},
"downloads": -1,
"filename": "aws_cdk_aws_iotevents_alpha-2.206.0a0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "442739d59fde010631c11d3248cabf35",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.9",
"size": 83843,
"upload_time": "2025-07-16T12:48:07",
"upload_time_iso_8601": "2025-07-16T12:48:07.389102Z",
"url": "https://files.pythonhosted.org/packages/ce/57/d8edeeb19018c2a292ea898598e1e040a8759ac5ce3521a58af62ae4e971/aws_cdk_aws_iotevents_alpha-2.206.0a0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "55be1b0ac730f1198969eccc12d3fc8b53299e9244f9e88ce2afa3d7a91167dc",
"md5": "7acc7a09a84bf794396b0d8cdd44b430",
"sha256": "9eee10a793021be99f71fd12d949df4c6b9ad87094330615ed5aec771717ecea"
},
"downloads": -1,
"filename": "aws_cdk_aws_iotevents_alpha-2.206.0a0.tar.gz",
"has_sig": false,
"md5_digest": "7acc7a09a84bf794396b0d8cdd44b430",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.9",
"size": 84904,
"upload_time": "2025-07-16T12:48:47",
"upload_time_iso_8601": "2025-07-16T12:48:47.514416Z",
"url": "https://files.pythonhosted.org/packages/55/be/1b0ac730f1198969eccc12d3fc8b53299e9244f9e88ce2afa3d7a91167dc/aws_cdk_aws_iotevents_alpha-2.206.0a0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-16 12:48:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "aws",
"github_project": "aws-cdk",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "aws-cdk.aws-iotevents-alpha"
}