CreateDetectorModel - Amazon IoT Events
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

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" }, "dynamoDB": { "hashKeyField": "string", "hashKeyType": "string", "hashKeyValue": "string", "operation": "string", "payload": { "contentExpression": "string", "type": "string" }, "payloadField": "string", "rangeKeyField": "string", "rangeKeyType": "string", "rangeKeyValue": "string", "tableName": "string" }, "dynamoDBv2": { "payload": { "contentExpression": "string", "type": "string" }, "tableName": "string" }, "firehose": { "deliveryStreamName": "string", "payload": { "contentExpression": "string", "type": "string" }, "separator": "string" }, "iotEvents": { "inputName": "string", "payload": { "contentExpression": "string", "type": "string" } }, "iotSiteWise": { "assetId": "string", "entryId": "string", "propertyAlias": "string", "propertyId": "string", "propertyValue": { "quality": "string", "timestamp": { "offsetInNanos": "string", "timeInSeconds": "string" }, "value": { "booleanValue": "string", "doubleValue": "string", "integerValue": "string", "stringValue": "string" } } }, "iotTopicPublish": { "mqttTopic": "string", "payload": { "contentExpression": "string", "type": "string" } }, "lambda": { "functionArn": "string", "payload": { "contentExpression": "string", "type": "string" } }, "resetTimer": { "timerName": "string" }, "setTimer": { "durationExpression": "string", "seconds": number, "timerName": "string" }, "setVariable": { "value": "string", "variableName": "string" }, "sns": { "payload": { "contentExpression": "string", "type": "string" }, "targetArn": "string" }, "sqs": { "payload": { "contentExpression": "string", "type": "string" }, "queueUrl": "string", "useBase64": boolean } } ], "condition": "string", "eventName": "string" } ] }, "onExit": { "events": [ { "actions": [ { "clearTimer": { "timerName": "string" }, "dynamoDB": { "hashKeyField": "string", "hashKeyType": "string", "hashKeyValue": "string", "operation": "string", "payload": { "contentExpression": "string", "type": "string" }, "payloadField": "string", "rangeKeyField": "string", "rangeKeyType": "string", "rangeKeyValue": "string", "tableName": "string" }, "dynamoDBv2": { "payload": { "contentExpression": "string", "type": "string" }, "tableName": "string" }, "firehose": { "deliveryStreamName": "string", "payload": { "contentExpression": "string", "type": "string" }, "separator": "string" }, "iotEvents": { "inputName": "string", "payload": { "contentExpression": "string", "type": "string" } }, "iotSiteWise": { "assetId": "string", "entryId": "string", "propertyAlias": "string", "propertyId": "string", "propertyValue": { "quality": "string", "timestamp": { "offsetInNanos": "string", "timeInSeconds": "string" }, "value": { "booleanValue": "string", "doubleValue": "string", "integerValue": "string", "stringValue": "string" } } }, "iotTopicPublish": { "mqttTopic": "string", "payload": { "contentExpression": "string", "type": "string" } }, "lambda": { "functionArn": "string", "payload": { "contentExpression": "string", "type": "string" } }, "resetTimer": { "timerName": "string" }, "setTimer": { "durationExpression": "string", "seconds": number, "timerName": "string" }, "setVariable": { "value": "string", "variableName": "string" }, "sns": { "payload": { "contentExpression": "string", "type": "string" }, "targetArn": "string" }, "sqs": { "payload": { "contentExpression": "string", "type": "string" }, "queueUrl": "string", "useBase64": boolean } } ], "condition": "string", "eventName": "string" } ] }, "onInput": { "events": [ { "actions": [ { "clearTimer": { "timerName": "string" }, "dynamoDB": { "hashKeyField": "string", "hashKeyType": "string", "hashKeyValue": "string", "operation": "string", "payload": { "contentExpression": "string", "type": "string" }, "payloadField": "string", "rangeKeyField": "string", "rangeKeyType": "string", "rangeKeyValue": "string", "tableName": "string" }, "dynamoDBv2": { "payload": { "contentExpression": "string", "type": "string" }, "tableName": "string" }, "firehose": { "deliveryStreamName": "string", "payload": { "contentExpression": "string", "type": "string" }, "separator": "string" }, "iotEvents": { "inputName": "string", "payload": { "contentExpression": "string", "type": "string" } }, "iotSiteWise": { "assetId": "string", "entryId": "string", "propertyAlias": "string", "propertyId": "string", "propertyValue": { "quality": "string", "timestamp": { "offsetInNanos": "string", "timeInSeconds": "string" }, "value": { "booleanValue": "string", "doubleValue": "string", "integerValue": "string", "stringValue": "string" } } }, "iotTopicPublish": { "mqttTopic": "string", "payload": { "contentExpression": "string", "type": "string" } }, "lambda": { "functionArn": "string", "payload": { "contentExpression": "string", "type": "string" } }, "resetTimer": { "timerName": "string" }, "setTimer": { "durationExpression": "string", "seconds": number, "timerName": "string" }, "setVariable": { "value": "string", "variableName": "string" }, "sns": { "payload": { "contentExpression": "string", "type": "string" }, "targetArn": "string" }, "sqs": { "payload": { "contentExpression": "string", "type": "string" }, "queueUrl": "string", "useBase64": boolean } } ], "condition": "string", "eventName": "string" } ], "transitionEvents": [ { "actions": [ { "clearTimer": { "timerName": "string" }, "dynamoDB": { "hashKeyField": "string", "hashKeyType": "string", "hashKeyValue": "string", "operation": "string", "payload": { "contentExpression": "string", "type": "string" }, "payloadField": "string", "rangeKeyField": "string", "rangeKeyType": "string", "rangeKeyValue": "string", "tableName": "string" }, "dynamoDBv2": { "payload": { "contentExpression": "string", "type": "string" }, "tableName": "string" }, "firehose": { "deliveryStreamName": "string", "payload": { "contentExpression": "string", "type": "string" }, "separator": "string" }, "iotEvents": { "inputName": "string", "payload": { "contentExpression": "string", "type": "string" } }, "iotSiteWise": { "assetId": "string", "entryId": "string", "propertyAlias": "string", "propertyId": "string", "propertyValue": { "quality": "string", "timestamp": { "offsetInNanos": "string", "timeInSeconds": "string" }, "value": { "booleanValue": "string", "doubleValue": "string", "integerValue": "string", "stringValue": "string" } } }, "iotTopicPublish": { "mqttTopic": "string", "payload": { "contentExpression": "string", "type": "string" } }, "lambda": { "functionArn": "string", "payload": { "contentExpression": "string", "type": "string" } }, "resetTimer": { "timerName": "string" }, "setTimer": { "durationExpression": "string", "seconds": number, "timerName": "string" }, "setVariable": { "value": "string", "variableName": "string" }, "sns": { "payload": { "contentExpression": "string", "type": "string" }, "targetArn": "string" }, "sqs": { "payload": { "contentExpression": "string", "type": "string" }, "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 1024.

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

Information about the order in which events are evaluated and how actions are executed.

Default: BATCH

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 in the message payload of each input to specify the attribute-value pair 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 Amazon 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 Amazon SDKs, see the following: