

# CreateDetectorModel
<a name="API_CreateDetectorModel"></a>

**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](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-end-of-support.html). 

Creates a detector model.

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

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

The request does not use any URI parameters.

## Request Body
<a name="API_CreateDetectorModel_RequestBody"></a>

The request accepts the following data in JSON format.

 ** [detectorModelDefinition](#API_CreateDetectorModel_RequestSyntax) **   <a name="iotevents-CreateDetectorModel-request-detectorModelDefinition"></a>
Information that defines how the detectors operate.  
Type: [DetectorModelDefinition](API_DetectorModelDefinition.md) object  
Required: Yes

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

 ** [detectorModelName](#API_CreateDetectorModel_RequestSyntax) **   <a name="iotevents-CreateDetectorModel-request-detectorModelName"></a>
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](#API_CreateDetectorModel_RequestSyntax) **   <a name="iotevents-CreateDetectorModel-request-evaluationMethod"></a>
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](#API_CreateDetectorModel_RequestSyntax) **   <a name="iotevents-CreateDetectorModel-request-key"></a>
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](#API_CreateDetectorModel_RequestSyntax) **   <a name="iotevents-CreateDetectorModel-request-roleArn"></a>
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](#API_CreateDetectorModel_RequestSyntax) **   <a name="iotevents-CreateDetectorModel-request-tags"></a>
Metadata that can be used to manage the detector model.  
Type: Array of [Tag](API_Tag.md) objects  
Required: No

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

## Errors
<a name="API_CreateDetectorModel_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

 ** LimitExceededException **   
A limit was exceeded.    
 ** message **   
The message for the exception.
HTTP Status Code: 410

 ** ResourceAlreadyExistsException **   
The resource already exists.    
 ** message **   
The message for the exception.  
 ** resourceArn **   
The ARN of the resource.  
 ** resourceId **   
The ID of the resource.
HTTP Status Code: 409

 ** ResourceInUseException **   
The resource is in use.    
 ** message **   
The message for the exception.
HTTP Status Code: 409

 ** 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_CreateDetectorModel_SeeAlso"></a>

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