detector_models
Creates, updates, deletes or gets a detector_model
resource or lists detector_models
in a region
Overview
Name | detector_models |
Type | Resource |
Description | The AWS::IoTEvents::DetectorModel resource creates a detector model. You create a *detector model* (a model of your equipment or process) using *states*. For each state, you define conditional (Boolean) logic that evaluates the incoming inputs to detect significant events. When an event is detected, it can change the state or trigger custom-built or predefined actions using other AWS services. You can define additional events that trigger actions when entering or exiting a state and, optionally, when a condition is met. For more information, see [How to Use AWS IoT Events](https://docs.aws.amazon.com/iotevents/latest/developerguide/how-to-use-iotevents.html) in the *AWS IoT Events Developer Guide*. |
Id | aws.iotevents.detector_models |
Fields
Name | Datatype | Description |
---|---|---|
detector_model_definition | object | Information that defines how a detector operates. |
detector_model_description | string | A brief description of the detector model. |
detector_model_name | string | The name of the detector model. |
evaluation_method | string | Information about the order in which events are evaluated and how actions are executed. |
key | string | 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. |
role_arn | string | The ARN of the role that grants permission to AWS IoT Events to perform its operations. |
tags | array | An array of key-value pairs to apply to this resource. For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). |
region | string | AWS region. |
Methods
Name | Accessible by | Required Params |
---|---|---|
create_resource | INSERT | DetectorModelDefinition, RoleArn, region |
delete_resource | DELETE | data__Identifier, region |
update_resource | UPDATE | data__Identifier, data__PatchDocument, region |
list_resources | SELECT | region |
get_resource | SELECT | data__Identifier, region |
SELECT
examples
Gets all detector_models
in a region.
SELECT
region,
detector_model_definition,
detector_model_description,
detector_model_name,
evaluation_method,
key,
role_arn,
tags
FROM aws.iotevents.detector_models
WHERE region = 'us-east-1';
Gets all properties from an individual detector_model
.
SELECT
region,
detector_model_definition,
detector_model_description,
detector_model_name,
evaluation_method,
key,
role_arn,
tags
FROM aws.iotevents.detector_models
WHERE region = 'us-east-1' AND data__Identifier = '<DetectorModelName>';
INSERT
example
Use the following StackQL query and manifest file to create a new detector_model
resource, using stack-deploy
.
- Required Properties
- All Properties
- Manifest
/*+ create */
INSERT INTO aws.iotevents.detector_models (
DetectorModelDefinition,
RoleArn,
region
)
SELECT
'{{ DetectorModelDefinition }}',
'{{ RoleArn }}',
'{{ region }}';
/*+ create */
INSERT INTO aws.iotevents.detector_models (
DetectorModelDefinition,
DetectorModelDescription,
DetectorModelName,
EvaluationMethod,
Key,
RoleArn,
Tags,
region
)
SELECT
'{{ DetectorModelDefinition }}',
'{{ DetectorModelDescription }}',
'{{ DetectorModelName }}',
'{{ EvaluationMethod }}',
'{{ Key }}',
'{{ RoleArn }}',
'{{ Tags }}',
'{{ region }}';
version: 1
name: stack name
description: stack description
providers:
- aws
globals:
- name: region
value: '{{ vars.AWS_REGION }}'
resources:
- name: detector_model
props:
- name: DetectorModelDefinition
value:
InitialStateName: '{{ InitialStateName }}'
States:
- OnEnter:
Events:
- Actions:
- ClearTimer:
TimerName: '{{ TimerName }}'
DynamoDB:
HashKeyField: '{{ HashKeyField }}'
HashKeyType: '{{ HashKeyType }}'
HashKeyValue: '{{ HashKeyValue }}'
Operation: '{{ Operation }}'
Payload:
ContentExpression: '{{ ContentExpression }}'
Type: '{{ Type }}'
PayloadField: '{{ PayloadField }}'
RangeKeyField: '{{ RangeKeyField }}'
RangeKeyType: '{{ RangeKeyType }}'
RangeKeyValue: '{{ RangeKeyValue }}'
TableName: '{{ TableName }}'
DynamoDBv2:
Payload: null
TableName: '{{ TableName }}'
Firehose:
DeliveryStreamName: '{{ DeliveryStreamName }}'
Payload: null
Separator: '{{ Separator }}'
IotEvents:
InputName: '{{ InputName }}'
Payload: null
IotSiteWise:
AssetId: '{{ AssetId }}'
EntryId: '{{ EntryId }}'
PropertyAlias: '{{ PropertyAlias }}'
PropertyId: '{{ PropertyId }}'
PropertyValue:
Quality: '{{ Quality }}'
Timestamp:
OffsetInNanos: '{{ OffsetInNanos }}'
TimeInSeconds: '{{ TimeInSeconds }}'
Value:
BooleanValue: '{{ BooleanValue }}'
DoubleValue: '{{ DoubleValue }}'
IntegerValue: '{{ IntegerValue }}'
StringValue: '{{ StringValue }}'
IotTopicPublish:
MqttTopic: '{{ MqttTopic }}'
Payload: null
Lambda:
FunctionArn: '{{ FunctionArn }}'
Payload: null
ResetTimer:
TimerName: '{{ TimerName }}'
SetTimer:
DurationExpression: '{{ DurationExpression }}'
Seconds: '{{ Seconds }}'
TimerName: '{{ TimerName }}'
SetVariable:
Value: '{{ Value }}'
VariableName: '{{ VariableName }}'
Sns:
Payload: null
TargetArn: '{{ TargetArn }}'
Sqs:
Payload: null
QueueUrl: '{{ QueueUrl }}'
UseBase64: '{{ UseBase64 }}'
Condition: '{{ Condition }}'
EventName: '{{ EventName }}'
OnExit:
Events:
- null
OnInput:
Events:
- null
TransitionEvents:
- Actions:
- null
Condition: '{{ Condition }}'
EventName: '{{ EventName }}'
NextState: '{{ NextState }}'
StateName: '{{ StateName }}'
- name: DetectorModelDescription
value: '{{ DetectorModelDescription }}'
- name: DetectorModelName
value: '{{ DetectorModelName }}'
- name: EvaluationMethod
value: '{{ EvaluationMethod }}'
- name: Key
value: '{{ Key }}'
- name: RoleArn
value: '{{ RoleArn }}'
- name: Tags
value:
- Key: '{{ Key }}'
Value: '{{ Value }}'
DELETE
example
/*+ delete */
DELETE FROM aws.iotevents.detector_models
WHERE data__Identifier = '<DetectorModelName>'
AND region = 'us-east-1';
Permissions
To operate on the detector_models
resource, the following permissions are required:
Create
iotevents:CreateDetectorModel,
iotevents:UpdateInputRouting,
iotevents:DescribeDetectorModel,
iotevents:ListTagsForResource,
iotevents:TagResource,
iam:PassRole
Read
iotevents:DescribeDetectorModel,
iotevents:ListTagsForResource
Update
iotevents:UpdateDetectorModel,
iotevents:UpdateInputRouting,
iotevents:DescribeDetectorModel,
iotevents:ListTagsForResource,
iotevents:UntagResource,
iotevents:TagResource,
iam:PassRole
Delete
iotevents:DeleteDetectorModel,
iotevents:DescribeDetectorModel
List
iotevents:ListDetectorModels