# 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.8",
"maintainer_email": null,
"keywords": null,
"author": "Amazon Web Services",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/51/9f/c5984e56da268fb56b2a3d413ae18069f0814ee3cbb9e95da697877379a8/aws_cdk_aws_iotevents_alpha-2.179.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.179.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": "cf157286d8416a023463d13aa290eaede3469c530bd4c2ce3723b3356a5063d4",
"md5": "ddd2871f28c62e5598a020f44a07e15f",
"sha256": "115d92eb6666eecc312bd586846a50c7e174b80b7f9dde0f3e14f2dbf01410ed"
},
"downloads": -1,
"filename": "aws_cdk.aws_iotevents_alpha-2.179.0a0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ddd2871f28c62e5598a020f44a07e15f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.8",
"size": 82297,
"upload_time": "2025-02-18T00:34:12",
"upload_time_iso_8601": "2025-02-18T00:34:12.561314Z",
"url": "https://files.pythonhosted.org/packages/cf/15/7286d8416a023463d13aa290eaede3469c530bd4c2ce3723b3356a5063d4/aws_cdk.aws_iotevents_alpha-2.179.0a0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "519fc5984e56da268fb56b2a3d413ae18069f0814ee3cbb9e95da697877379a8",
"md5": "e423e9a96df6ec683a54d82d958b6271",
"sha256": "b901f2f2cda3c2a497482fe9991f0682a45f3463cae3c7172db580c586c9e71b"
},
"downloads": -1,
"filename": "aws_cdk_aws_iotevents_alpha-2.179.0a0.tar.gz",
"has_sig": false,
"md5_digest": "e423e9a96df6ec683a54d82d958b6271",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.8",
"size": 83421,
"upload_time": "2025-02-18T00:35:13",
"upload_time_iso_8601": "2025-02-18T00:35:13.148517Z",
"url": "https://files.pythonhosted.org/packages/51/9f/c5984e56da268fb56b2a3d413ae18069f0814ee3cbb9e95da697877379a8/aws_cdk_aws_iotevents_alpha-2.179.0a0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-18 00:35:13",
"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"
}