---
title: Getting Started with Datadog
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: Docs > Infrastructure > Datadog Resource Catalog
---

# aws_iotevents_detector_model{% #aws_iotevents_detector_model %}

## `account_id`{% #account_id %}

**Type**: `STRING`

## `detector_model_configuration`{% #detector_model_configuration %}

**Type**: `STRUCT`**Provider name**: `detectorModelConfiguration`**Description**: Information about how the detector is configured.

- `creation_time`**Type**: `TIMESTAMP`**Provider name**: `creationTime`**Description**: The time the detector model was created.
- `detector_model_arn`**Type**: `STRING`**Provider name**: `detectorModelArn`**Description**: The ARN of the detector model.
- `detector_model_description`**Type**: `STRING`**Provider name**: `detectorModelDescription`**Description**: A brief description of the detector model.
- `detector_model_name`**Type**: `STRING`**Provider name**: `detectorModelName`**Description**: The name of the detector model.
- `detector_model_version`**Type**: `STRING`**Provider name**: `detectorModelVersion`**Description**: The version of the detector model.
- `evaluation_method`**Type**: `STRING`**Provider name**: `evaluationMethod`**Description**: Information about the order in which events are evaluated and how actions are executed.
- `key`**Type**: `STRING`**Provider name**: `key`**Description**: 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.
- `last_update_time`**Type**: `TIMESTAMP`**Provider name**: `lastUpdateTime`**Description**: The time the detector model was last updated.
- `role_arn`**Type**: `STRING`**Provider name**: `roleArn`**Description**: The ARN of the role that grants permission to AWS IoT Events to perform its operations.
- `status`**Type**: `STRING`**Provider name**: `status`**Description**: The status of the detector model.

## `detector_model_definition`{% #detector_model_definition %}

**Type**: `STRUCT`**Provider name**: `detectorModelDefinition`**Description**: Information that defines how a detector operates.

- `initial_state_name`**Type**: `STRING`**Provider name**: `initialStateName`**Description**: The state that is entered at the creation of each detector (instance).
- `states`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `states`**Description**: Information about the states of the detector.
  - `on_enter`**Type**: `STRUCT`**Provider name**: `onEnter`**Description**: When entering this state, perform these `actions` if the `condition` is TRUE.
    - `events`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `events`**Description**: Specifies the actions that are performed when the state is entered and the `condition` is `TRUE`.
      - `actions`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `actions`**Description**: The actions to be performed.
        - `clear_timer`**Type**: `STRUCT`**Provider name**: `clearTimer`**Description**: Information needed to clear the timer.
          - `timer_name`**Type**: `STRING`**Provider name**: `timerName`**Description**: The name of the timer to clear.
        - `dynamo_d_bv2`**Type**: `STRUCT`**Provider name**: `dynamoDBv2`**Description**: 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 customize the [payload](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html). A separate column of the DynamoDB table receives one attribute-value pair in the payload that you specify. For more information, see [Actions](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html) in AWS IoT Events Developer Guide.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `table_name`**Type**: `STRING`**Provider name**: `tableName`**Description**: The name of the DynamoDB table.
        - `dynamo_db`**Type**: `STRUCT`**Provider name**: `dynamoDB`**Description**: 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 customize the [payload](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html). One column of the DynamoDB table receives all attribute-value pairs in the payload that you specify. For more information, see [Actions](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html) in AWS IoT Events Developer Guide.
          - `hash_key_field`**Type**: `STRING`**Provider name**: `hashKeyField`**Description**: The name of the hash key (also called the partition key). The `hashKeyField` value must match the partition key of the target DynamoDB table.
          - `hash_key_type`**Type**: `STRING`**Provider name**: `hashKeyType`**Description**: 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'`.
          - `hash_key_value`**Type**: `STRING`**Provider name**: `hashKeyValue`**Description**: The value of the hash key (also called the partition key).
          - `operation`**Type**: `STRING`**Provider name**: `operation`**Description**: 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.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `payload_field`**Type**: `STRING`**Provider name**: `payloadField`**Description**: 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`.
          - `range_key_field`**Type**: `STRING`**Provider name**: `rangeKeyField`**Description**: The name of the range key (also called the sort key). The `rangeKeyField` value must match the sort key of the target DynamoDB table.
          - `range_key_type`**Type**: `STRING`**Provider name**: `rangeKeyType`**Description**: 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'`.
          - `range_key_value`**Type**: `STRING`**Provider name**: `rangeKeyValue`**Description**: The value of the range key (also called the sort key).
          - `table_name`**Type**: `STRING`**Provider name**: `tableName`**Description**: The name of the DynamoDB table. The `tableName` value must match the table name of the target DynamoDB table.
        - `firehose`**Type**: `STRUCT`**Provider name**: `firehose`**Description**: Sends information about the detector model instance and the event that triggered the action to an Amazon Kinesis Data Firehose delivery stream.
          - `delivery_stream_name`**Type**: `STRING`**Provider name**: `deliveryStreamName`**Description**: The name of the Kinesis Data Firehose delivery stream where the data is written.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message to an Amazon Kinesis Data Firehose delivery stream.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `separator`**Type**: `STRING`**Provider name**: `separator`**Description**: A character separator that is used to separate records written to the Kinesis Data Firehose delivery stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma).
        - `iot_events`**Type**: `STRUCT`**Provider name**: `iotEvents`**Description**: Sends AWS IoT Events input, which passes information about the detector model instance and the event that triggered the action.
          - `input_name`**Type**: `STRING`**Provider name**: `inputName`**Description**: The name of the AWS IoT Events input where the data is sent.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message to an AWS IoT Events input.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
        - `iot_site_wise`**Type**: `STRUCT`**Provider name**: `iotSiteWise`**Description**: Sends information about the detector model instance and the event that triggered the action to an asset property in AWS IoT SiteWise .
          - `asset_id`**Type**: `STRING`**Provider name**: `assetId`**Description**: The ID of the asset that has the specified property.
          - `entry_id`**Type**: `STRING`**Provider name**: `entryId`**Description**: 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.
          - `property_alias`**Type**: `STRING`**Provider name**: `propertyAlias`**Description**: The alias of the asset property.
          - `property_id`**Type**: `STRING`**Provider name**: `propertyId`**Description**: The ID of the asset property.
          - `property_value`**Type**: `STRUCT`**Provider name**: `propertyValue`**Description**: The value to send to the asset property. This value contains timestamp, quality, and value (TQV) information.
            - `quality`**Type**: `STRING`**Provider name**: `quality`**Description**: The quality of the asset property value. The value must be `'GOOD'`, `'BAD'`, or `'UNCERTAIN'`.
            - `timestamp`**Type**: `STRUCT`**Provider name**: `timestamp`**Description**: The timestamp associated with the asset property value. The default is the current event time.
              - `offset_in_nanos`**Type**: `STRING`**Provider name**: `offsetInNanos`**Description**: The nanosecond offset converted from `timeInSeconds`. The valid range is between 0-999999999.
              - `time_in_seconds`**Type**: `STRING`**Provider name**: `timeInSeconds`**Description**: The timestamp, in seconds, in the Unix epoch format. The valid range is between 1-31556889864403199.
            - `value`**Type**: `STRUCT`**Provider name**: `value`**Description**: The value to send to an asset property.
              - `boolean_value`**Type**: `STRING`**Provider name**: `booleanValue`**Description**: The asset property value is a Boolean value that must be `'TRUE'` or `'FALSE'`. You must use an expression, and the evaluated result should be a Boolean value.
              - `double_value`**Type**: `STRING`**Provider name**: `doubleValue`**Description**: The asset property value is a double. You must use an expression, and the evaluated result should be a double.
              - `integer_value`**Type**: `STRING`**Provider name**: `integerValue`**Description**: The asset property value is an integer. You must use an expression, and the evaluated result should be an integer.
              - `string_value`**Type**: `STRING`**Provider name**: `stringValue`**Description**: The asset property value is a string. You must use an expression, and the evaluated result should be a string.
        - `iot_topic_publish`**Type**: `STRUCT`**Provider name**: `iotTopicPublish`**Description**: Publishes an MQTT message with the given topic to the AWS IoT message broker.
          - `mqtt_topic`**Type**: `STRING`**Provider name**: `mqttTopic`**Description**: 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`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you publish a message to an AWS IoT Core topic.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
        - `lambda`**Type**: `STRUCT`**Provider name**: `lambda`**Description**: Calls a Lambda function, passing in information about the detector model instance and the event that triggered the action.
          - `function_arn`**Type**: `STRING`**Provider name**: `functionArn`**Description**: The ARN of the Lambda function that is executed.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message to a Lambda function.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
        - `reset_timer`**Type**: `STRUCT`**Provider name**: `resetTimer`**Description**: Information needed to reset the timer.
          - `timer_name`**Type**: `STRING`**Provider name**: `timerName`**Description**: The name of the timer to reset.
        - `set_timer`**Type**: `STRUCT`**Provider name**: `setTimer`**Description**: Information needed to set the timer.
          - `duration_expression`**Type**: `STRING`**Provider name**: `durationExpression`**Description**: 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.
          - `seconds`**Type**: `INT32`**Provider name**: `seconds`**Description**: The number of seconds until the timer expires. The minimum value is 60 seconds to ensure accuracy. The maximum value is 31622400 seconds.
          - `timer_name`**Type**: `STRING`**Provider name**: `timerName`**Description**: The name of the timer.
        - `set_variable`**Type**: `STRUCT`**Provider name**: `setVariable`**Description**: Sets a variable to a specified value.
          - `value`**Type**: `STRING`**Provider name**: `value`**Description**: The new value of the variable.
          - `variable_name`**Type**: `STRING`**Provider name**: `variableName`**Description**: The name of the variable.
        - `sns`**Type**: `STRUCT`**Provider name**: `sns`**Description**: Sends an Amazon SNS message.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message as an Amazon SNS push notification.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `target_arn`**Type**: `STRING`**Provider name**: `targetArn`**Description**: The ARN of the Amazon SNS target where the message is sent.
        - `sqs`**Type**: `STRUCT`**Provider name**: `sqs`**Description**: Sends information about the detector model instance and the event that triggered the action to an Amazon SQS queue.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message to an Amazon SQS queue.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `queue_url`**Type**: `STRING`**Provider name**: `queueUrl`**Description**: The URL of the SQS queue where the data is written.
          - `use_base64`**Type**: `BOOLEAN`**Provider name**: `useBase64`**Description**: 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.
      - `condition`**Type**: `STRING`**Provider name**: `condition`**Description**: 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).
      - `event_name`**Type**: `STRING`**Provider name**: `eventName`**Description**: The name of the event.
  - `on_exit`**Type**: `STRUCT`**Provider name**: `onExit`**Description**: When exiting this state, perform these `actions` if the specified `condition` is `TRUE`.
    - `events`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `events`**Description**: Specifies the `actions` that are performed when the state is exited and the `condition` is `TRUE`.
      - `actions`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `actions`**Description**: The actions to be performed.
        - `clear_timer`**Type**: `STRUCT`**Provider name**: `clearTimer`**Description**: Information needed to clear the timer.
          - `timer_name`**Type**: `STRING`**Provider name**: `timerName`**Description**: The name of the timer to clear.
        - `dynamo_d_bv2`**Type**: `STRUCT`**Provider name**: `dynamoDBv2`**Description**: 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 customize the [payload](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html). A separate column of the DynamoDB table receives one attribute-value pair in the payload that you specify. For more information, see [Actions](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html) in AWS IoT Events Developer Guide.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `table_name`**Type**: `STRING`**Provider name**: `tableName`**Description**: The name of the DynamoDB table.
        - `dynamo_db`**Type**: `STRUCT`**Provider name**: `dynamoDB`**Description**: 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 customize the [payload](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html). One column of the DynamoDB table receives all attribute-value pairs in the payload that you specify. For more information, see [Actions](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html) in AWS IoT Events Developer Guide.
          - `hash_key_field`**Type**: `STRING`**Provider name**: `hashKeyField`**Description**: The name of the hash key (also called the partition key). The `hashKeyField` value must match the partition key of the target DynamoDB table.
          - `hash_key_type`**Type**: `STRING`**Provider name**: `hashKeyType`**Description**: 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'`.
          - `hash_key_value`**Type**: `STRING`**Provider name**: `hashKeyValue`**Description**: The value of the hash key (also called the partition key).
          - `operation`**Type**: `STRING`**Provider name**: `operation`**Description**: 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.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `payload_field`**Type**: `STRING`**Provider name**: `payloadField`**Description**: 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`.
          - `range_key_field`**Type**: `STRING`**Provider name**: `rangeKeyField`**Description**: The name of the range key (also called the sort key). The `rangeKeyField` value must match the sort key of the target DynamoDB table.
          - `range_key_type`**Type**: `STRING`**Provider name**: `rangeKeyType`**Description**: 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'`.
          - `range_key_value`**Type**: `STRING`**Provider name**: `rangeKeyValue`**Description**: The value of the range key (also called the sort key).
          - `table_name`**Type**: `STRING`**Provider name**: `tableName`**Description**: The name of the DynamoDB table. The `tableName` value must match the table name of the target DynamoDB table.
        - `firehose`**Type**: `STRUCT`**Provider name**: `firehose`**Description**: Sends information about the detector model instance and the event that triggered the action to an Amazon Kinesis Data Firehose delivery stream.
          - `delivery_stream_name`**Type**: `STRING`**Provider name**: `deliveryStreamName`**Description**: The name of the Kinesis Data Firehose delivery stream where the data is written.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message to an Amazon Kinesis Data Firehose delivery stream.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `separator`**Type**: `STRING`**Provider name**: `separator`**Description**: A character separator that is used to separate records written to the Kinesis Data Firehose delivery stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma).
        - `iot_events`**Type**: `STRUCT`**Provider name**: `iotEvents`**Description**: Sends AWS IoT Events input, which passes information about the detector model instance and the event that triggered the action.
          - `input_name`**Type**: `STRING`**Provider name**: `inputName`**Description**: The name of the AWS IoT Events input where the data is sent.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message to an AWS IoT Events input.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
        - `iot_site_wise`**Type**: `STRUCT`**Provider name**: `iotSiteWise`**Description**: Sends information about the detector model instance and the event that triggered the action to an asset property in AWS IoT SiteWise .
          - `asset_id`**Type**: `STRING`**Provider name**: `assetId`**Description**: The ID of the asset that has the specified property.
          - `entry_id`**Type**: `STRING`**Provider name**: `entryId`**Description**: 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.
          - `property_alias`**Type**: `STRING`**Provider name**: `propertyAlias`**Description**: The alias of the asset property.
          - `property_id`**Type**: `STRING`**Provider name**: `propertyId`**Description**: The ID of the asset property.
          - `property_value`**Type**: `STRUCT`**Provider name**: `propertyValue`**Description**: The value to send to the asset property. This value contains timestamp, quality, and value (TQV) information.
            - `quality`**Type**: `STRING`**Provider name**: `quality`**Description**: The quality of the asset property value. The value must be `'GOOD'`, `'BAD'`, or `'UNCERTAIN'`.
            - `timestamp`**Type**: `STRUCT`**Provider name**: `timestamp`**Description**: The timestamp associated with the asset property value. The default is the current event time.
              - `offset_in_nanos`**Type**: `STRING`**Provider name**: `offsetInNanos`**Description**: The nanosecond offset converted from `timeInSeconds`. The valid range is between 0-999999999.
              - `time_in_seconds`**Type**: `STRING`**Provider name**: `timeInSeconds`**Description**: The timestamp, in seconds, in the Unix epoch format. The valid range is between 1-31556889864403199.
            - `value`**Type**: `STRUCT`**Provider name**: `value`**Description**: The value to send to an asset property.
              - `boolean_value`**Type**: `STRING`**Provider name**: `booleanValue`**Description**: The asset property value is a Boolean value that must be `'TRUE'` or `'FALSE'`. You must use an expression, and the evaluated result should be a Boolean value.
              - `double_value`**Type**: `STRING`**Provider name**: `doubleValue`**Description**: The asset property value is a double. You must use an expression, and the evaluated result should be a double.
              - `integer_value`**Type**: `STRING`**Provider name**: `integerValue`**Description**: The asset property value is an integer. You must use an expression, and the evaluated result should be an integer.
              - `string_value`**Type**: `STRING`**Provider name**: `stringValue`**Description**: The asset property value is a string. You must use an expression, and the evaluated result should be a string.
        - `iot_topic_publish`**Type**: `STRUCT`**Provider name**: `iotTopicPublish`**Description**: Publishes an MQTT message with the given topic to the AWS IoT message broker.
          - `mqtt_topic`**Type**: `STRING`**Provider name**: `mqttTopic`**Description**: 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`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you publish a message to an AWS IoT Core topic.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
        - `lambda`**Type**: `STRUCT`**Provider name**: `lambda`**Description**: Calls a Lambda function, passing in information about the detector model instance and the event that triggered the action.
          - `function_arn`**Type**: `STRING`**Provider name**: `functionArn`**Description**: The ARN of the Lambda function that is executed.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message to a Lambda function.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
        - `reset_timer`**Type**: `STRUCT`**Provider name**: `resetTimer`**Description**: Information needed to reset the timer.
          - `timer_name`**Type**: `STRING`**Provider name**: `timerName`**Description**: The name of the timer to reset.
        - `set_timer`**Type**: `STRUCT`**Provider name**: `setTimer`**Description**: Information needed to set the timer.
          - `duration_expression`**Type**: `STRING`**Provider name**: `durationExpression`**Description**: 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.
          - `seconds`**Type**: `INT32`**Provider name**: `seconds`**Description**: The number of seconds until the timer expires. The minimum value is 60 seconds to ensure accuracy. The maximum value is 31622400 seconds.
          - `timer_name`**Type**: `STRING`**Provider name**: `timerName`**Description**: The name of the timer.
        - `set_variable`**Type**: `STRUCT`**Provider name**: `setVariable`**Description**: Sets a variable to a specified value.
          - `value`**Type**: `STRING`**Provider name**: `value`**Description**: The new value of the variable.
          - `variable_name`**Type**: `STRING`**Provider name**: `variableName`**Description**: The name of the variable.
        - `sns`**Type**: `STRUCT`**Provider name**: `sns`**Description**: Sends an Amazon SNS message.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message as an Amazon SNS push notification.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `target_arn`**Type**: `STRING`**Provider name**: `targetArn`**Description**: The ARN of the Amazon SNS target where the message is sent.
        - `sqs`**Type**: `STRUCT`**Provider name**: `sqs`**Description**: Sends information about the detector model instance and the event that triggered the action to an Amazon SQS queue.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message to an Amazon SQS queue.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `queue_url`**Type**: `STRING`**Provider name**: `queueUrl`**Description**: The URL of the SQS queue where the data is written.
          - `use_base64`**Type**: `BOOLEAN`**Provider name**: `useBase64`**Description**: 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.
      - `condition`**Type**: `STRING`**Provider name**: `condition`**Description**: 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).
      - `event_name`**Type**: `STRING`**Provider name**: `eventName`**Description**: The name of the event.
  - `on_input`**Type**: `STRUCT`**Provider name**: `onInput`**Description**: When an input is received and the `condition` is TRUE, perform the specified `actions`.
    - `events`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `events`**Description**: Specifies the actions performed when the `condition` evaluates to TRUE.
      - `actions`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `actions`**Description**: The actions to be performed.
        - `clear_timer`**Type**: `STRUCT`**Provider name**: `clearTimer`**Description**: Information needed to clear the timer.
          - `timer_name`**Type**: `STRING`**Provider name**: `timerName`**Description**: The name of the timer to clear.
        - `dynamo_d_bv2`**Type**: `STRUCT`**Provider name**: `dynamoDBv2`**Description**: 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 customize the [payload](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html). A separate column of the DynamoDB table receives one attribute-value pair in the payload that you specify. For more information, see [Actions](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html) in AWS IoT Events Developer Guide.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `table_name`**Type**: `STRING`**Provider name**: `tableName`**Description**: The name of the DynamoDB table.
        - `dynamo_db`**Type**: `STRUCT`**Provider name**: `dynamoDB`**Description**: 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 customize the [payload](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html). One column of the DynamoDB table receives all attribute-value pairs in the payload that you specify. For more information, see [Actions](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html) in AWS IoT Events Developer Guide.
          - `hash_key_field`**Type**: `STRING`**Provider name**: `hashKeyField`**Description**: The name of the hash key (also called the partition key). The `hashKeyField` value must match the partition key of the target DynamoDB table.
          - `hash_key_type`**Type**: `STRING`**Provider name**: `hashKeyType`**Description**: 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'`.
          - `hash_key_value`**Type**: `STRING`**Provider name**: `hashKeyValue`**Description**: The value of the hash key (also called the partition key).
          - `operation`**Type**: `STRING`**Provider name**: `operation`**Description**: 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.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `payload_field`**Type**: `STRING`**Provider name**: `payloadField`**Description**: 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`.
          - `range_key_field`**Type**: `STRING`**Provider name**: `rangeKeyField`**Description**: The name of the range key (also called the sort key). The `rangeKeyField` value must match the sort key of the target DynamoDB table.
          - `range_key_type`**Type**: `STRING`**Provider name**: `rangeKeyType`**Description**: 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'`.
          - `range_key_value`**Type**: `STRING`**Provider name**: `rangeKeyValue`**Description**: The value of the range key (also called the sort key).
          - `table_name`**Type**: `STRING`**Provider name**: `tableName`**Description**: The name of the DynamoDB table. The `tableName` value must match the table name of the target DynamoDB table.
        - `firehose`**Type**: `STRUCT`**Provider name**: `firehose`**Description**: Sends information about the detector model instance and the event that triggered the action to an Amazon Kinesis Data Firehose delivery stream.
          - `delivery_stream_name`**Type**: `STRING`**Provider name**: `deliveryStreamName`**Description**: The name of the Kinesis Data Firehose delivery stream where the data is written.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message to an Amazon Kinesis Data Firehose delivery stream.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `separator`**Type**: `STRING`**Provider name**: `separator`**Description**: A character separator that is used to separate records written to the Kinesis Data Firehose delivery stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma).
        - `iot_events`**Type**: `STRUCT`**Provider name**: `iotEvents`**Description**: Sends AWS IoT Events input, which passes information about the detector model instance and the event that triggered the action.
          - `input_name`**Type**: `STRING`**Provider name**: `inputName`**Description**: The name of the AWS IoT Events input where the data is sent.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message to an AWS IoT Events input.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
        - `iot_site_wise`**Type**: `STRUCT`**Provider name**: `iotSiteWise`**Description**: Sends information about the detector model instance and the event that triggered the action to an asset property in AWS IoT SiteWise .
          - `asset_id`**Type**: `STRING`**Provider name**: `assetId`**Description**: The ID of the asset that has the specified property.
          - `entry_id`**Type**: `STRING`**Provider name**: `entryId`**Description**: 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.
          - `property_alias`**Type**: `STRING`**Provider name**: `propertyAlias`**Description**: The alias of the asset property.
          - `property_id`**Type**: `STRING`**Provider name**: `propertyId`**Description**: The ID of the asset property.
          - `property_value`**Type**: `STRUCT`**Provider name**: `propertyValue`**Description**: The value to send to the asset property. This value contains timestamp, quality, and value (TQV) information.
            - `quality`**Type**: `STRING`**Provider name**: `quality`**Description**: The quality of the asset property value. The value must be `'GOOD'`, `'BAD'`, or `'UNCERTAIN'`.
            - `timestamp`**Type**: `STRUCT`**Provider name**: `timestamp`**Description**: The timestamp associated with the asset property value. The default is the current event time.
              - `offset_in_nanos`**Type**: `STRING`**Provider name**: `offsetInNanos`**Description**: The nanosecond offset converted from `timeInSeconds`. The valid range is between 0-999999999.
              - `time_in_seconds`**Type**: `STRING`**Provider name**: `timeInSeconds`**Description**: The timestamp, in seconds, in the Unix epoch format. The valid range is between 1-31556889864403199.
            - `value`**Type**: `STRUCT`**Provider name**: `value`**Description**: The value to send to an asset property.
              - `boolean_value`**Type**: `STRING`**Provider name**: `booleanValue`**Description**: The asset property value is a Boolean value that must be `'TRUE'` or `'FALSE'`. You must use an expression, and the evaluated result should be a Boolean value.
              - `double_value`**Type**: `STRING`**Provider name**: `doubleValue`**Description**: The asset property value is a double. You must use an expression, and the evaluated result should be a double.
              - `integer_value`**Type**: `STRING`**Provider name**: `integerValue`**Description**: The asset property value is an integer. You must use an expression, and the evaluated result should be an integer.
              - `string_value`**Type**: `STRING`**Provider name**: `stringValue`**Description**: The asset property value is a string. You must use an expression, and the evaluated result should be a string.
        - `iot_topic_publish`**Type**: `STRUCT`**Provider name**: `iotTopicPublish`**Description**: Publishes an MQTT message with the given topic to the AWS IoT message broker.
          - `mqtt_topic`**Type**: `STRING`**Provider name**: `mqttTopic`**Description**: 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`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you publish a message to an AWS IoT Core topic.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
        - `lambda`**Type**: `STRUCT`**Provider name**: `lambda`**Description**: Calls a Lambda function, passing in information about the detector model instance and the event that triggered the action.
          - `function_arn`**Type**: `STRING`**Provider name**: `functionArn`**Description**: The ARN of the Lambda function that is executed.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message to a Lambda function.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
        - `reset_timer`**Type**: `STRUCT`**Provider name**: `resetTimer`**Description**: Information needed to reset the timer.
          - `timer_name`**Type**: `STRING`**Provider name**: `timerName`**Description**: The name of the timer to reset.
        - `set_timer`**Type**: `STRUCT`**Provider name**: `setTimer`**Description**: Information needed to set the timer.
          - `duration_expression`**Type**: `STRING`**Provider name**: `durationExpression`**Description**: 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.
          - `seconds`**Type**: `INT32`**Provider name**: `seconds`**Description**: The number of seconds until the timer expires. The minimum value is 60 seconds to ensure accuracy. The maximum value is 31622400 seconds.
          - `timer_name`**Type**: `STRING`**Provider name**: `timerName`**Description**: The name of the timer.
        - `set_variable`**Type**: `STRUCT`**Provider name**: `setVariable`**Description**: Sets a variable to a specified value.
          - `value`**Type**: `STRING`**Provider name**: `value`**Description**: The new value of the variable.
          - `variable_name`**Type**: `STRING`**Provider name**: `variableName`**Description**: The name of the variable.
        - `sns`**Type**: `STRUCT`**Provider name**: `sns`**Description**: Sends an Amazon SNS message.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message as an Amazon SNS push notification.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `target_arn`**Type**: `STRING`**Provider name**: `targetArn`**Description**: The ARN of the Amazon SNS target where the message is sent.
        - `sqs`**Type**: `STRUCT`**Provider name**: `sqs`**Description**: Sends information about the detector model instance and the event that triggered the action to an Amazon SQS queue.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message to an Amazon SQS queue.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `queue_url`**Type**: `STRING`**Provider name**: `queueUrl`**Description**: The URL of the SQS queue where the data is written.
          - `use_base64`**Type**: `BOOLEAN`**Provider name**: `useBase64`**Description**: 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.
      - `condition`**Type**: `STRING`**Provider name**: `condition`**Description**: 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).
      - `event_name`**Type**: `STRING`**Provider name**: `eventName`**Description**: The name of the event.
    - `transition_events`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `transitionEvents`**Description**: Specifies the actions performed, and the next state entered, when a `condition` evaluates to TRUE.
      - `actions`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `actions`**Description**: The actions to be performed.
        - `clear_timer`**Type**: `STRUCT`**Provider name**: `clearTimer`**Description**: Information needed to clear the timer.
          - `timer_name`**Type**: `STRING`**Provider name**: `timerName`**Description**: The name of the timer to clear.
        - `dynamo_d_bv2`**Type**: `STRUCT`**Provider name**: `dynamoDBv2`**Description**: 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 customize the [payload](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html). A separate column of the DynamoDB table receives one attribute-value pair in the payload that you specify. For more information, see [Actions](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html) in AWS IoT Events Developer Guide.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `table_name`**Type**: `STRING`**Provider name**: `tableName`**Description**: The name of the DynamoDB table.
        - `dynamo_db`**Type**: `STRUCT`**Provider name**: `dynamoDB`**Description**: 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 customize the [payload](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html). One column of the DynamoDB table receives all attribute-value pairs in the payload that you specify. For more information, see [Actions](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-event-actions.html) in AWS IoT Events Developer Guide.
          - `hash_key_field`**Type**: `STRING`**Provider name**: `hashKeyField`**Description**: The name of the hash key (also called the partition key). The `hashKeyField` value must match the partition key of the target DynamoDB table.
          - `hash_key_type`**Type**: `STRING`**Provider name**: `hashKeyType`**Description**: 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'`.
          - `hash_key_value`**Type**: `STRING`**Provider name**: `hashKeyValue`**Description**: The value of the hash key (also called the partition key).
          - `operation`**Type**: `STRING`**Provider name**: `operation`**Description**: 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.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `payload_field`**Type**: `STRING`**Provider name**: `payloadField`**Description**: 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`.
          - `range_key_field`**Type**: `STRING`**Provider name**: `rangeKeyField`**Description**: The name of the range key (also called the sort key). The `rangeKeyField` value must match the sort key of the target DynamoDB table.
          - `range_key_type`**Type**: `STRING`**Provider name**: `rangeKeyType`**Description**: 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'`.
          - `range_key_value`**Type**: `STRING`**Provider name**: `rangeKeyValue`**Description**: The value of the range key (also called the sort key).
          - `table_name`**Type**: `STRING`**Provider name**: `tableName`**Description**: The name of the DynamoDB table. The `tableName` value must match the table name of the target DynamoDB table.
        - `firehose`**Type**: `STRUCT`**Provider name**: `firehose`**Description**: Sends information about the detector model instance and the event that triggered the action to an Amazon Kinesis Data Firehose delivery stream.
          - `delivery_stream_name`**Type**: `STRING`**Provider name**: `deliveryStreamName`**Description**: The name of the Kinesis Data Firehose delivery stream where the data is written.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message to an Amazon Kinesis Data Firehose delivery stream.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `separator`**Type**: `STRING`**Provider name**: `separator`**Description**: A character separator that is used to separate records written to the Kinesis Data Firehose delivery stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma).
        - `iot_events`**Type**: `STRUCT`**Provider name**: `iotEvents`**Description**: Sends AWS IoT Events input, which passes information about the detector model instance and the event that triggered the action.
          - `input_name`**Type**: `STRING`**Provider name**: `inputName`**Description**: The name of the AWS IoT Events input where the data is sent.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message to an AWS IoT Events input.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
        - `iot_site_wise`**Type**: `STRUCT`**Provider name**: `iotSiteWise`**Description**: Sends information about the detector model instance and the event that triggered the action to an asset property in AWS IoT SiteWise .
          - `asset_id`**Type**: `STRING`**Provider name**: `assetId`**Description**: The ID of the asset that has the specified property.
          - `entry_id`**Type**: `STRING`**Provider name**: `entryId`**Description**: 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.
          - `property_alias`**Type**: `STRING`**Provider name**: `propertyAlias`**Description**: The alias of the asset property.
          - `property_id`**Type**: `STRING`**Provider name**: `propertyId`**Description**: The ID of the asset property.
          - `property_value`**Type**: `STRUCT`**Provider name**: `propertyValue`**Description**: The value to send to the asset property. This value contains timestamp, quality, and value (TQV) information.
            - `quality`**Type**: `STRING`**Provider name**: `quality`**Description**: The quality of the asset property value. The value must be `'GOOD'`, `'BAD'`, or `'UNCERTAIN'`.
            - `timestamp`**Type**: `STRUCT`**Provider name**: `timestamp`**Description**: The timestamp associated with the asset property value. The default is the current event time.
              - `offset_in_nanos`**Type**: `STRING`**Provider name**: `offsetInNanos`**Description**: The nanosecond offset converted from `timeInSeconds`. The valid range is between 0-999999999.
              - `time_in_seconds`**Type**: `STRING`**Provider name**: `timeInSeconds`**Description**: The timestamp, in seconds, in the Unix epoch format. The valid range is between 1-31556889864403199.
            - `value`**Type**: `STRUCT`**Provider name**: `value`**Description**: The value to send to an asset property.
              - `boolean_value`**Type**: `STRING`**Provider name**: `booleanValue`**Description**: The asset property value is a Boolean value that must be `'TRUE'` or `'FALSE'`. You must use an expression, and the evaluated result should be a Boolean value.
              - `double_value`**Type**: `STRING`**Provider name**: `doubleValue`**Description**: The asset property value is a double. You must use an expression, and the evaluated result should be a double.
              - `integer_value`**Type**: `STRING`**Provider name**: `integerValue`**Description**: The asset property value is an integer. You must use an expression, and the evaluated result should be an integer.
              - `string_value`**Type**: `STRING`**Provider name**: `stringValue`**Description**: The asset property value is a string. You must use an expression, and the evaluated result should be a string.
        - `iot_topic_publish`**Type**: `STRUCT`**Provider name**: `iotTopicPublish`**Description**: Publishes an MQTT message with the given topic to the AWS IoT message broker.
          - `mqtt_topic`**Type**: `STRING`**Provider name**: `mqttTopic`**Description**: 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`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you publish a message to an AWS IoT Core topic.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
        - `lambda`**Type**: `STRUCT`**Provider name**: `lambda`**Description**: Calls a Lambda function, passing in information about the detector model instance and the event that triggered the action.
          - `function_arn`**Type**: `STRING`**Provider name**: `functionArn`**Description**: The ARN of the Lambda function that is executed.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message to a Lambda function.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
        - `reset_timer`**Type**: `STRUCT`**Provider name**: `resetTimer`**Description**: Information needed to reset the timer.
          - `timer_name`**Type**: `STRING`**Provider name**: `timerName`**Description**: The name of the timer to reset.
        - `set_timer`**Type**: `STRUCT`**Provider name**: `setTimer`**Description**: Information needed to set the timer.
          - `duration_expression`**Type**: `STRING`**Provider name**: `durationExpression`**Description**: 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.
          - `seconds`**Type**: `INT32`**Provider name**: `seconds`**Description**: The number of seconds until the timer expires. The minimum value is 60 seconds to ensure accuracy. The maximum value is 31622400 seconds.
          - `timer_name`**Type**: `STRING`**Provider name**: `timerName`**Description**: The name of the timer.
        - `set_variable`**Type**: `STRUCT`**Provider name**: `setVariable`**Description**: Sets a variable to a specified value.
          - `value`**Type**: `STRING`**Provider name**: `value`**Description**: The new value of the variable.
          - `variable_name`**Type**: `STRING`**Provider name**: `variableName`**Description**: The name of the variable.
        - `sns`**Type**: `STRUCT`**Provider name**: `sns`**Description**: Sends an Amazon SNS message.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message as an Amazon SNS push notification.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `target_arn`**Type**: `STRING`**Provider name**: `targetArn`**Description**: The ARN of the Amazon SNS target where the message is sent.
        - `sqs`**Type**: `STRUCT`**Provider name**: `sqs`**Description**: Sends information about the detector model instance and the event that triggered the action to an Amazon SQS queue.
          - `payload`**Type**: `STRUCT`**Provider name**: `payload`**Description**: You can configure the action payload when you send a message to an Amazon SQS queue.
            - `content_expression`**Type**: `STRING`**Provider name**: `contentExpression`**Description**: 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`**Type**: `STRING`**Provider name**: `type`**Description**: The value of the payload type can be either `STRING` or `JSON`.
          - `queue_url`**Type**: `STRING`**Provider name**: `queueUrl`**Description**: The URL of the SQS queue where the data is written.
          - `use_base64`**Type**: `BOOLEAN`**Provider name**: `useBase64`**Description**: 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.
      - `condition`**Type**: `STRING`**Provider name**: `condition`**Description**: Required. A Boolean expression that when TRUE causes the actions to be performed and the `nextState` to be entered.
      - `event_name`**Type**: `STRING`**Provider name**: `eventName`**Description**: The name of the transition event.
      - `next_state`**Type**: `STRING`**Provider name**: `nextState`**Description**: The next state to enter.
  - `state_name`**Type**: `STRING`**Provider name**: `stateName`**Description**: The name of the state.

## `tags`{% #tags %}

**Type**: `UNORDERED_LIST_STRING`
