Creates a detector model.
See also: AWS API Documentation
See ‘aws help’ for descriptions of global parameters.
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>]
--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 specifiedactions
.events -> (list)
Specifies the actions performed when the
condition
evaluates to TRUE.(structure)
Specifies the
actions
to be performed when thecondition
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
orJSON
.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
orJSON
.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
orJSON
.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
orJSON
.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
orJSON
.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
orJSON
.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 isSTRING
.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 isSTRING
.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
orJSON
.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
orJSON
.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
orFALSE
. 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
, orUNCERTAIN
. 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
orJSON
.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
orJSON
.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
orJSON
.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
orJSON
.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
orJSON
.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
orJSON
.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 isSTRING
.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 isSTRING
.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
orJSON
.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
orJSON
.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
orFALSE
. 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
, orUNCERTAIN
. You can also specify an expression.nextState -> (string)
The next state to enter.
onEnter -> (structure)
When entering this state, perform these
actions
if thecondition
is TRUE.events -> (list)
Specifies the actions that are performed when the state is entered and the
condition
isTRUE
.(structure)
Specifies the
actions
to be performed when thecondition
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
orJSON
.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
orJSON
.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
orJSON
.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
orJSON
.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
orJSON
.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
orJSON
.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 isSTRING
.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 isSTRING
.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
orJSON
.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
orJSON
.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
orFALSE
. 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
, orUNCERTAIN
. You can also specify an expression.onExit -> (structure)
When exiting this state, perform these
actions
if the specifiedcondition
isTRUE
.events -> (list)
Specifies the
actions
that are performed when the state is exited and thecondition
isTRUE
.(structure)
Specifies the
actions
to be performed when thecondition
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
orJSON
.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
orJSON
.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
orJSON
.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
orJSON
.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
orJSON
.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
orJSON
.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 isSTRING
.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 isSTRING
.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
orJSON
.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
orJSON
.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
orFALSE
. 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
, orUNCERTAIN
. 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.
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 > 70",
"actions": [
{
"setVariable": {
"variableName": "pressureThresholdBreached",
"value": "$variable.pressureThresholdBreached + 3"
}
}
],
"nextState": "Dangerous"
}
]
}
},
{
"stateName": "Dangerous",
"onEnter": {
"events": [
{
"eventName": "Pressure Threshold Breached",
"condition": "$variable.pressureThresholdBreached > 1",
"actions": [
{
"sns": {
"targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction"
}
}
]
}
]
},
"onInput": {
"events": [
{
"eventName": "Overpressurized",
"condition": "$input.PressureInput.sensorData.pressure > 70",
"actions": [
{
"setVariable": {
"variableName": "pressureThresholdBreached",
"value": "3"
}
}
]
},
{
"eventName": "Pressure Okay",
"condition": "$input.PressureInput.sensorData.pressure <= 70",
"actions": [
{
"setVariable": {
"variableName": "pressureThresholdBreached",
"value": "$variable.pressureThresholdBreached - 1"
}
}
]
}
],
"transitionEvents": [
{
"eventName": "BackToNormal",
"condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 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.
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.