AWS IoT
API Reference

CreateTopicRule

Creates a rule. Creating rules is an administrator-level action. Any user who has permission to create rules will be able to access data processed by the rule.

Request Syntax

POST /rules/ruleName HTTP/1.1 Content-type: application/json { "topicRulePayload": { "actions": [ { "cloudwatchAlarm": { "alarmName": "string", "roleArn": "string", "stateReason": "string", "stateValue": "string" }, "cloudwatchMetric": { "metricName": "string", "metricNamespace": "string", "metricTimestamp": "string", "metricUnit": "string", "metricValue": "string", "roleArn": "string" }, "dynamoDB": { "hashKeyField": "string", "hashKeyType": "string", "hashKeyValue": "string", "operation": "string", "payloadField": "string", "rangeKeyField": "string", "rangeKeyType": "string", "rangeKeyValue": "string", "roleArn": "string", "tableName": "string" }, "dynamoDBv2": { "putItem": { "tableName": "string" }, "roleArn": "string" }, "elasticsearch": { "endpoint": "string", "id": "string", "index": "string", "roleArn": "string", "type": "string" }, "firehose": { "deliveryStreamName": "string", "roleArn": "string", "separator": "string" }, "iotAnalytics": { "channelArn": "string", "channelName": "string", "roleArn": "string" }, "kinesis": { "partitionKey": "string", "roleArn": "string", "streamName": "string" }, "lambda": { "functionArn": "string" }, "republish": { "roleArn": "string", "topic": "string" }, "s3": { "bucketName": "string", "cannedAcl": "string", "key": "string", "roleArn": "string" }, "salesforce": { "token": "string", "url": "string" }, "sns": { "messageFormat": "string", "roleArn": "string", "targetArn": "string" }, "sqs": { "queueUrl": "string", "roleArn": "string", "useBase64": boolean }, "stepFunctions": { "executionNamePrefix": "string", "roleArn": "string", "stateMachineName": "string" } } ], "awsIotSqlVersion": "string", "description": "string", "errorAction": { "cloudwatchAlarm": { "alarmName": "string", "roleArn": "string", "stateReason": "string", "stateValue": "string" }, "cloudwatchMetric": { "metricName": "string", "metricNamespace": "string", "metricTimestamp": "string", "metricUnit": "string", "metricValue": "string", "roleArn": "string" }, "dynamoDB": { "hashKeyField": "string", "hashKeyType": "string", "hashKeyValue": "string", "operation": "string", "payloadField": "string", "rangeKeyField": "string", "rangeKeyType": "string", "rangeKeyValue": "string", "roleArn": "string", "tableName": "string" }, "dynamoDBv2": { "putItem": { "tableName": "string" }, "roleArn": "string" }, "elasticsearch": { "endpoint": "string", "id": "string", "index": "string", "roleArn": "string", "type": "string" }, "firehose": { "deliveryStreamName": "string", "roleArn": "string", "separator": "string" }, "iotAnalytics": { "channelArn": "string", "channelName": "string", "roleArn": "string" }, "kinesis": { "partitionKey": "string", "roleArn": "string", "streamName": "string" }, "lambda": { "functionArn": "string" }, "republish": { "roleArn": "string", "topic": "string" }, "s3": { "bucketName": "string", "cannedAcl": "string", "key": "string", "roleArn": "string" }, "salesforce": { "token": "string", "url": "string" }, "sns": { "messageFormat": "string", "roleArn": "string", "targetArn": "string" }, "sqs": { "queueUrl": "string", "roleArn": "string", "useBase64": boolean }, "stepFunctions": { "executionNamePrefix": "string", "roleArn": "string", "stateMachineName": "string" } }, "ruleDisabled": boolean, "sql": "string" } }

URI Request Parameters

The request requires the following URI parameters.

ruleName

The name of the rule.

Length Constraints: Minimum length of 1. Maximum length of 128.

Pattern: ^[a-zA-Z0-9_]+$

Request Body

The request accepts the following data in JSON format.

topicRulePayload

The rule payload.

Type: TopicRulePayload object

Required: Yes

Response Syntax

HTTP/1.1 200

Response Elements

If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.

Errors

ConflictingResourceUpdateException

A conflicting resource update exception. This exception is thrown when two pending updates cause a conflict.

HTTP Status Code: 409

InternalException

An unexpected error has occurred.

HTTP Status Code: 500

InvalidRequestException

The request is not valid.

HTTP Status Code: 400

ResourceAlreadyExistsException

The resource already exists.

HTTP Status Code: 409

ServiceUnavailableException

The service is temporarily unavailable.

HTTP Status Code: 503

SqlParseException

The Rule-SQL expression can't be parsed correctly.

HTTP Status Code: 400

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: