[ aws . iotevents ]

create-detector-model

Description

Creates a detector model.

See also: AWS API Documentation

See ‘aws help’ for descriptions of global parameters.

Synopsis

  create-detector-model
--detector-model-name <value>
--detector-model-definition <value>
[--detector-model-description <value>]
[--key <value>]
--role-arn <value>
[--tags <value>]
[--evaluation-method <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--cli-auto-prompt <value>]

Options

--detector-model-name (string)

The name of the detector model.

--detector-model-definition (structure)

Information that defines how the detectors operate.

states -> (list)

Information about the states of the detector.

(structure)

Information that defines a state of a detector.

stateName -> (string)

The name of the state.

onInput -> (structure)

When an input is received and the condition is TRUE, perform the specified actions .

events -> (list)

Specifies the actions performed when the condition evaluates to TRUE.

(structure)

Specifies the actions to be performed when the condition evaluates to TRUE.

eventName -> (string)

The name of the event.

condition -> (string)

Optional. The Boolean expression that, when TRUE, causes the actions to be performed. If not present, the actions are performed (=TRUE). If the expression result is not a Boolean value, the actions are not performed (=FALSE).

actions -> (list)

The actions to be performed.

(structure)

An action to be performed when the condition is TRUE.

setVariable -> (structure)

Sets a variable to a specified value.

variableName -> (string)

The name of the variable.

value -> (string)

The new value of the variable.

sns -> (structure)

Sends an Amazon SNS message.

targetArn -> (string)

The ARN of the Amazon SNS target where the message is sent.

payload -> (structure)

You can configure the action payload when you send a message as an Amazon SNS push notification.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

iotTopicPublish -> (structure)

Publishes an MQTT message with the given topic to the AWS IoT message broker.

mqttTopic -> (string)

The MQTT topic of the message. You can use a string expression that includes variables ($variable.<variable-name> ) and input values ($input.<input-name>.<path-to-datum> ) as the topic string.

payload -> (structure)

You can configure the action payload when you publish a message to an AWS IoT Core topic.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

setTimer -> (structure)

Information needed to set the timer.

timerName -> (string)

The name of the timer.

seconds -> (integer)

The number of seconds until the timer expires. The minimum value is 60 seconds to ensure accuracy. The maximum value is 31622400 seconds.

durationExpression -> (string)

The duration of the timer, in seconds. You can use a string expression that includes numbers, variables ($variable.<variable-name> ), and input values ($input.<input-name>.<path-to-datum> ) as the duration. The range of the duration is 1-31622400 seconds. To ensure accuracy, the minimum duration is 60 seconds. The evaluated result of the duration is rounded down to the nearest whole number.

clearTimer -> (structure)

Information needed to clear the timer.

timerName -> (string)

The name of the timer to clear.

resetTimer -> (structure)

Information needed to reset the timer.

timerName -> (string)

The name of the timer to reset.

lambda -> (structure)

Calls a Lambda function, passing in information about the detector model instance and the event that triggered the action.

functionArn -> (string)

The ARN of the Lambda function that is executed.

payload -> (structure)

You can configure the action payload when you send a message to a Lambda function.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

iotEvents -> (structure)

Sends AWS IoT Events input, which passes information about the detector model instance and the event that triggered the action.

inputName -> (string)

The name of the AWS IoT Events input where the data is sent.

payload -> (structure)

You can configure the action payload when you send a message to an AWS IoT Events input.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

sqs -> (structure)

Sends information about the detector model instance and the event that triggered the action to an Amazon SQS queue.

queueUrl -> (string)

The URL of the SQS queue where the data is written.

useBase64 -> (boolean)

Set this to TRUE if you want the data to be base-64 encoded before it is written to the queue. Otherwise, set this to FALSE.

payload -> (structure)

You can configure the action payload when you send a message to an Amazon SQS queue.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

firehose -> (structure)

Sends information about the detector model instance and the event that triggered the action to an Amazon Kinesis Data Firehose delivery stream.

deliveryStreamName -> (string)

The name of the Kinesis Data Firehose delivery stream where the data is written.

separator -> (string)

A character separator that is used to separate records written to the Kinesis Data Firehose delivery stream. Valid values are: ‘n’ (newline), ‘t’ (tab), ‘rn’ (Windows newline), ‘,’ (comma).

payload -> (structure)

You can configure the action payload when you send a message to an Amazon Kinesis Data Firehose delivery stream.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

dynamoDB -> (structure)

Writes to the DynamoDB table that you created. The default action payload contains all attribute-value pairs that have the information about the detector model instance and the event that triggered the action. You can also customize the payload . One column of the DynamoDB table receives all attribute-value pairs in the payload that you specify. For more information, see Actions in AWS IoT Events Developer Guide .

hashKeyType -> (string)

The data type for the hash key (also called the partition key). You can specify the following values:

  • STRING - The hash key is a string.

  • NUMBER - The hash key is a number.

If you don’t specify hashKeyType , the default value is STRING .

hashKeyField -> (string)

The name of the hash key (also called the partition key).

hashKeyValue -> (string)

The value of the hash key (also called the partition key).

rangeKeyType -> (string)

The data type for the range key (also called the sort key), You can specify the following values:

  • STRING - The range key is a string.

  • NUMBER - The range key is number.

If you don’t specify rangeKeyField , the default value is STRING .

rangeKeyField -> (string)

The name of the range key (also called the sort key).

rangeKeyValue -> (string)

The value of the range key (also called the sort key).

operation -> (string)

The type of operation to perform. You can specify the following values:

  • INSERT - Insert data as a new item into the DynamoDB table. This item uses the specified hash key as a partition key. If you specified a range key, the item uses the range key as a sort key.

  • UPDATE - Update an existing item of the DynamoDB table with new data. This item’s partition key must match the specified hash key. If you specified a range key, the range key must match the item’s sort key.

  • DELETE - Delete an existing item of the DynamoDB table. This item’s partition key must match the specified hash key. If you specified a range key, the range key must match the item’s sort key.

If you don’t specify this parameter, AWS IoT Events triggers the INSERT operation.

payloadField -> (string)

The name of the DynamoDB column that receives the action payload.

If you don’t specify this parameter, the name of the DynamoDB column is payload .

tableName -> (string)

The name of the DynamoDB table.

payload -> (structure)

Information needed to configure the payload.

By default, AWS IoT Events generates a standard payload in JSON for any action. This action payload contains all attribute-value pairs that have the information about the detector model instance and the event triggered the action. To configure the action payload, you can use contentExpression .

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

dynamoDBv2 -> (structure)

Writes to the DynamoDB table that you created. The default action payload contains all attribute-value pairs that have the information about the detector model instance and the event that triggered the action. You can also customize the payload . A separate column of the DynamoDB table receives one attribute-value pair in the payload that you specify. For more information, see Actions in AWS IoT Events Developer Guide .

tableName -> (string)

The name of the DynamoDB table.

payload -> (structure)

Information needed to configure the payload.

By default, AWS IoT Events generates a standard payload in JSON for any action. This action payload contains all attribute-value pairs that have the information about the detector model instance and the event triggered the action. To configure the action payload, you can use contentExpression .

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

iotSiteWise -> (structure)

Sends information about the detector model instance and the event that triggered the action to an asset property in AWS IoT SiteWise .

entryId -> (string)

A unique identifier for this entry. You can use the entry ID to track which data entry causes an error in case of failure. The default is a new unique identifier. You can also specify an expression.

assetId -> (string)

The ID of the asset that has the specified property. You can specify an expression.

propertyId -> (string)

The ID of the asset property. You can specify an expression.

propertyAlias -> (string)

The alias of the asset property. You can also specify an expression.

propertyValue -> (structure)

The value to send to the asset property. This value contains timestamp, quality, and value (TQV) information.

value -> (structure)

The value to send to an asset property.

stringValue -> (string)

The asset property value is a string. You can also specify an expression. If you use an expression, the evaluated result should be a string.

integerValue -> (string)

The asset property value is an integer. You can also specify an expression. If you use an expression, the evaluated result should be an integer.

doubleValue -> (string)

The asset property value is a double. You can also specify an expression. If you use an expression, the evaluated result should be a double.

booleanValue -> (string)

The asset property value is a Boolean value that must be TRUE or FALSE . You can also specify an expression. If you use an expression, the evaluated result should be a Boolean value.

timestamp -> (structure)

The timestamp associated with the asset property value. The default is the current event time.

timeInSeconds -> (string)

The timestamp, in seconds, in the Unix epoch format. The valid range is between 1-31556889864403199. You can also specify an expression.

offsetInNanos -> (string)

The nanosecond offset converted from timeInSeconds . The valid range is between 0-999999999. You can also specify an expression.

quality -> (string)

The quality of the asset property value. The value must be GOOD , BAD , or UNCERTAIN . You can also specify an expression.

transitionEvents -> (list)

Specifies the actions performed, and the next state entered, when a condition evaluates to TRUE.

(structure)

Specifies the actions performed and the next state entered when a condition evaluates to TRUE.

eventName -> (string)

The name of the transition event.

condition -> (string)

Required. A Boolean expression that when TRUE causes the actions to be performed and the nextState to be entered.

actions -> (list)

The actions to be performed.

(structure)

An action to be performed when the condition is TRUE.

setVariable -> (structure)

Sets a variable to a specified value.

variableName -> (string)

The name of the variable.

value -> (string)

The new value of the variable.

sns -> (structure)

Sends an Amazon SNS message.

targetArn -> (string)

The ARN of the Amazon SNS target where the message is sent.

payload -> (structure)

You can configure the action payload when you send a message as an Amazon SNS push notification.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

iotTopicPublish -> (structure)

Publishes an MQTT message with the given topic to the AWS IoT message broker.

mqttTopic -> (string)

The MQTT topic of the message. You can use a string expression that includes variables ($variable.<variable-name> ) and input values ($input.<input-name>.<path-to-datum> ) as the topic string.

payload -> (structure)

You can configure the action payload when you publish a message to an AWS IoT Core topic.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

setTimer -> (structure)

Information needed to set the timer.

timerName -> (string)

The name of the timer.

seconds -> (integer)

The number of seconds until the timer expires. The minimum value is 60 seconds to ensure accuracy. The maximum value is 31622400 seconds.

durationExpression -> (string)

The duration of the timer, in seconds. You can use a string expression that includes numbers, variables ($variable.<variable-name> ), and input values ($input.<input-name>.<path-to-datum> ) as the duration. The range of the duration is 1-31622400 seconds. To ensure accuracy, the minimum duration is 60 seconds. The evaluated result of the duration is rounded down to the nearest whole number.

clearTimer -> (structure)

Information needed to clear the timer.

timerName -> (string)

The name of the timer to clear.

resetTimer -> (structure)

Information needed to reset the timer.

timerName -> (string)

The name of the timer to reset.

lambda -> (structure)

Calls a Lambda function, passing in information about the detector model instance and the event that triggered the action.

functionArn -> (string)

The ARN of the Lambda function that is executed.

payload -> (structure)

You can configure the action payload when you send a message to a Lambda function.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

iotEvents -> (structure)

Sends AWS IoT Events input, which passes information about the detector model instance and the event that triggered the action.

inputName -> (string)

The name of the AWS IoT Events input where the data is sent.

payload -> (structure)

You can configure the action payload when you send a message to an AWS IoT Events input.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

sqs -> (structure)

Sends information about the detector model instance and the event that triggered the action to an Amazon SQS queue.

queueUrl -> (string)

The URL of the SQS queue where the data is written.

useBase64 -> (boolean)

Set this to TRUE if you want the data to be base-64 encoded before it is written to the queue. Otherwise, set this to FALSE.

payload -> (structure)

You can configure the action payload when you send a message to an Amazon SQS queue.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

firehose -> (structure)

Sends information about the detector model instance and the event that triggered the action to an Amazon Kinesis Data Firehose delivery stream.

deliveryStreamName -> (string)

The name of the Kinesis Data Firehose delivery stream where the data is written.

separator -> (string)

A character separator that is used to separate records written to the Kinesis Data Firehose delivery stream. Valid values are: ‘n’ (newline), ‘t’ (tab), ‘rn’ (Windows newline), ‘,’ (comma).

payload -> (structure)

You can configure the action payload when you send a message to an Amazon Kinesis Data Firehose delivery stream.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

dynamoDB -> (structure)

Writes to the DynamoDB table that you created. The default action payload contains all attribute-value pairs that have the information about the detector model instance and the event that triggered the action. You can also customize the payload . One column of the DynamoDB table receives all attribute-value pairs in the payload that you specify. For more information, see Actions in AWS IoT Events Developer Guide .

hashKeyType -> (string)

The data type for the hash key (also called the partition key). You can specify the following values:

  • STRING - The hash key is a string.

  • NUMBER - The hash key is a number.

If you don’t specify hashKeyType , the default value is STRING .

hashKeyField -> (string)

The name of the hash key (also called the partition key).

hashKeyValue -> (string)

The value of the hash key (also called the partition key).

rangeKeyType -> (string)

The data type for the range key (also called the sort key), You can specify the following values:

  • STRING - The range key is a string.

  • NUMBER - The range key is number.

If you don’t specify rangeKeyField , the default value is STRING .

rangeKeyField -> (string)

The name of the range key (also called the sort key).

rangeKeyValue -> (string)

The value of the range key (also called the sort key).

operation -> (string)

The type of operation to perform. You can specify the following values:

  • INSERT - Insert data as a new item into the DynamoDB table. This item uses the specified hash key as a partition key. If you specified a range key, the item uses the range key as a sort key.

  • UPDATE - Update an existing item of the DynamoDB table with new data. This item’s partition key must match the specified hash key. If you specified a range key, the range key must match the item’s sort key.

  • DELETE - Delete an existing item of the DynamoDB table. This item’s partition key must match the specified hash key. If you specified a range key, the range key must match the item’s sort key.

If you don’t specify this parameter, AWS IoT Events triggers the INSERT operation.

payloadField -> (string)

The name of the DynamoDB column that receives the action payload.

If you don’t specify this parameter, the name of the DynamoDB column is payload .

tableName -> (string)

The name of the DynamoDB table.

payload -> (structure)

Information needed to configure the payload.

By default, AWS IoT Events generates a standard payload in JSON for any action. This action payload contains all attribute-value pairs that have the information about the detector model instance and the event triggered the action. To configure the action payload, you can use contentExpression .

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

dynamoDBv2 -> (structure)

Writes to the DynamoDB table that you created. The default action payload contains all attribute-value pairs that have the information about the detector model instance and the event that triggered the action. You can also customize the payload . A separate column of the DynamoDB table receives one attribute-value pair in the payload that you specify. For more information, see Actions in AWS IoT Events Developer Guide .

tableName -> (string)

The name of the DynamoDB table.

payload -> (structure)

Information needed to configure the payload.

By default, AWS IoT Events generates a standard payload in JSON for any action. This action payload contains all attribute-value pairs that have the information about the detector model instance and the event triggered the action. To configure the action payload, you can use contentExpression .

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

iotSiteWise -> (structure)

Sends information about the detector model instance and the event that triggered the action to an asset property in AWS IoT SiteWise .

entryId -> (string)

A unique identifier for this entry. You can use the entry ID to track which data entry causes an error in case of failure. The default is a new unique identifier. You can also specify an expression.

assetId -> (string)

The ID of the asset that has the specified property. You can specify an expression.

propertyId -> (string)

The ID of the asset property. You can specify an expression.

propertyAlias -> (string)

The alias of the asset property. You can also specify an expression.

propertyValue -> (structure)

The value to send to the asset property. This value contains timestamp, quality, and value (TQV) information.

value -> (structure)

The value to send to an asset property.

stringValue -> (string)

The asset property value is a string. You can also specify an expression. If you use an expression, the evaluated result should be a string.

integerValue -> (string)

The asset property value is an integer. You can also specify an expression. If you use an expression, the evaluated result should be an integer.

doubleValue -> (string)

The asset property value is a double. You can also specify an expression. If you use an expression, the evaluated result should be a double.

booleanValue -> (string)

The asset property value is a Boolean value that must be TRUE or FALSE . You can also specify an expression. If you use an expression, the evaluated result should be a Boolean value.

timestamp -> (structure)

The timestamp associated with the asset property value. The default is the current event time.

timeInSeconds -> (string)

The timestamp, in seconds, in the Unix epoch format. The valid range is between 1-31556889864403199. You can also specify an expression.

offsetInNanos -> (string)

The nanosecond offset converted from timeInSeconds . The valid range is between 0-999999999. You can also specify an expression.

quality -> (string)

The quality of the asset property value. The value must be GOOD , BAD , or UNCERTAIN . You can also specify an expression.

nextState -> (string)

The next state to enter.

onEnter -> (structure)

When entering this state, perform these actions if the condition is TRUE.

events -> (list)

Specifies the actions that are performed when the state is entered and the condition is TRUE .

(structure)

Specifies the actions to be performed when the condition evaluates to TRUE.

eventName -> (string)

The name of the event.

condition -> (string)

Optional. The Boolean expression that, when TRUE, causes the actions to be performed. If not present, the actions are performed (=TRUE). If the expression result is not a Boolean value, the actions are not performed (=FALSE).

actions -> (list)

The actions to be performed.

(structure)

An action to be performed when the condition is TRUE.

setVariable -> (structure)

Sets a variable to a specified value.

variableName -> (string)

The name of the variable.

value -> (string)

The new value of the variable.

sns -> (structure)

Sends an Amazon SNS message.

targetArn -> (string)

The ARN of the Amazon SNS target where the message is sent.

payload -> (structure)

You can configure the action payload when you send a message as an Amazon SNS push notification.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

iotTopicPublish -> (structure)

Publishes an MQTT message with the given topic to the AWS IoT message broker.

mqttTopic -> (string)

The MQTT topic of the message. You can use a string expression that includes variables ($variable.<variable-name> ) and input values ($input.<input-name>.<path-to-datum> ) as the topic string.

payload -> (structure)

You can configure the action payload when you publish a message to an AWS IoT Core topic.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

setTimer -> (structure)

Information needed to set the timer.

timerName -> (string)

The name of the timer.

seconds -> (integer)

The number of seconds until the timer expires. The minimum value is 60 seconds to ensure accuracy. The maximum value is 31622400 seconds.

durationExpression -> (string)

The duration of the timer, in seconds. You can use a string expression that includes numbers, variables ($variable.<variable-name> ), and input values ($input.<input-name>.<path-to-datum> ) as the duration. The range of the duration is 1-31622400 seconds. To ensure accuracy, the minimum duration is 60 seconds. The evaluated result of the duration is rounded down to the nearest whole number.

clearTimer -> (structure)

Information needed to clear the timer.

timerName -> (string)

The name of the timer to clear.

resetTimer -> (structure)

Information needed to reset the timer.

timerName -> (string)

The name of the timer to reset.

lambda -> (structure)

Calls a Lambda function, passing in information about the detector model instance and the event that triggered the action.

functionArn -> (string)

The ARN of the Lambda function that is executed.

payload -> (structure)

You can configure the action payload when you send a message to a Lambda function.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

iotEvents -> (structure)

Sends AWS IoT Events input, which passes information about the detector model instance and the event that triggered the action.

inputName -> (string)

The name of the AWS IoT Events input where the data is sent.

payload -> (structure)

You can configure the action payload when you send a message to an AWS IoT Events input.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

sqs -> (structure)

Sends information about the detector model instance and the event that triggered the action to an Amazon SQS queue.

queueUrl -> (string)

The URL of the SQS queue where the data is written.

useBase64 -> (boolean)

Set this to TRUE if you want the data to be base-64 encoded before it is written to the queue. Otherwise, set this to FALSE.

payload -> (structure)

You can configure the action payload when you send a message to an Amazon SQS queue.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

firehose -> (structure)

Sends information about the detector model instance and the event that triggered the action to an Amazon Kinesis Data Firehose delivery stream.

deliveryStreamName -> (string)

The name of the Kinesis Data Firehose delivery stream where the data is written.

separator -> (string)

A character separator that is used to separate records written to the Kinesis Data Firehose delivery stream. Valid values are: ‘n’ (newline), ‘t’ (tab), ‘rn’ (Windows newline), ‘,’ (comma).

payload -> (structure)

You can configure the action payload when you send a message to an Amazon Kinesis Data Firehose delivery stream.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

dynamoDB -> (structure)

Writes to the DynamoDB table that you created. The default action payload contains all attribute-value pairs that have the information about the detector model instance and the event that triggered the action. You can also customize the payload . One column of the DynamoDB table receives all attribute-value pairs in the payload that you specify. For more information, see Actions in AWS IoT Events Developer Guide .

hashKeyType -> (string)

The data type for the hash key (also called the partition key). You can specify the following values:

  • STRING - The hash key is a string.

  • NUMBER - The hash key is a number.

If you don’t specify hashKeyType , the default value is STRING .

hashKeyField -> (string)

The name of the hash key (also called the partition key).

hashKeyValue -> (string)

The value of the hash key (also called the partition key).

rangeKeyType -> (string)

The data type for the range key (also called the sort key), You can specify the following values:

  • STRING - The range key is a string.

  • NUMBER - The range key is number.

If you don’t specify rangeKeyField , the default value is STRING .

rangeKeyField -> (string)

The name of the range key (also called the sort key).

rangeKeyValue -> (string)

The value of the range key (also called the sort key).

operation -> (string)

The type of operation to perform. You can specify the following values:

  • INSERT - Insert data as a new item into the DynamoDB table. This item uses the specified hash key as a partition key. If you specified a range key, the item uses the range key as a sort key.

  • UPDATE - Update an existing item of the DynamoDB table with new data. This item’s partition key must match the specified hash key. If you specified a range key, the range key must match the item’s sort key.

  • DELETE - Delete an existing item of the DynamoDB table. This item’s partition key must match the specified hash key. If you specified a range key, the range key must match the item’s sort key.

If you don’t specify this parameter, AWS IoT Events triggers the INSERT operation.

payloadField -> (string)

The name of the DynamoDB column that receives the action payload.

If you don’t specify this parameter, the name of the DynamoDB column is payload .

tableName -> (string)

The name of the DynamoDB table.

payload -> (structure)

Information needed to configure the payload.

By default, AWS IoT Events generates a standard payload in JSON for any action. This action payload contains all attribute-value pairs that have the information about the detector model instance and the event triggered the action. To configure the action payload, you can use contentExpression .

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

dynamoDBv2 -> (structure)

Writes to the DynamoDB table that you created. The default action payload contains all attribute-value pairs that have the information about the detector model instance and the event that triggered the action. You can also customize the payload . A separate column of the DynamoDB table receives one attribute-value pair in the payload that you specify. For more information, see Actions in AWS IoT Events Developer Guide .

tableName -> (string)

The name of the DynamoDB table.

payload -> (structure)

Information needed to configure the payload.

By default, AWS IoT Events generates a standard payload in JSON for any action. This action payload contains all attribute-value pairs that have the information about the detector model instance and the event triggered the action. To configure the action payload, you can use contentExpression .

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

iotSiteWise -> (structure)

Sends information about the detector model instance and the event that triggered the action to an asset property in AWS IoT SiteWise .

entryId -> (string)

A unique identifier for this entry. You can use the entry ID to track which data entry causes an error in case of failure. The default is a new unique identifier. You can also specify an expression.

assetId -> (string)

The ID of the asset that has the specified property. You can specify an expression.

propertyId -> (string)

The ID of the asset property. You can specify an expression.

propertyAlias -> (string)

The alias of the asset property. You can also specify an expression.

propertyValue -> (structure)

The value to send to the asset property. This value contains timestamp, quality, and value (TQV) information.

value -> (structure)

The value to send to an asset property.

stringValue -> (string)

The asset property value is a string. You can also specify an expression. If you use an expression, the evaluated result should be a string.

integerValue -> (string)

The asset property value is an integer. You can also specify an expression. If you use an expression, the evaluated result should be an integer.

doubleValue -> (string)

The asset property value is a double. You can also specify an expression. If you use an expression, the evaluated result should be a double.

booleanValue -> (string)

The asset property value is a Boolean value that must be TRUE or FALSE . You can also specify an expression. If you use an expression, the evaluated result should be a Boolean value.

timestamp -> (structure)

The timestamp associated with the asset property value. The default is the current event time.

timeInSeconds -> (string)

The timestamp, in seconds, in the Unix epoch format. The valid range is between 1-31556889864403199. You can also specify an expression.

offsetInNanos -> (string)

The nanosecond offset converted from timeInSeconds . The valid range is between 0-999999999. You can also specify an expression.

quality -> (string)

The quality of the asset property value. The value must be GOOD , BAD , or UNCERTAIN . You can also specify an expression.

onExit -> (structure)

When exiting this state, perform these actions if the specified condition is TRUE .

events -> (list)

Specifies the actions that are performed when the state is exited and the condition is TRUE .

(structure)

Specifies the actions to be performed when the condition evaluates to TRUE.

eventName -> (string)

The name of the event.

condition -> (string)

Optional. The Boolean expression that, when TRUE, causes the actions to be performed. If not present, the actions are performed (=TRUE). If the expression result is not a Boolean value, the actions are not performed (=FALSE).

actions -> (list)

The actions to be performed.

(structure)

An action to be performed when the condition is TRUE.

setVariable -> (structure)

Sets a variable to a specified value.

variableName -> (string)

The name of the variable.

value -> (string)

The new value of the variable.

sns -> (structure)

Sends an Amazon SNS message.

targetArn -> (string)

The ARN of the Amazon SNS target where the message is sent.

payload -> (structure)

You can configure the action payload when you send a message as an Amazon SNS push notification.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

iotTopicPublish -> (structure)

Publishes an MQTT message with the given topic to the AWS IoT message broker.

mqttTopic -> (string)

The MQTT topic of the message. You can use a string expression that includes variables ($variable.<variable-name> ) and input values ($input.<input-name>.<path-to-datum> ) as the topic string.

payload -> (structure)

You can configure the action payload when you publish a message to an AWS IoT Core topic.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

setTimer -> (structure)

Information needed to set the timer.

timerName -> (string)

The name of the timer.

seconds -> (integer)

The number of seconds until the timer expires. The minimum value is 60 seconds to ensure accuracy. The maximum value is 31622400 seconds.

durationExpression -> (string)

The duration of the timer, in seconds. You can use a string expression that includes numbers, variables ($variable.<variable-name> ), and input values ($input.<input-name>.<path-to-datum> ) as the duration. The range of the duration is 1-31622400 seconds. To ensure accuracy, the minimum duration is 60 seconds. The evaluated result of the duration is rounded down to the nearest whole number.

clearTimer -> (structure)

Information needed to clear the timer.

timerName -> (string)

The name of the timer to clear.

resetTimer -> (structure)

Information needed to reset the timer.

timerName -> (string)

The name of the timer to reset.

lambda -> (structure)

Calls a Lambda function, passing in information about the detector model instance and the event that triggered the action.

functionArn -> (string)

The ARN of the Lambda function that is executed.

payload -> (structure)

You can configure the action payload when you send a message to a Lambda function.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

iotEvents -> (structure)

Sends AWS IoT Events input, which passes information about the detector model instance and the event that triggered the action.

inputName -> (string)

The name of the AWS IoT Events input where the data is sent.

payload -> (structure)

You can configure the action payload when you send a message to an AWS IoT Events input.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

sqs -> (structure)

Sends information about the detector model instance and the event that triggered the action to an Amazon SQS queue.

queueUrl -> (string)

The URL of the SQS queue where the data is written.

useBase64 -> (boolean)

Set this to TRUE if you want the data to be base-64 encoded before it is written to the queue. Otherwise, set this to FALSE.

payload -> (structure)

You can configure the action payload when you send a message to an Amazon SQS queue.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

firehose -> (structure)

Sends information about the detector model instance and the event that triggered the action to an Amazon Kinesis Data Firehose delivery stream.

deliveryStreamName -> (string)

The name of the Kinesis Data Firehose delivery stream where the data is written.

separator -> (string)

A character separator that is used to separate records written to the Kinesis Data Firehose delivery stream. Valid values are: ‘n’ (newline), ‘t’ (tab), ‘rn’ (Windows newline), ‘,’ (comma).

payload -> (structure)

You can configure the action payload when you send a message to an Amazon Kinesis Data Firehose delivery stream.

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

dynamoDB -> (structure)

Writes to the DynamoDB table that you created. The default action payload contains all attribute-value pairs that have the information about the detector model instance and the event that triggered the action. You can also customize the payload . One column of the DynamoDB table receives all attribute-value pairs in the payload that you specify. For more information, see Actions in AWS IoT Events Developer Guide .

hashKeyType -> (string)

The data type for the hash key (also called the partition key). You can specify the following values:

  • STRING - The hash key is a string.

  • NUMBER - The hash key is a number.

If you don’t specify hashKeyType , the default value is STRING .

hashKeyField -> (string)

The name of the hash key (also called the partition key).

hashKeyValue -> (string)

The value of the hash key (also called the partition key).

rangeKeyType -> (string)

The data type for the range key (also called the sort key), You can specify the following values:

  • STRING - The range key is a string.

  • NUMBER - The range key is number.

If you don’t specify rangeKeyField , the default value is STRING .

rangeKeyField -> (string)

The name of the range key (also called the sort key).

rangeKeyValue -> (string)

The value of the range key (also called the sort key).

operation -> (string)

The type of operation to perform. You can specify the following values:

  • INSERT - Insert data as a new item into the DynamoDB table. This item uses the specified hash key as a partition key. If you specified a range key, the item uses the range key as a sort key.

  • UPDATE - Update an existing item of the DynamoDB table with new data. This item’s partition key must match the specified hash key. If you specified a range key, the range key must match the item’s sort key.

  • DELETE - Delete an existing item of the DynamoDB table. This item’s partition key must match the specified hash key. If you specified a range key, the range key must match the item’s sort key.

If you don’t specify this parameter, AWS IoT Events triggers the INSERT operation.

payloadField -> (string)

The name of the DynamoDB column that receives the action payload.

If you don’t specify this parameter, the name of the DynamoDB column is payload .

tableName -> (string)

The name of the DynamoDB table.

payload -> (structure)

Information needed to configure the payload.

By default, AWS IoT Events generates a standard payload in JSON for any action. This action payload contains all attribute-value pairs that have the information about the detector model instance and the event triggered the action. To configure the action payload, you can use contentExpression .

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

dynamoDBv2 -> (structure)

Writes to the DynamoDB table that you created. The default action payload contains all attribute-value pairs that have the information about the detector model instance and the event that triggered the action. You can also customize the payload . A separate column of the DynamoDB table receives one attribute-value pair in the payload that you specify. For more information, see Actions in AWS IoT Events Developer Guide .

tableName -> (string)

The name of the DynamoDB table.

payload -> (structure)

Information needed to configure the payload.

By default, AWS IoT Events generates a standard payload in JSON for any action. This action payload contains all attribute-value pairs that have the information about the detector model instance and the event triggered the action. To configure the action payload, you can use contentExpression .

contentExpression -> (string)

The content of the payload. You can use a string expression that includes quoted strings ('<string>' ), variables ($variable.<variable-name> ), input values ($input.<input-name>.<path-to-datum> ), string concatenations, and quoted strings that contain ${} as the content. The recommended maximum size of a content expression is 1 KB.

type -> (string)

The value of the payload type can be either STRING or JSON .

iotSiteWise -> (structure)

Sends information about the detector model instance and the event that triggered the action to an asset property in AWS IoT SiteWise .

entryId -> (string)

A unique identifier for this entry. You can use the entry ID to track which data entry causes an error in case of failure. The default is a new unique identifier. You can also specify an expression.

assetId -> (string)

The ID of the asset that has the specified property. You can specify an expression.

propertyId -> (string)

The ID of the asset property. You can specify an expression.

propertyAlias -> (string)

The alias of the asset property. You can also specify an expression.

propertyValue -> (structure)

The value to send to the asset property. This value contains timestamp, quality, and value (TQV) information.

value -> (structure)

The value to send to an asset property.

stringValue -> (string)

The asset property value is a string. You can also specify an expression. If you use an expression, the evaluated result should be a string.

integerValue -> (string)

The asset property value is an integer. You can also specify an expression. If you use an expression, the evaluated result should be an integer.

doubleValue -> (string)

The asset property value is a double. You can also specify an expression. If you use an expression, the evaluated result should be a double.

booleanValue -> (string)

The asset property value is a Boolean value that must be TRUE or FALSE . You can also specify an expression. If you use an expression, the evaluated result should be a Boolean value.

timestamp -> (structure)

The timestamp associated with the asset property value. The default is the current event time.

timeInSeconds -> (string)

The timestamp, in seconds, in the Unix epoch format. The valid range is between 1-31556889864403199. You can also specify an expression.

offsetInNanos -> (string)

The nanosecond offset converted from timeInSeconds . The valid range is between 0-999999999. You can also specify an expression.

quality -> (string)

The quality of the asset property value. The value must be GOOD , BAD , or UNCERTAIN . You can also specify an expression.

initialStateName -> (string)

The state that is entered at the creation of each detector (instance).

JSON Syntax:

{
  "states": [
    {
      "stateName": "string",
      "onInput": {
        "events": [
          {
            "eventName": "string",
            "condition": "string",
            "actions": [
              {
                "setVariable": {
                  "variableName": "string",
                  "value": "string"
                },
                "sns": {
                  "targetArn": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "iotTopicPublish": {
                  "mqttTopic": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "setTimer": {
                  "timerName": "string",
                  "seconds": integer,
                  "durationExpression": "string"
                },
                "clearTimer": {
                  "timerName": "string"
                },
                "resetTimer": {
                  "timerName": "string"
                },
                "lambda": {
                  "functionArn": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "iotEvents": {
                  "inputName": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "sqs": {
                  "queueUrl": "string",
                  "useBase64": true|false,
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "firehose": {
                  "deliveryStreamName": "string",
                  "separator": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "dynamoDB": {
                  "hashKeyType": "string",
                  "hashKeyField": "string",
                  "hashKeyValue": "string",
                  "rangeKeyType": "string",
                  "rangeKeyField": "string",
                  "rangeKeyValue": "string",
                  "operation": "string",
                  "payloadField": "string",
                  "tableName": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "dynamoDBv2": {
                  "tableName": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "iotSiteWise": {
                  "entryId": "string",
                  "assetId": "string",
                  "propertyId": "string",
                  "propertyAlias": "string",
                  "propertyValue": {
                    "value": {
                      "stringValue": "string",
                      "integerValue": "string",
                      "doubleValue": "string",
                      "booleanValue": "string"
                    },
                    "timestamp": {
                      "timeInSeconds": "string",
                      "offsetInNanos": "string"
                    },
                    "quality": "string"
                  }
                }
              }
              ...
            ]
          }
          ...
        ],
        "transitionEvents": [
          {
            "eventName": "string",
            "condition": "string",
            "actions": [
              {
                "setVariable": {
                  "variableName": "string",
                  "value": "string"
                },
                "sns": {
                  "targetArn": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "iotTopicPublish": {
                  "mqttTopic": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "setTimer": {
                  "timerName": "string",
                  "seconds": integer,
                  "durationExpression": "string"
                },
                "clearTimer": {
                  "timerName": "string"
                },
                "resetTimer": {
                  "timerName": "string"
                },
                "lambda": {
                  "functionArn": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "iotEvents": {
                  "inputName": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "sqs": {
                  "queueUrl": "string",
                  "useBase64": true|false,
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "firehose": {
                  "deliveryStreamName": "string",
                  "separator": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "dynamoDB": {
                  "hashKeyType": "string",
                  "hashKeyField": "string",
                  "hashKeyValue": "string",
                  "rangeKeyType": "string",
                  "rangeKeyField": "string",
                  "rangeKeyValue": "string",
                  "operation": "string",
                  "payloadField": "string",
                  "tableName": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "dynamoDBv2": {
                  "tableName": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "iotSiteWise": {
                  "entryId": "string",
                  "assetId": "string",
                  "propertyId": "string",
                  "propertyAlias": "string",
                  "propertyValue": {
                    "value": {
                      "stringValue": "string",
                      "integerValue": "string",
                      "doubleValue": "string",
                      "booleanValue": "string"
                    },
                    "timestamp": {
                      "timeInSeconds": "string",
                      "offsetInNanos": "string"
                    },
                    "quality": "string"
                  }
                }
              }
              ...
            ],
            "nextState": "string"
          }
          ...
        ]
      },
      "onEnter": {
        "events": [
          {
            "eventName": "string",
            "condition": "string",
            "actions": [
              {
                "setVariable": {
                  "variableName": "string",
                  "value": "string"
                },
                "sns": {
                  "targetArn": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "iotTopicPublish": {
                  "mqttTopic": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "setTimer": {
                  "timerName": "string",
                  "seconds": integer,
                  "durationExpression": "string"
                },
                "clearTimer": {
                  "timerName": "string"
                },
                "resetTimer": {
                  "timerName": "string"
                },
                "lambda": {
                  "functionArn": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "iotEvents": {
                  "inputName": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "sqs": {
                  "queueUrl": "string",
                  "useBase64": true|false,
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "firehose": {
                  "deliveryStreamName": "string",
                  "separator": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "dynamoDB": {
                  "hashKeyType": "string",
                  "hashKeyField": "string",
                  "hashKeyValue": "string",
                  "rangeKeyType": "string",
                  "rangeKeyField": "string",
                  "rangeKeyValue": "string",
                  "operation": "string",
                  "payloadField": "string",
                  "tableName": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "dynamoDBv2": {
                  "tableName": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "iotSiteWise": {
                  "entryId": "string",
                  "assetId": "string",
                  "propertyId": "string",
                  "propertyAlias": "string",
                  "propertyValue": {
                    "value": {
                      "stringValue": "string",
                      "integerValue": "string",
                      "doubleValue": "string",
                      "booleanValue": "string"
                    },
                    "timestamp": {
                      "timeInSeconds": "string",
                      "offsetInNanos": "string"
                    },
                    "quality": "string"
                  }
                }
              }
              ...
            ]
          }
          ...
        ]
      },
      "onExit": {
        "events": [
          {
            "eventName": "string",
            "condition": "string",
            "actions": [
              {
                "setVariable": {
                  "variableName": "string",
                  "value": "string"
                },
                "sns": {
                  "targetArn": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "iotTopicPublish": {
                  "mqttTopic": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "setTimer": {
                  "timerName": "string",
                  "seconds": integer,
                  "durationExpression": "string"
                },
                "clearTimer": {
                  "timerName": "string"
                },
                "resetTimer": {
                  "timerName": "string"
                },
                "lambda": {
                  "functionArn": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "iotEvents": {
                  "inputName": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "sqs": {
                  "queueUrl": "string",
                  "useBase64": true|false,
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "firehose": {
                  "deliveryStreamName": "string",
                  "separator": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "dynamoDB": {
                  "hashKeyType": "string",
                  "hashKeyField": "string",
                  "hashKeyValue": "string",
                  "rangeKeyType": "string",
                  "rangeKeyField": "string",
                  "rangeKeyValue": "string",
                  "operation": "string",
                  "payloadField": "string",
                  "tableName": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "dynamoDBv2": {
                  "tableName": "string",
                  "payload": {
                    "contentExpression": "string",
                    "type": "STRING"|"JSON"
                  }
                },
                "iotSiteWise": {
                  "entryId": "string",
                  "assetId": "string",
                  "propertyId": "string",
                  "propertyAlias": "string",
                  "propertyValue": {
                    "value": {
                      "stringValue": "string",
                      "integerValue": "string",
                      "doubleValue": "string",
                      "booleanValue": "string"
                    },
                    "timestamp": {
                      "timeInSeconds": "string",
                      "offsetInNanos": "string"
                    },
                    "quality": "string"
                  }
                }
              }
              ...
            ]
          }
          ...
        ]
      }
    }
    ...
  ],
  "initialStateName": "string"
}

--detector-model-description (string)

A brief description of the detector model.

--key (string)

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.

--role-arn (string)

The ARN of the role that grants permission to AWS IoT Events to perform its operations.

--tags (list)

Metadata that can be used to manage the detector model.

(structure)

Metadata that can be used to manage the resource.

key -> (string)

The tag’s key.

value -> (string)

The tag’s value.

Shorthand Syntax:

key=string,value=string ...

JSON Syntax:

[
  {
    "key": "string",
    "value": "string"
  }
  ...
]

--evaluation-method (string)

Information about the order in which events are evaluated and how actions are executed.

Possible values:

  • BATCH

  • SERIAL

--cli-input-json | --cli-input-yaml (string) Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml.

--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. Similarly, if provided yaml-input it will print a sample input YAML that can be used with --cli-input-yaml. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.

--cli-auto-prompt (boolean) Automatically prompt for CLI input parameters.

See ‘aws help’ for descriptions of global parameters.

Examples

To create a detector model

The following create-detector-model example creates a detector model with its configuration specified by a parameter file.

aws iotevents create-detector-model  \
    --cli-input-json file://motorDetectorModel.json

Contents of motorDetectorModel.json:

{
    "detectorModelName": "motorDetectorModel",
    "detectorModelDefinition": {
        "states": [
            {
                "stateName": "Normal",
                "onEnter": {
                    "events": [
                        {
                            "eventName": "init",
                            "condition": "true",
                            "actions": [
                                {
                                    "setVariable": {
                                        "variableName": "pressureThresholdBreached",
                                        "value": "0"
                                    }
                                }
                            ]
                        }
                    ]
                },
                "onInput": {
                    "transitionEvents": [
                        {
                            "eventName": "Overpressurized",
                            "condition": "$input.PressureInput.sensorData.pressure &gt; 70",
                            "actions": [
                                {
                                    "setVariable": {
                                        "variableName": "pressureThresholdBreached",
                                        "value": "$variable.pressureThresholdBreached + 3"
                                    }
                                }
                            ],
                            "nextState": "Dangerous"
                        }
                    ]
                }
            },
            {
                "stateName": "Dangerous",
                "onEnter": {
                    "events": [
                        {
                            "eventName": "Pressure Threshold Breached",
                            "condition": "$variable.pressureThresholdBreached &gt; 1",
                            "actions": [
                                {
                                    "sns": {
                                        "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction"
                                    }
                                }
                            ]
                        }
                    ]
                },
                "onInput": {
                    "events": [
                        {
                            "eventName": "Overpressurized",
                            "condition": "$input.PressureInput.sensorData.pressure &gt; 70",
                            "actions": [
                                {
                                    "setVariable": {
                                        "variableName": "pressureThresholdBreached",
                                        "value": "3"
                                    }
                                }
                            ]
                        },
                        {
                            "eventName": "Pressure Okay",
                            "condition": "$input.PressureInput.sensorData.pressure &lt;= 70",
                            "actions": [
                                {
                                    "setVariable": {
                                        "variableName": "pressureThresholdBreached",
                                        "value": "$variable.pressureThresholdBreached - 1"
                                    }
                                }
                            ]
                        }
                    ],
                    "transitionEvents": [
                        {
                            "eventName": "BackToNormal",
                            "condition": "$input.PressureInput.sensorData.pressure &lt;= 70 &amp;&amp; $variable.pressureThresholdBreached &lt;= 1",
                            "nextState": "Normal"
                        }
                    ]
                },
                "onExit": {
                    "events": [
                        {
                            "eventName": "Normal Pressure Restored",
                            "condition": "true",
                            "actions": [
                                {
                                    "sns": {
                                        "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction"
                                    }
                                }
                            ]
                        }
                    ]
                }
            }
        ],
        "initialStateName": "Normal"
    },
    "key": "motorid",
    "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole"
}

Output:

{
    "detectorModelConfiguration": {
        "status": "ACTIVATING",
        "lastUpdateTime": 1560796816.077,
        "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole",
        "creationTime": 1560796816.077,
        "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel",
        "key": "motorid",
        "detectorModelName": "motorDetectorModel",
        "detectorModelVersion": "1"
    }
}

For more information, see CreateDetectorModel in the AWS IoT Events API Reference.

Output

detectorModelConfiguration -> (structure)

Information about how the detector model is configured.

detectorModelName -> (string)

The name of the detector model.

detectorModelVersion -> (string)

The version of the detector model.

detectorModelDescription -> (string)

A brief description of the detector model.

detectorModelArn -> (string)

The ARN of the detector model.

roleArn -> (string)

The ARN of the role that grants permission to AWS IoT Events to perform its operations.

creationTime -> (timestamp)

The time the detector model was created.

lastUpdateTime -> (timestamp)

The time the detector model was last updated.

status -> (string)

The status of the detector model.

key -> (string)

The value used to identify a detector instance. When a device or system sends input, a new detector instance with a unique key value is created. AWS IoT Events can continue to route input to its corresponding detector instance based on this identifying information.

This parameter uses a JSON-path expression to select the attribute-value pair in the message payload that is used for identification. To route the message to the correct detector instance, the device must send a message payload that contains the same attribute-value.

evaluationMethod -> (string)

Information about the order in which events are evaluated and how actions are executed.