AWS IoT Events
API Reference

CreateDetectorModel

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.

detectorModelDefinition

Information that defines how the detectors operate.

Type: DetectorModelDefinition object

Required: Yes

detectorModelDescription

A brief description of the detector model.

Type: String

Length Constraints: Maximum length of 128.

Required: No

detectorModelName

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

evaluationMethod

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

key

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

roleArn

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

tags

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.

detectorModelConfiguration

Information about how the detector model is configured.

Type: DetectorModelConfiguration object

Errors

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

InternalFailureException

An internal failure occurred.

HTTP Status Code: 500

InvalidRequestException

The request was invalid.

HTTP Status Code: 400

LimitExceededException

A limit was exceeded.

HTTP Status Code: 410

ResourceAlreadyExistsException

The resource already exists.

HTTP Status Code: 409

ResourceInUseException

The resource is in use.

HTTP Status Code: 409

ServiceUnavailableException

The service is currently unavailable.

HTTP Status Code: 503

ThrottlingException

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: