class Aws::IoTEvents::Types::DetectorModelDefinition

Information that defines how a detector operates.

@note When making an API call, you may pass DetectorModelDefinition

data as a hash:

    {
      states: [ # required
        {
          state_name: "StateName", # required
          on_input: {
            events: [
              {
                event_name: "EventName", # required
                condition: "Condition",
                actions: [
                  {
                    set_variable: {
                      variable_name: "VariableName", # required
                      value: "VariableValue", # required
                    },
                    sns: {
                      target_arn: "AmazonResourceName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    iot_topic_publish: {
                      mqtt_topic: "MQTTTopic", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    set_timer: {
                      timer_name: "TimerName", # required
                      seconds: 1,
                      duration_expression: "VariableValue",
                    },
                    clear_timer: {
                      timer_name: "TimerName", # required
                    },
                    reset_timer: {
                      timer_name: "TimerName", # required
                    },
                    lambda: {
                      function_arn: "AmazonResourceName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    iot_events: {
                      input_name: "InputName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    sqs: {
                      queue_url: "QueueUrl", # required
                      use_base_64: false,
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    firehose: {
                      delivery_stream_name: "DeliveryStreamName", # required
                      separator: "FirehoseSeparator",
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    dynamo_db: {
                      hash_key_type: "DynamoKeyType",
                      hash_key_field: "DynamoKeyField", # required
                      hash_key_value: "DynamoKeyValue", # required
                      range_key_type: "DynamoKeyType",
                      range_key_field: "DynamoKeyField",
                      range_key_value: "DynamoKeyValue",
                      operation: "DynamoOperation",
                      payload_field: "DynamoKeyField",
                      table_name: "DynamoTableName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    dynamo_d_bv_2: {
                      table_name: "DynamoTableName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    iot_site_wise: {
                      entry_id: "AssetPropertyEntryId",
                      asset_id: "AssetId",
                      property_id: "AssetPropertyId",
                      property_alias: "AssetPropertyAlias",
                      property_value: {
                        value: {
                          string_value: "AssetPropertyStringValue",
                          integer_value: "AssetPropertyIntegerValue",
                          double_value: "AssetPropertyDoubleValue",
                          boolean_value: "AssetPropertyBooleanValue",
                        },
                        timestamp: {
                          time_in_seconds: "AssetPropertyTimeInSeconds", # required
                          offset_in_nanos: "AssetPropertyOffsetInNanos",
                        },
                        quality: "AssetPropertyQuality",
                      },
                    },
                  },
                ],
              },
            ],
            transition_events: [
              {
                event_name: "EventName", # required
                condition: "Condition", # required
                actions: [
                  {
                    set_variable: {
                      variable_name: "VariableName", # required
                      value: "VariableValue", # required
                    },
                    sns: {
                      target_arn: "AmazonResourceName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    iot_topic_publish: {
                      mqtt_topic: "MQTTTopic", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    set_timer: {
                      timer_name: "TimerName", # required
                      seconds: 1,
                      duration_expression: "VariableValue",
                    },
                    clear_timer: {
                      timer_name: "TimerName", # required
                    },
                    reset_timer: {
                      timer_name: "TimerName", # required
                    },
                    lambda: {
                      function_arn: "AmazonResourceName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    iot_events: {
                      input_name: "InputName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    sqs: {
                      queue_url: "QueueUrl", # required
                      use_base_64: false,
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    firehose: {
                      delivery_stream_name: "DeliveryStreamName", # required
                      separator: "FirehoseSeparator",
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    dynamo_db: {
                      hash_key_type: "DynamoKeyType",
                      hash_key_field: "DynamoKeyField", # required
                      hash_key_value: "DynamoKeyValue", # required
                      range_key_type: "DynamoKeyType",
                      range_key_field: "DynamoKeyField",
                      range_key_value: "DynamoKeyValue",
                      operation: "DynamoOperation",
                      payload_field: "DynamoKeyField",
                      table_name: "DynamoTableName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    dynamo_d_bv_2: {
                      table_name: "DynamoTableName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    iot_site_wise: {
                      entry_id: "AssetPropertyEntryId",
                      asset_id: "AssetId",
                      property_id: "AssetPropertyId",
                      property_alias: "AssetPropertyAlias",
                      property_value: {
                        value: {
                          string_value: "AssetPropertyStringValue",
                          integer_value: "AssetPropertyIntegerValue",
                          double_value: "AssetPropertyDoubleValue",
                          boolean_value: "AssetPropertyBooleanValue",
                        },
                        timestamp: {
                          time_in_seconds: "AssetPropertyTimeInSeconds", # required
                          offset_in_nanos: "AssetPropertyOffsetInNanos",
                        },
                        quality: "AssetPropertyQuality",
                      },
                    },
                  },
                ],
                next_state: "StateName", # required
              },
            ],
          },
          on_enter: {
            events: [
              {
                event_name: "EventName", # required
                condition: "Condition",
                actions: [
                  {
                    set_variable: {
                      variable_name: "VariableName", # required
                      value: "VariableValue", # required
                    },
                    sns: {
                      target_arn: "AmazonResourceName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    iot_topic_publish: {
                      mqtt_topic: "MQTTTopic", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    set_timer: {
                      timer_name: "TimerName", # required
                      seconds: 1,
                      duration_expression: "VariableValue",
                    },
                    clear_timer: {
                      timer_name: "TimerName", # required
                    },
                    reset_timer: {
                      timer_name: "TimerName", # required
                    },
                    lambda: {
                      function_arn: "AmazonResourceName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    iot_events: {
                      input_name: "InputName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    sqs: {
                      queue_url: "QueueUrl", # required
                      use_base_64: false,
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    firehose: {
                      delivery_stream_name: "DeliveryStreamName", # required
                      separator: "FirehoseSeparator",
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    dynamo_db: {
                      hash_key_type: "DynamoKeyType",
                      hash_key_field: "DynamoKeyField", # required
                      hash_key_value: "DynamoKeyValue", # required
                      range_key_type: "DynamoKeyType",
                      range_key_field: "DynamoKeyField",
                      range_key_value: "DynamoKeyValue",
                      operation: "DynamoOperation",
                      payload_field: "DynamoKeyField",
                      table_name: "DynamoTableName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    dynamo_d_bv_2: {
                      table_name: "DynamoTableName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    iot_site_wise: {
                      entry_id: "AssetPropertyEntryId",
                      asset_id: "AssetId",
                      property_id: "AssetPropertyId",
                      property_alias: "AssetPropertyAlias",
                      property_value: {
                        value: {
                          string_value: "AssetPropertyStringValue",
                          integer_value: "AssetPropertyIntegerValue",
                          double_value: "AssetPropertyDoubleValue",
                          boolean_value: "AssetPropertyBooleanValue",
                        },
                        timestamp: {
                          time_in_seconds: "AssetPropertyTimeInSeconds", # required
                          offset_in_nanos: "AssetPropertyOffsetInNanos",
                        },
                        quality: "AssetPropertyQuality",
                      },
                    },
                  },
                ],
              },
            ],
          },
          on_exit: {
            events: [
              {
                event_name: "EventName", # required
                condition: "Condition",
                actions: [
                  {
                    set_variable: {
                      variable_name: "VariableName", # required
                      value: "VariableValue", # required
                    },
                    sns: {
                      target_arn: "AmazonResourceName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    iot_topic_publish: {
                      mqtt_topic: "MQTTTopic", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    set_timer: {
                      timer_name: "TimerName", # required
                      seconds: 1,
                      duration_expression: "VariableValue",
                    },
                    clear_timer: {
                      timer_name: "TimerName", # required
                    },
                    reset_timer: {
                      timer_name: "TimerName", # required
                    },
                    lambda: {
                      function_arn: "AmazonResourceName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    iot_events: {
                      input_name: "InputName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    sqs: {
                      queue_url: "QueueUrl", # required
                      use_base_64: false,
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    firehose: {
                      delivery_stream_name: "DeliveryStreamName", # required
                      separator: "FirehoseSeparator",
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    dynamo_db: {
                      hash_key_type: "DynamoKeyType",
                      hash_key_field: "DynamoKeyField", # required
                      hash_key_value: "DynamoKeyValue", # required
                      range_key_type: "DynamoKeyType",
                      range_key_field: "DynamoKeyField",
                      range_key_value: "DynamoKeyValue",
                      operation: "DynamoOperation",
                      payload_field: "DynamoKeyField",
                      table_name: "DynamoTableName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    dynamo_d_bv_2: {
                      table_name: "DynamoTableName", # required
                      payload: {
                        content_expression: "ContentExpression", # required
                        type: "STRING", # required, accepts STRING, JSON
                      },
                    },
                    iot_site_wise: {
                      entry_id: "AssetPropertyEntryId",
                      asset_id: "AssetId",
                      property_id: "AssetPropertyId",
                      property_alias: "AssetPropertyAlias",
                      property_value: {
                        value: {
                          string_value: "AssetPropertyStringValue",
                          integer_value: "AssetPropertyIntegerValue",
                          double_value: "AssetPropertyDoubleValue",
                          boolean_value: "AssetPropertyBooleanValue",
                        },
                        timestamp: {
                          time_in_seconds: "AssetPropertyTimeInSeconds", # required
                          offset_in_nanos: "AssetPropertyOffsetInNanos",
                        },
                        quality: "AssetPropertyQuality",
                      },
                    },
                  },
                ],
              },
            ],
          },
        },
      ],
      initial_state_name: "StateName", # required
    }

@!attribute [rw] states

Information about the states of the detector.
@return [Array<Types::State>]

@!attribute [rw] initial_state_name

The state that is entered at the creation of each detector
(instance).
@return [String]

Constants

SENSITIVE