You are viewing documentation for version 2 of the AWS SDK for Ruby. Version 3 documentation can be found here.

Class: Aws::IoT::Types::TopicRulePayload

Inherits:
Struct
  • Object
show all
Defined in:
(unknown)

Overview

Note:

When passing TopicRulePayload as input to an Aws::Client method, you can use a vanilla Hash:

{
  sql: "SQL", # required
  description: "Description",
  actions: [ # required
    {
      dynamo_db: {
        table_name: "TableName", # required
        role_arn: "AwsArn", # required
        operation: "DynamoOperation",
        hash_key_field: "HashKeyField", # required
        hash_key_value: "HashKeyValue", # required
        hash_key_type: "STRING", # accepts STRING, NUMBER
        range_key_field: "RangeKeyField",
        range_key_value: "RangeKeyValue",
        range_key_type: "STRING", # accepts STRING, NUMBER
        payload_field: "PayloadField",
      },
      dynamo_d_bv_2: {
        role_arn: "AwsArn", # required
        put_item: { # required
          table_name: "TableName", # required
        },
      },
      lambda: {
        function_arn: "FunctionArn", # required
      },
      sns: {
        target_arn: "AwsArn", # required
        role_arn: "AwsArn", # required
        message_format: "RAW", # accepts RAW, JSON
      },
      sqs: {
        role_arn: "AwsArn", # required
        queue_url: "QueueUrl", # required
        use_base_64: false,
      },
      kinesis: {
        role_arn: "AwsArn", # required
        stream_name: "StreamName", # required
        partition_key: "PartitionKey",
      },
      republish: {
        role_arn: "AwsArn", # required
        topic: "TopicPattern", # required
        qos: 1,
      },
      s3: {
        role_arn: "AwsArn", # required
        bucket_name: "BucketName", # required
        key: "Key", # required
        canned_acl: "private", # accepts private, public-read, public-read-write, aws-exec-read, authenticated-read, bucket-owner-read, bucket-owner-full-control, log-delivery-write
      },
      firehose: {
        role_arn: "AwsArn", # required
        delivery_stream_name: "DeliveryStreamName", # required
        separator: "FirehoseSeparator",
        batch_mode: false,
      },
      cloudwatch_metric: {
        role_arn: "AwsArn", # required
        metric_namespace: "String", # required
        metric_name: "String", # required
        metric_value: "String", # required
        metric_unit: "String", # required
        metric_timestamp: "String",
      },
      cloudwatch_alarm: {
        role_arn: "AwsArn", # required
        alarm_name: "AlarmName", # required
        state_reason: "StateReason", # required
        state_value: "StateValue", # required
      },
      cloudwatch_logs: {
        role_arn: "AwsArn", # required
        log_group_name: "LogGroupName", # required
      },
      elasticsearch: {
        role_arn: "AwsArn", # required
        endpoint: "ElasticsearchEndpoint", # required
        index: "ElasticsearchIndex", # required
        type: "ElasticsearchType", # required
        id: "ElasticsearchId", # required
      },
      salesforce: {
        token: "SalesforceToken", # required
        url: "SalesforceEndpoint", # required
      },
      iot_analytics: {
        channel_arn: "AwsArn",
        channel_name: "ChannelName",
        batch_mode: false,
        role_arn: "AwsArn",
      },
      iot_events: {
        input_name: "InputName", # required
        message_id: "MessageId",
        batch_mode: false,
        role_arn: "AwsArn", # required
      },
      iot_site_wise: {
        put_asset_property_value_entries: [ # required
          {
            entry_id: "AssetPropertyEntryId",
            asset_id: "AssetId",
            property_id: "AssetPropertyId",
            property_alias: "AssetPropertyAlias",
            property_values: [ # required
              {
                value: { # required
                  string_value: "AssetPropertyStringValue",
                  integer_value: "AssetPropertyIntegerValue",
                  double_value: "AssetPropertyDoubleValue",
                  boolean_value: "AssetPropertyBooleanValue",
                },
                timestamp: { # required
                  time_in_seconds: "AssetPropertyTimeInSeconds", # required
                  offset_in_nanos: "AssetPropertyOffsetInNanos",
                },
                quality: "AssetPropertyQuality",
              },
            ],
          },
        ],
        role_arn: "AwsArn", # required
      },
      step_functions: {
        execution_name_prefix: "ExecutionNamePrefix",
        state_machine_name: "StateMachineName", # required
        role_arn: "AwsArn", # required
      },
      timestream: {
        role_arn: "AwsArn", # required
        database_name: "TimestreamDatabaseName", # required
        table_name: "TimestreamTableName", # required
        dimensions: [ # required
          {
            name: "TimestreamDimensionName", # required
            value: "TimestreamDimensionValue", # required
          },
        ],
        timestamp: {
          value: "TimestreamTimestampValue", # required
          unit: "TimestreamTimestampUnit", # required
        },
      },
      http: {
        url: "Url", # required
        confirmation_url: "Url",
        headers: [
          {
            key: "HeaderKey", # required
            value: "HeaderValue", # required
          },
        ],
        auth: {
          sigv4: {
            signing_region: "SigningRegion", # required
            service_name: "ServiceName", # required
            role_arn: "AwsArn", # required
          },
        },
      },
    },
  ],
  rule_disabled: false,
  aws_iot_sql_version: "AwsIotSqlVersion",
  error_action: {
    dynamo_db: {
      table_name: "TableName", # required
      role_arn: "AwsArn", # required
      operation: "DynamoOperation",
      hash_key_field: "HashKeyField", # required
      hash_key_value: "HashKeyValue", # required
      hash_key_type: "STRING", # accepts STRING, NUMBER
      range_key_field: "RangeKeyField",
      range_key_value: "RangeKeyValue",
      range_key_type: "STRING", # accepts STRING, NUMBER
      payload_field: "PayloadField",
    },
    dynamo_d_bv_2: {
      role_arn: "AwsArn", # required
      put_item: { # required
        table_name: "TableName", # required
      },
    },
    lambda: {
      function_arn: "FunctionArn", # required
    },
    sns: {
      target_arn: "AwsArn", # required
      role_arn: "AwsArn", # required
      message_format: "RAW", # accepts RAW, JSON
    },
    sqs: {
      role_arn: "AwsArn", # required
      queue_url: "QueueUrl", # required
      use_base_64: false,
    },
    kinesis: {
      role_arn: "AwsArn", # required
      stream_name: "StreamName", # required
      partition_key: "PartitionKey",
    },
    republish: {
      role_arn: "AwsArn", # required
      topic: "TopicPattern", # required
      qos: 1,
    },
    s3: {
      role_arn: "AwsArn", # required
      bucket_name: "BucketName", # required
      key: "Key", # required
      canned_acl: "private", # accepts private, public-read, public-read-write, aws-exec-read, authenticated-read, bucket-owner-read, bucket-owner-full-control, log-delivery-write
    },
    firehose: {
      role_arn: "AwsArn", # required
      delivery_stream_name: "DeliveryStreamName", # required
      separator: "FirehoseSeparator",
      batch_mode: false,
    },
    cloudwatch_metric: {
      role_arn: "AwsArn", # required
      metric_namespace: "String", # required
      metric_name: "String", # required
      metric_value: "String", # required
      metric_unit: "String", # required
      metric_timestamp: "String",
    },
    cloudwatch_alarm: {
      role_arn: "AwsArn", # required
      alarm_name: "AlarmName", # required
      state_reason: "StateReason", # required
      state_value: "StateValue", # required
    },
    cloudwatch_logs: {
      role_arn: "AwsArn", # required
      log_group_name: "LogGroupName", # required
    },
    elasticsearch: {
      role_arn: "AwsArn", # required
      endpoint: "ElasticsearchEndpoint", # required
      index: "ElasticsearchIndex", # required
      type: "ElasticsearchType", # required
      id: "ElasticsearchId", # required
    },
    salesforce: {
      token: "SalesforceToken", # required
      url: "SalesforceEndpoint", # required
    },
    iot_analytics: {
      channel_arn: "AwsArn",
      channel_name: "ChannelName",
      batch_mode: false,
      role_arn: "AwsArn",
    },
    iot_events: {
      input_name: "InputName", # required
      message_id: "MessageId",
      batch_mode: false,
      role_arn: "AwsArn", # required
    },
    iot_site_wise: {
      put_asset_property_value_entries: [ # required
        {
          entry_id: "AssetPropertyEntryId",
          asset_id: "AssetId",
          property_id: "AssetPropertyId",
          property_alias: "AssetPropertyAlias",
          property_values: [ # required
            {
              value: { # required
                string_value: "AssetPropertyStringValue",
                integer_value: "AssetPropertyIntegerValue",
                double_value: "AssetPropertyDoubleValue",
                boolean_value: "AssetPropertyBooleanValue",
              },
              timestamp: { # required
                time_in_seconds: "AssetPropertyTimeInSeconds", # required
                offset_in_nanos: "AssetPropertyOffsetInNanos",
              },
              quality: "AssetPropertyQuality",
            },
          ],
        },
      ],
      role_arn: "AwsArn", # required
    },
    step_functions: {
      execution_name_prefix: "ExecutionNamePrefix",
      state_machine_name: "StateMachineName", # required
      role_arn: "AwsArn", # required
    },
    timestream: {
      role_arn: "AwsArn", # required
      database_name: "TimestreamDatabaseName", # required
      table_name: "TimestreamTableName", # required
      dimensions: [ # required
        {
          name: "TimestreamDimensionName", # required
          value: "TimestreamDimensionValue", # required
        },
      ],
      timestamp: {
        value: "TimestreamTimestampValue", # required
        unit: "TimestreamTimestampUnit", # required
      },
    },
    http: {
      url: "Url", # required
      confirmation_url: "Url",
      headers: [
        {
          key: "HeaderKey", # required
          value: "HeaderValue", # required
        },
      ],
      auth: {
        sigv4: {
          signing_region: "SigningRegion", # required
          service_name: "ServiceName", # required
          role_arn: "AwsArn", # required
        },
      },
    },
  },
}

Describes a rule.

Returned by:

Instance Attribute Summary collapse

Instance Attribute Details

#actionsArray<Types::Action>

The actions associated with the rule.

Returns:

  • (Array<Types::Action>)

    The actions associated with the rule.

#aws_iot_sql_versionString

The version of the SQL rules engine to use when evaluating the rule.

Returns:

  • (String)

    The version of the SQL rules engine to use when evaluating the rule.

#descriptionString

The description of the rule.

Returns:

  • (String)

    The description of the rule.

#error_actionTypes::Action

The action to take when an error occurs.

Returns:

#rule_disabledBoolean

Specifies whether the rule is disabled.

Returns:

  • (Boolean)

    Specifies whether the rule is disabled.

#sqlString

The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference in the AWS IoT Developer Guide.

Returns:

  • (String)

    The SQL statement used to query the topic.