

# UpdateDetectorModel
<a name="API_UpdateDetectorModel"></a>

**Important**  
End of support notice: On May 20,2026, Amazon will end support for Amazon IoT Events. After May 20,2026, you will no longer be able to access the Amazon IoT Events console or Amazon IoT Events resources. For more information, see [Amazon IoT Events end of support](https://docs.amazonaws.cn/iotevents/latest/developerguide/iotevents-end-of-support.html). 

Updates a detector model. Detectors (instances) spawned by the previous version are deleted and then re-created as new inputs arrive.

## Request Syntax
<a name="API_UpdateDetectorModel_RequestSyntax"></a>

```
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
<a name="API_UpdateDetectorModel_RequestParameters"></a>

The request uses the following URI parameters.

 ** [detectorModelName](#API_UpdateDetectorModel_RequestSyntax) **   <a name="iotevents-UpdateDetectorModel-request-uri-detectorModelName"></a>
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
<a name="API_UpdateDetectorModel_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [detectorModelDefinition](#API_UpdateDetectorModel_RequestSyntax) **   <a name="iotevents-UpdateDetectorModel-request-detectorModelDefinition"></a>
Information that defines how a detector operates.  
Type: [DetectorModelDefinition](API_DetectorModelDefinition.md) object  
Required: Yes

 ** [detectorModelDescription](#API_UpdateDetectorModel_RequestSyntax) **   <a name="iotevents-UpdateDetectorModel-request-detectorModelDescription"></a>
A brief description of the detector model.  
Type: String  
Length Constraints: Maximum length of 1024.  
Required: No

 ** [evaluationMethod](#API_UpdateDetectorModel_RequestSyntax) **   <a name="iotevents-UpdateDetectorModel-request-evaluationMethod"></a>
Information about the order in which events are evaluated and how actions are executed.   
Type: String  
Valid Values: `BATCH | SERIAL`   
Required: No

 ** [roleArn](#API_UpdateDetectorModel_RequestSyntax) **   <a name="iotevents-UpdateDetectorModel-request-roleArn"></a>
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

## Response Syntax
<a name="API_UpdateDetectorModel_ResponseSyntax"></a>

```
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
<a name="API_UpdateDetectorModel_ResponseElements"></a>

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](#API_UpdateDetectorModel_ResponseSyntax) **   <a name="iotevents-UpdateDetectorModel-response-detectorModelConfiguration"></a>
Information about how the detector model is configured.  
Type: [DetectorModelConfiguration](API_DetectorModelConfiguration.md) object

## Errors
<a name="API_UpdateDetectorModel_Errors"></a>

For information about the errors that are common to all actions, see [Common Error Types](CommonErrors.md).

 ** 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
<a name="API_UpdateDetectorModel_SeeAlso"></a>

For more information about using this API in one of the language-specific Amazon SDKs, see the following:
+  [Amazon Command Line Interface V2](https://docs.amazonaws.cn/goto/cli2/iotevents-2018-07-27/UpdateDetectorModel) 
+  [Amazon SDK for .NET V4](https://docs.amazonaws.cn/goto/DotNetSDKV4/iotevents-2018-07-27/UpdateDetectorModel) 
+  [Amazon SDK for C\$1\$1](https://docs.amazonaws.cn/goto/SdkForCpp/iotevents-2018-07-27/UpdateDetectorModel) 
+  [Amazon SDK for Go v2](https://docs.amazonaws.cn/goto/SdkForGoV2/iotevents-2018-07-27/UpdateDetectorModel) 
+  [Amazon SDK for Java V2](https://docs.amazonaws.cn/goto/SdkForJavaV2/iotevents-2018-07-27/UpdateDetectorModel) 
+  [Amazon SDK for JavaScript V3](https://docs.amazonaws.cn/goto/SdkForJavaScriptV3/iotevents-2018-07-27/UpdateDetectorModel) 
+  [Amazon SDK for Kotlin](https://docs.amazonaws.cn/goto/SdkForKotlin/iotevents-2018-07-27/UpdateDetectorModel) 
+  [Amazon SDK for PHP V3](https://docs.amazonaws.cn/goto/SdkForPHPV3/iotevents-2018-07-27/UpdateDetectorModel) 
+  [Amazon SDK for Python](https://docs.amazonaws.cn/goto/boto3/iotevents-2018-07-27/UpdateDetectorModel) 
+  [Amazon SDK for Ruby V3](https://docs.amazonaws.cn/goto/SdkForRubyV3/iotevents-2018-07-27/UpdateDetectorModel) 