UpdateDetectorModel
Important
End of support notice: On May 20,2026, AWS will end support for AWS IoT Events. After May 20,2026, you will no longer be able to access the AWS IoT Events console or AWS IoT Events resources. For more information, see AWS IoT Events end of support.
Updates a detector model. Detectors (instances) spawned by the previous version are deleted and then re-created as new inputs arrive.
Request Syntax
POST /detector-models/detectorModelName 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",
   "evaluationMethod": "string",
   "roleArn": "string"
}URI Request Parameters
The request uses the following URI parameters.
- detectorModelName
- 
               The name of the detector model that is updated. Length Constraints: Minimum length of 1. Maximum length of 128. Pattern: ^[a-zA-Z0-9_-]+$Required: Yes 
Request Body
The request accepts the following data in JSON format.
- detectorModelDefinition
- 
               Information that defines how a detector operates. Type: DetectorModelDefinition object Required: Yes 
- detectorModelDescription
- 
               A brief description of the detector model. Type: String Length Constraints: Maximum length of 1024. Required: No 
- evaluationMethod
- 
               Information about the order in which events are evaluated and how actions are executed. Type: String Valid Values: BATCH | SERIALRequired: 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 
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. - message
- 
                        The message for the exception. 
 HTTP Status Code: 500 
- InvalidRequestException
- 
               The request was invalid. - message
- 
                        The message for the exception. 
 HTTP Status Code: 400 
- ResourceInUseException
- 
               The resource is in use. - message
- 
                        The message for the exception. 
 HTTP Status Code: 409 
- ResourceNotFoundException
- 
               The resource was not found. - message
- 
                        The message for the exception. 
 HTTP Status Code: 404 
- ServiceUnavailableException
- 
               The service is currently unavailable. - message
- 
                        The message for the exception. 
 HTTP Status Code: 503 
- ThrottlingException
- 
               The request could not be completed due to throttling. - message
- 
                        The message for the exception. 
 HTTP Status Code: 429 
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: