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 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.
- 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: