AWS IoT Events
API Reference


Creates a detector model.

Request Syntax

POST /detector-models HTTP/1.1 Content-type: application/json { "detectorModelDefinition": { "initialStateName": "string", "states": [ { "onEnter": { "events": [ { "actions": [ { "clearTimer": { "timerName": "string" }, "firehose": { "deliveryStreamName": "string", "separator": "string" }, "iotEvents": { "inputName": "string" }, "iotTopicPublish": { "mqttTopic": "string" }, "lambda": { "functionArn": "string" }, "resetTimer": { "timerName": "string" }, "setTimer": { "seconds": number, "timerName": "string" }, "setVariable": { "value": "string", "variableName": "string" }, "sns": { "targetArn": "string" }, "sqs": { "queueUrl": "string", "useBase64": boolean } } ], "condition": "string", "eventName": "string" } ] }, "onExit": { "events": [ { "actions": [ { "clearTimer": { "timerName": "string" }, "firehose": { "deliveryStreamName": "string", "separator": "string" }, "iotEvents": { "inputName": "string" }, "iotTopicPublish": { "mqttTopic": "string" }, "lambda": { "functionArn": "string" }, "resetTimer": { "timerName": "string" }, "setTimer": { "seconds": number, "timerName": "string" }, "setVariable": { "value": "string", "variableName": "string" }, "sns": { "targetArn": "string" }, "sqs": { "queueUrl": "string", "useBase64": boolean } } ], "condition": "string", "eventName": "string" } ] }, "onInput": { "events": [ { "actions": [ { "clearTimer": { "timerName": "string" }, "firehose": { "deliveryStreamName": "string", "separator": "string" }, "iotEvents": { "inputName": "string" }, "iotTopicPublish": { "mqttTopic": "string" }, "lambda": { "functionArn": "string" }, "resetTimer": { "timerName": "string" }, "setTimer": { "seconds": number, "timerName": "string" }, "setVariable": { "value": "string", "variableName": "string" }, "sns": { "targetArn": "string" }, "sqs": { "queueUrl": "string", "useBase64": boolean } } ], "condition": "string", "eventName": "string" } ], "transitionEvents": [ { "actions": [ { "clearTimer": { "timerName": "string" }, "firehose": { "deliveryStreamName": "string", "separator": "string" }, "iotEvents": { "inputName": "string" }, "iotTopicPublish": { "mqttTopic": "string" }, "lambda": { "functionArn": "string" }, "resetTimer": { "timerName": "string" }, "setTimer": { "seconds": number, "timerName": "string" }, "setVariable": { "value": "string", "variableName": "string" }, "sns": { "targetArn": "string" }, "sqs": { "queueUrl": "string", "useBase64": boolean } } ], "condition": "string", "eventName": "string", "nextState": "string" } ] }, "stateName": "string" } ] }, "detectorModelDescription": "string", "detectorModelName": "string", "evaluationMethod": "string", "key": "string", "roleArn": "string", "tags": [ { "key": "string", "value": "string" } ] }

URI Request Parameters

The request does not use any URI parameters.

Request Body

The request accepts the following data in JSON format.


Information that defines how the detectors operate.

Type: DetectorModelDefinition object

Required: Yes


A brief description of the detector model.

Type: String

Length Constraints: Maximum length of 128.

Required: No


The name of the detector model.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 128.

Pattern: ^[a-zA-Z0-9_-]+$

Required: Yes


When set to SERIAL, variables are updated and event conditions evaluated in the order that the events are defined. When set to BATCH, variables are updated and events performed only after all event conditions are evaluated. BATCH is the default.

Type: String

Valid Values: BATCH | SERIAL

Required: No


The input attribute key used to identify a device or system to create a detector (an instance of the detector model) and then to route each input received to the appropriate detector (instance). This parameter uses a JSON-path expression to specify the attribute-value pair in the message payload of each input that is used to identify the device associated with the input.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 128.

Pattern: ^((`[\w\- ]+`)|([\w\-]+))(\.((`[\w- ]+`)|([\w\-]+)))*$

Required: No


The ARN of the role that grants permission to AWS IoT Events to perform its operations.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 2048.

Required: Yes


Metadata that can be used to manage the detector model.

Type: Array of Tag objects

Required: No

Response Syntax

HTTP/1.1 200 Content-type: application/json { "detectorModelConfiguration": { "creationTime": number, "detectorModelArn": "string", "detectorModelDescription": "string", "detectorModelName": "string", "detectorModelVersion": "string", "evaluationMethod": "string", "key": "string", "lastUpdateTime": number, "roleArn": "string", "status": "string" } }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.


Information about how the detector model is configured.

Type: DetectorModelConfiguration object


For information about the errors that are common to all actions, see Common Errors.


An internal failure occurred.

HTTP Status Code: 500


The request was invalid.

HTTP Status Code: 400


A limit was exceeded.

HTTP Status Code: 410


The resource already exists.

HTTP Status Code: 409


The resource is in use.

HTTP Status Code: 409


The service is currently unavailable.

HTTP Status Code: 503


The request could not be completed due to throttling.

HTTP Status Code: 429

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: