# AWS::IoTEvents Construct Library
<!--BEGIN STABILITY BANNER-->---
![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)
> 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/67/22/f2c8c0589d859e7437bda7c606b0c5b311df5e761aa37058f5006575b4f0/aws_cdk_aws_iotevents_alpha-2.170.0a0.tar.gz",
"platform": null,
"description": "# AWS::IoTEvents Construct Library\n\n<!--BEGIN STABILITY BANNER-->---\n\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\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.170.0a0",
"project_urls": {
"Homepage": "https://github.com/aws/aws-cdk",
"Source": "https://github.com/aws/aws-cdk.git"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9da5a09fa426e08ed257615f809b431ea4219a02341b9f6e80fdfe10ea24fcf2",
"md5": "066e2e17d06f7ed9cdb72b1d40636812",
"sha256": "c6f31d1c2434c733992b3067d0ce7c4e37af33db534de0f219c84e27f76533a9"
},
"downloads": -1,
"filename": "aws_cdk.aws_iotevents_alpha-2.170.0a0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "066e2e17d06f7ed9cdb72b1d40636812",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "~=3.8",
"size": 82031,
"upload_time": "2024-11-22T04:41:38",
"upload_time_iso_8601": "2024-11-22T04:41:38.556678Z",
"url": "https://files.pythonhosted.org/packages/9d/a5/a09fa426e08ed257615f809b431ea4219a02341b9f6e80fdfe10ea24fcf2/aws_cdk.aws_iotevents_alpha-2.170.0a0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6722f2c8c0589d859e7437bda7c606b0c5b311df5e761aa37058f5006575b4f0",
"md5": "232c27c7afb94ddcce4970dc8bc69501",
"sha256": "9ec448c1c2e28fb3cb302312161c34dc23502ea27212f71c6d49ca085fd63306"
},
"downloads": -1,
"filename": "aws_cdk_aws_iotevents_alpha-2.170.0a0.tar.gz",
"has_sig": false,
"md5_digest": "232c27c7afb94ddcce4970dc8bc69501",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.8",
"size": 83137,
"upload_time": "2024-11-22T04:42:24",
"upload_time_iso_8601": "2024-11-22T04:42:24.374773Z",
"url": "https://files.pythonhosted.org/packages/67/22/f2c8c0589d859e7437bda7c606b0c5b311df5e761aa37058f5006575b4f0/aws_cdk_aws_iotevents_alpha-2.170.0a0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-22 04:42:24",
"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"
}