:doc:`IoTEvents <../../iotevents>` / Client / start_detector_model_analysis

*****************************
start_detector_model_analysis
*****************************



.. py:method:: IoTEvents.Client.start_detector_model_analysis(**kwargs)

  

  Performs an analysis of your detector model. For more information, see `Troubleshooting a detector model <https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-analyze-api.html>`__ in the *AWS IoT Events Developer Guide*.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/iotevents-2018-07-27/StartDetectorModelAnalysis>`_  


  **Request Syntax**
  ::

    response = client.start_detector_model_analysis(
        detectorModelDefinition={
            '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': 123,
                                            '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': 123,
                                            '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': 123,
                                            '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': 123,
                                            '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'
        }
    )
    
  :type detectorModelDefinition: dict
  :param detectorModelDefinition: **[REQUIRED]** 

    Information that defines how a detector operates.

    

  
    - **states** *(list) --* **[REQUIRED]** 

      Information about the states of the detector.

      

    
      - *(dict) --* 

        Information that defines a state of a detector.

        

      
        - **stateName** *(string) --* **[REQUIRED]** 

          The name of the state.

          

        
        - **onInput** *(dict) --* 

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

          

        
          - **events** *(list) --* 

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

            

          
            - *(dict) --* 

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

              

            
              - **eventName** *(string) --* **[REQUIRED]** 

                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.

                

              
                - *(dict) --* 

                  An action to be performed when the ``condition`` is TRUE.

                  

                
                  - **setVariable** *(dict) --* 

                    Sets a variable to a specified value.

                    

                  
                    - **variableName** *(string) --* **[REQUIRED]** 

                      The name of the variable.

                      

                    
                    - **value** *(string) --* **[REQUIRED]** 

                      The new value of the variable.

                      

                    
                  
                  - **sns** *(dict) --* 

                    Sends an Amazon SNS message.

                    

                  
                    - **targetArn** *(string) --* **[REQUIRED]** 

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

                      

                    
                    - **payload** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **iotTopicPublish** *(dict) --* 

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

                    

                  
                    - **mqttTopic** *(string) --* **[REQUIRED]** 

                      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** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **setTimer** *(dict) --* 

                    Information needed to set the timer.

                    

                  
                    - **timerName** *(string) --* **[REQUIRED]** 

                      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** *(dict) --* 

                    Information needed to clear the timer.

                    

                  
                    - **timerName** *(string) --* **[REQUIRED]** 

                      The name of the timer to clear.

                      

                    
                  
                  - **resetTimer** *(dict) --* 

                    Information needed to reset the timer.

                    

                  
                    - **timerName** *(string) --* **[REQUIRED]** 

                      The name of the timer to reset.

                      

                    
                  
                  - **lambda** *(dict) --* 

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

                    

                  
                    - **functionArn** *(string) --* **[REQUIRED]** 

                      The ARN of the Lambda function that is executed.

                      

                    
                    - **payload** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **iotEvents** *(dict) --* 

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

                    

                  
                    - **inputName** *(string) --* **[REQUIRED]** 

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

                      

                    
                    - **payload** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **sqs** *(dict) --* 

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

                    

                  
                    - **queueUrl** *(string) --* **[REQUIRED]** 

                      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** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **firehose** *(dict) --* 

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

                    

                  
                    - **deliveryStreamName** *(string) --* **[REQUIRED]** 

                      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), '\r\n' (Windows newline), ',' (comma).

                      

                    
                    - **payload** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **dynamoDB** *(dict) --* 

                    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*.

                    

                  
                    - **hashKeyType** *(string) --* 

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

                       

                      
                      * ``'STRING'`` - The hash key is a string.
                       
                      * ``'NUMBER'`` - The hash key is a number.
                      

                       

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

                      

                    
                    - **hashKeyField** *(string) --* **[REQUIRED]** 

                      The name of the hash key (also called the partition key). The ``hashKeyField`` value must match the partition key of the target DynamoDB table.

                      

                    
                    - **hashKeyValue** *(string) --* **[REQUIRED]** 

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

                      

                    
                    - **rangeKeyType** *(string) --* 

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

                       

                      
                      * ``'STRING'`` - The range key is a string.
                       
                      * ``'NUMBER'`` - The range key is number.
                      

                       

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

                      

                    
                    - **rangeKeyField** *(string) --* 

                      The name of the range key (also called the sort key). The ``rangeKeyField`` value must match the sort key of the target DynamoDB table.

                      

                    
                    - **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) --* **[REQUIRED]** 

                      The name of the DynamoDB table. The ``tableName`` value must match the table name of the target DynamoDB table.

                      

                    
                    - **payload** *(dict) --* 

                      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) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **dynamoDBv2** *(dict) --* 

                    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*.

                    

                  
                    - **tableName** *(string) --* **[REQUIRED]** 

                      The name of the DynamoDB table.

                      

                    
                    - **payload** *(dict) --* 

                      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) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **iotSiteWise** *(dict) --* 

                    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.

                      

                    
                    - **assetId** *(string) --* 

                      The ID of the asset that has the specified property.

                      

                    
                    - **propertyId** *(string) --* 

                      The ID of the asset property.

                      

                    
                    - **propertyAlias** *(string) --* 

                      The alias of the asset property.

                      

                    
                    - **propertyValue** *(dict) --* 

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

                      

                    
                      - **value** *(dict) --* 

                        The value to send to an asset property.

                        

                      
                        - **stringValue** *(string) --* 

                          The asset property value is a string. You must use an expression, and the evaluated result should be a string.

                          

                        
                        - **integerValue** *(string) --* 

                          The asset property value is an integer. You must use an expression, and the evaluated result should be an integer.

                          

                        
                        - **doubleValue** *(string) --* 

                          The asset property value is a double. You must use an expression, and the evaluated result should be a double.

                          

                        
                        - **booleanValue** *(string) --* 

                          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.

                          

                        
                      
                      - **timestamp** *(dict) --* 

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

                        

                      
                        - **timeInSeconds** *(string) --* **[REQUIRED]** 

                          The timestamp, in seconds, in the Unix epoch format. The valid range is between 1-31556889864403199.

                          

                        
                        - **offsetInNanos** *(string) --* 

                          The nanosecond offset converted from ``timeInSeconds``. The valid range is between 0-999999999.

                          

                        
                      
                      - **quality** *(string) --* 

                        The quality of the asset property value. The value must be ``'GOOD'``, ``'BAD'``, or ``'UNCERTAIN'``.

                        

                      
                    
                  
                
            
            
        
          - **transitionEvents** *(list) --* 

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

            

          
            - *(dict) --* 

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

              

            
              - **eventName** *(string) --* **[REQUIRED]** 

                The name of the transition event.

                

              
              - **condition** *(string) --* **[REQUIRED]** 

                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.

                

              
                - *(dict) --* 

                  An action to be performed when the ``condition`` is TRUE.

                  

                
                  - **setVariable** *(dict) --* 

                    Sets a variable to a specified value.

                    

                  
                    - **variableName** *(string) --* **[REQUIRED]** 

                      The name of the variable.

                      

                    
                    - **value** *(string) --* **[REQUIRED]** 

                      The new value of the variable.

                      

                    
                  
                  - **sns** *(dict) --* 

                    Sends an Amazon SNS message.

                    

                  
                    - **targetArn** *(string) --* **[REQUIRED]** 

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

                      

                    
                    - **payload** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **iotTopicPublish** *(dict) --* 

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

                    

                  
                    - **mqttTopic** *(string) --* **[REQUIRED]** 

                      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** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **setTimer** *(dict) --* 

                    Information needed to set the timer.

                    

                  
                    - **timerName** *(string) --* **[REQUIRED]** 

                      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** *(dict) --* 

                    Information needed to clear the timer.

                    

                  
                    - **timerName** *(string) --* **[REQUIRED]** 

                      The name of the timer to clear.

                      

                    
                  
                  - **resetTimer** *(dict) --* 

                    Information needed to reset the timer.

                    

                  
                    - **timerName** *(string) --* **[REQUIRED]** 

                      The name of the timer to reset.

                      

                    
                  
                  - **lambda** *(dict) --* 

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

                    

                  
                    - **functionArn** *(string) --* **[REQUIRED]** 

                      The ARN of the Lambda function that is executed.

                      

                    
                    - **payload** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **iotEvents** *(dict) --* 

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

                    

                  
                    - **inputName** *(string) --* **[REQUIRED]** 

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

                      

                    
                    - **payload** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **sqs** *(dict) --* 

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

                    

                  
                    - **queueUrl** *(string) --* **[REQUIRED]** 

                      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** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **firehose** *(dict) --* 

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

                    

                  
                    - **deliveryStreamName** *(string) --* **[REQUIRED]** 

                      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), '\r\n' (Windows newline), ',' (comma).

                      

                    
                    - **payload** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **dynamoDB** *(dict) --* 

                    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*.

                    

                  
                    - **hashKeyType** *(string) --* 

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

                       

                      
                      * ``'STRING'`` - The hash key is a string.
                       
                      * ``'NUMBER'`` - The hash key is a number.
                      

                       

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

                      

                    
                    - **hashKeyField** *(string) --* **[REQUIRED]** 

                      The name of the hash key (also called the partition key). The ``hashKeyField`` value must match the partition key of the target DynamoDB table.

                      

                    
                    - **hashKeyValue** *(string) --* **[REQUIRED]** 

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

                      

                    
                    - **rangeKeyType** *(string) --* 

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

                       

                      
                      * ``'STRING'`` - The range key is a string.
                       
                      * ``'NUMBER'`` - The range key is number.
                      

                       

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

                      

                    
                    - **rangeKeyField** *(string) --* 

                      The name of the range key (also called the sort key). The ``rangeKeyField`` value must match the sort key of the target DynamoDB table.

                      

                    
                    - **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) --* **[REQUIRED]** 

                      The name of the DynamoDB table. The ``tableName`` value must match the table name of the target DynamoDB table.

                      

                    
                    - **payload** *(dict) --* 

                      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) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **dynamoDBv2** *(dict) --* 

                    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*.

                    

                  
                    - **tableName** *(string) --* **[REQUIRED]** 

                      The name of the DynamoDB table.

                      

                    
                    - **payload** *(dict) --* 

                      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) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **iotSiteWise** *(dict) --* 

                    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.

                      

                    
                    - **assetId** *(string) --* 

                      The ID of the asset that has the specified property.

                      

                    
                    - **propertyId** *(string) --* 

                      The ID of the asset property.

                      

                    
                    - **propertyAlias** *(string) --* 

                      The alias of the asset property.

                      

                    
                    - **propertyValue** *(dict) --* 

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

                      

                    
                      - **value** *(dict) --* 

                        The value to send to an asset property.

                        

                      
                        - **stringValue** *(string) --* 

                          The asset property value is a string. You must use an expression, and the evaluated result should be a string.

                          

                        
                        - **integerValue** *(string) --* 

                          The asset property value is an integer. You must use an expression, and the evaluated result should be an integer.

                          

                        
                        - **doubleValue** *(string) --* 

                          The asset property value is a double. You must use an expression, and the evaluated result should be a double.

                          

                        
                        - **booleanValue** *(string) --* 

                          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.

                          

                        
                      
                      - **timestamp** *(dict) --* 

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

                        

                      
                        - **timeInSeconds** *(string) --* **[REQUIRED]** 

                          The timestamp, in seconds, in the Unix epoch format. The valid range is between 1-31556889864403199.

                          

                        
                        - **offsetInNanos** *(string) --* 

                          The nanosecond offset converted from ``timeInSeconds``. The valid range is between 0-999999999.

                          

                        
                      
                      - **quality** *(string) --* 

                        The quality of the asset property value. The value must be ``'GOOD'``, ``'BAD'``, or ``'UNCERTAIN'``.

                        

                      
                    
                  
                
            
              - **nextState** *(string) --* **[REQUIRED]** 

                The next state to enter.

                

              
            
        
        
        - **onEnter** *(dict) --* 

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

          

        
          - **events** *(list) --* 

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

            

          
            - *(dict) --* 

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

              

            
              - **eventName** *(string) --* **[REQUIRED]** 

                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.

                

              
                - *(dict) --* 

                  An action to be performed when the ``condition`` is TRUE.

                  

                
                  - **setVariable** *(dict) --* 

                    Sets a variable to a specified value.

                    

                  
                    - **variableName** *(string) --* **[REQUIRED]** 

                      The name of the variable.

                      

                    
                    - **value** *(string) --* **[REQUIRED]** 

                      The new value of the variable.

                      

                    
                  
                  - **sns** *(dict) --* 

                    Sends an Amazon SNS message.

                    

                  
                    - **targetArn** *(string) --* **[REQUIRED]** 

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

                      

                    
                    - **payload** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **iotTopicPublish** *(dict) --* 

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

                    

                  
                    - **mqttTopic** *(string) --* **[REQUIRED]** 

                      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** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **setTimer** *(dict) --* 

                    Information needed to set the timer.

                    

                  
                    - **timerName** *(string) --* **[REQUIRED]** 

                      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** *(dict) --* 

                    Information needed to clear the timer.

                    

                  
                    - **timerName** *(string) --* **[REQUIRED]** 

                      The name of the timer to clear.

                      

                    
                  
                  - **resetTimer** *(dict) --* 

                    Information needed to reset the timer.

                    

                  
                    - **timerName** *(string) --* **[REQUIRED]** 

                      The name of the timer to reset.

                      

                    
                  
                  - **lambda** *(dict) --* 

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

                    

                  
                    - **functionArn** *(string) --* **[REQUIRED]** 

                      The ARN of the Lambda function that is executed.

                      

                    
                    - **payload** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **iotEvents** *(dict) --* 

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

                    

                  
                    - **inputName** *(string) --* **[REQUIRED]** 

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

                      

                    
                    - **payload** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **sqs** *(dict) --* 

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

                    

                  
                    - **queueUrl** *(string) --* **[REQUIRED]** 

                      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** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **firehose** *(dict) --* 

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

                    

                  
                    - **deliveryStreamName** *(string) --* **[REQUIRED]** 

                      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), '\r\n' (Windows newline), ',' (comma).

                      

                    
                    - **payload** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **dynamoDB** *(dict) --* 

                    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*.

                    

                  
                    - **hashKeyType** *(string) --* 

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

                       

                      
                      * ``'STRING'`` - The hash key is a string.
                       
                      * ``'NUMBER'`` - The hash key is a number.
                      

                       

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

                      

                    
                    - **hashKeyField** *(string) --* **[REQUIRED]** 

                      The name of the hash key (also called the partition key). The ``hashKeyField`` value must match the partition key of the target DynamoDB table.

                      

                    
                    - **hashKeyValue** *(string) --* **[REQUIRED]** 

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

                      

                    
                    - **rangeKeyType** *(string) --* 

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

                       

                      
                      * ``'STRING'`` - The range key is a string.
                       
                      * ``'NUMBER'`` - The range key is number.
                      

                       

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

                      

                    
                    - **rangeKeyField** *(string) --* 

                      The name of the range key (also called the sort key). The ``rangeKeyField`` value must match the sort key of the target DynamoDB table.

                      

                    
                    - **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) --* **[REQUIRED]** 

                      The name of the DynamoDB table. The ``tableName`` value must match the table name of the target DynamoDB table.

                      

                    
                    - **payload** *(dict) --* 

                      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) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **dynamoDBv2** *(dict) --* 

                    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*.

                    

                  
                    - **tableName** *(string) --* **[REQUIRED]** 

                      The name of the DynamoDB table.

                      

                    
                    - **payload** *(dict) --* 

                      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) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **iotSiteWise** *(dict) --* 

                    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.

                      

                    
                    - **assetId** *(string) --* 

                      The ID of the asset that has the specified property.

                      

                    
                    - **propertyId** *(string) --* 

                      The ID of the asset property.

                      

                    
                    - **propertyAlias** *(string) --* 

                      The alias of the asset property.

                      

                    
                    - **propertyValue** *(dict) --* 

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

                      

                    
                      - **value** *(dict) --* 

                        The value to send to an asset property.

                        

                      
                        - **stringValue** *(string) --* 

                          The asset property value is a string. You must use an expression, and the evaluated result should be a string.

                          

                        
                        - **integerValue** *(string) --* 

                          The asset property value is an integer. You must use an expression, and the evaluated result should be an integer.

                          

                        
                        - **doubleValue** *(string) --* 

                          The asset property value is a double. You must use an expression, and the evaluated result should be a double.

                          

                        
                        - **booleanValue** *(string) --* 

                          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.

                          

                        
                      
                      - **timestamp** *(dict) --* 

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

                        

                      
                        - **timeInSeconds** *(string) --* **[REQUIRED]** 

                          The timestamp, in seconds, in the Unix epoch format. The valid range is between 1-31556889864403199.

                          

                        
                        - **offsetInNanos** *(string) --* 

                          The nanosecond offset converted from ``timeInSeconds``. The valid range is between 0-999999999.

                          

                        
                      
                      - **quality** *(string) --* 

                        The quality of the asset property value. The value must be ``'GOOD'``, ``'BAD'``, or ``'UNCERTAIN'``.

                        

                      
                    
                  
                
            
            
        
        
        - **onExit** *(dict) --* 

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

          

        
          - **events** *(list) --* 

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

            

          
            - *(dict) --* 

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

              

            
              - **eventName** *(string) --* **[REQUIRED]** 

                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.

                

              
                - *(dict) --* 

                  An action to be performed when the ``condition`` is TRUE.

                  

                
                  - **setVariable** *(dict) --* 

                    Sets a variable to a specified value.

                    

                  
                    - **variableName** *(string) --* **[REQUIRED]** 

                      The name of the variable.

                      

                    
                    - **value** *(string) --* **[REQUIRED]** 

                      The new value of the variable.

                      

                    
                  
                  - **sns** *(dict) --* 

                    Sends an Amazon SNS message.

                    

                  
                    - **targetArn** *(string) --* **[REQUIRED]** 

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

                      

                    
                    - **payload** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **iotTopicPublish** *(dict) --* 

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

                    

                  
                    - **mqttTopic** *(string) --* **[REQUIRED]** 

                      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** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **setTimer** *(dict) --* 

                    Information needed to set the timer.

                    

                  
                    - **timerName** *(string) --* **[REQUIRED]** 

                      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** *(dict) --* 

                    Information needed to clear the timer.

                    

                  
                    - **timerName** *(string) --* **[REQUIRED]** 

                      The name of the timer to clear.

                      

                    
                  
                  - **resetTimer** *(dict) --* 

                    Information needed to reset the timer.

                    

                  
                    - **timerName** *(string) --* **[REQUIRED]** 

                      The name of the timer to reset.

                      

                    
                  
                  - **lambda** *(dict) --* 

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

                    

                  
                    - **functionArn** *(string) --* **[REQUIRED]** 

                      The ARN of the Lambda function that is executed.

                      

                    
                    - **payload** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **iotEvents** *(dict) --* 

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

                    

                  
                    - **inputName** *(string) --* **[REQUIRED]** 

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

                      

                    
                    - **payload** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **sqs** *(dict) --* 

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

                    

                  
                    - **queueUrl** *(string) --* **[REQUIRED]** 

                      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** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **firehose** *(dict) --* 

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

                    

                  
                    - **deliveryStreamName** *(string) --* **[REQUIRED]** 

                      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), '\r\n' (Windows newline), ',' (comma).

                      

                    
                    - **payload** *(dict) --* 

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

                      

                    
                      - **contentExpression** *(string) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **dynamoDB** *(dict) --* 

                    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*.

                    

                  
                    - **hashKeyType** *(string) --* 

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

                       

                      
                      * ``'STRING'`` - The hash key is a string.
                       
                      * ``'NUMBER'`` - The hash key is a number.
                      

                       

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

                      

                    
                    - **hashKeyField** *(string) --* **[REQUIRED]** 

                      The name of the hash key (also called the partition key). The ``hashKeyField`` value must match the partition key of the target DynamoDB table.

                      

                    
                    - **hashKeyValue** *(string) --* **[REQUIRED]** 

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

                      

                    
                    - **rangeKeyType** *(string) --* 

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

                       

                      
                      * ``'STRING'`` - The range key is a string.
                       
                      * ``'NUMBER'`` - The range key is number.
                      

                       

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

                      

                    
                    - **rangeKeyField** *(string) --* 

                      The name of the range key (also called the sort key). The ``rangeKeyField`` value must match the sort key of the target DynamoDB table.

                      

                    
                    - **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) --* **[REQUIRED]** 

                      The name of the DynamoDB table. The ``tableName`` value must match the table name of the target DynamoDB table.

                      

                    
                    - **payload** *(dict) --* 

                      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) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **dynamoDBv2** *(dict) --* 

                    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*.

                    

                  
                    - **tableName** *(string) --* **[REQUIRED]** 

                      The name of the DynamoDB table.

                      

                    
                    - **payload** *(dict) --* 

                      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) --* **[REQUIRED]** 

                        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) --* **[REQUIRED]** 

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

                        

                      
                    
                  
                  - **iotSiteWise** *(dict) --* 

                    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.

                      

                    
                    - **assetId** *(string) --* 

                      The ID of the asset that has the specified property.

                      

                    
                    - **propertyId** *(string) --* 

                      The ID of the asset property.

                      

                    
                    - **propertyAlias** *(string) --* 

                      The alias of the asset property.

                      

                    
                    - **propertyValue** *(dict) --* 

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

                      

                    
                      - **value** *(dict) --* 

                        The value to send to an asset property.

                        

                      
                        - **stringValue** *(string) --* 

                          The asset property value is a string. You must use an expression, and the evaluated result should be a string.

                          

                        
                        - **integerValue** *(string) --* 

                          The asset property value is an integer. You must use an expression, and the evaluated result should be an integer.

                          

                        
                        - **doubleValue** *(string) --* 

                          The asset property value is a double. You must use an expression, and the evaluated result should be a double.

                          

                        
                        - **booleanValue** *(string) --* 

                          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.

                          

                        
                      
                      - **timestamp** *(dict) --* 

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

                        

                      
                        - **timeInSeconds** *(string) --* **[REQUIRED]** 

                          The timestamp, in seconds, in the Unix epoch format. The valid range is between 1-31556889864403199.

                          

                        
                        - **offsetInNanos** *(string) --* 

                          The nanosecond offset converted from ``timeInSeconds``. The valid range is between 0-999999999.

                          

                        
                      
                      - **quality** *(string) --* 

                        The quality of the asset property value. The value must be ``'GOOD'``, ``'BAD'``, or ``'UNCERTAIN'``.

                        

                      
                    
                  
                
            
            
        
        
      
  
    - **initialStateName** *(string) --* **[REQUIRED]** 

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

      

    
  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'analysisId': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **analysisId** *(string) --* 

        The ID that you can use to retrieve the analysis result.

        
  
  **Exceptions**
  
  *   :py:class:`IoTEvents.Client.exceptions.InvalidRequestException`

  
  *   :py:class:`IoTEvents.Client.exceptions.LimitExceededException`

  
  *   :py:class:`IoTEvents.Client.exceptions.ThrottlingException`

  
  *   :py:class:`IoTEvents.Client.exceptions.InternalFailureException`

  
  *   :py:class:`IoTEvents.Client.exceptions.ServiceUnavailableException`

  