1. Packages
  2. AWS
  3. API Docs
  4. iot
  5. TopicRule
Viewing docs for AWS v5.43.0 (Older version)
published on Tuesday, Mar 10, 2026 by Pulumi
aws logo
Viewing docs for AWS v5.43.0 (Older version)
published on Tuesday, Mar 10, 2026 by Pulumi

    Import

    IoT Topic Rules can be imported using the name, e.g.,

     $ pulumi import aws:iot/topicRule:TopicRule rule <name>
    

    Example Usage

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var mytopic = new Aws.Sns.Topic("mytopic");
    
        var myerrortopic = new Aws.Sns.Topic("myerrortopic");
    
        var assumeRole = Aws.Iam.GetPolicyDocument.Invoke(new()
        {
            Statements = new[]
            {
                new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
                {
                    Effect = "Allow",
                    Principals = new[]
                    {
                        new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
                        {
                            Type = "Service",
                            Identifiers = new[]
                            {
                                "iot.amazonaws.com",
                            },
                        },
                    },
                    Actions = new[]
                    {
                        "sts:AssumeRole",
                    },
                },
            },
        });
    
        var role = new Aws.Iam.Role("role", new()
        {
            AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
        });
    
        var rule = new Aws.Iot.TopicRule("rule", new()
        {
            Description = "Example rule",
            Enabled = true,
            Sql = "SELECT * FROM 'topic/test'",
            SqlVersion = "2016-03-23",
            Sns = new Aws.Iot.Inputs.TopicRuleSnsArgs
            {
                MessageFormat = "RAW",
                RoleArn = role.Arn,
                TargetArn = mytopic.Arn,
            },
            ErrorAction = new Aws.Iot.Inputs.TopicRuleErrorActionArgs
            {
                Sns = new Aws.Iot.Inputs.TopicRuleErrorActionSnsArgs
                {
                    MessageFormat = "RAW",
                    RoleArn = role.Arn,
                    TargetArn = myerrortopic.Arn,
                },
            },
        });
    
        var iamPolicyForLambdaPolicyDocument = Aws.Iam.GetPolicyDocument.Invoke(new()
        {
            Statements = new[]
            {
                new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
                {
                    Effect = "Allow",
                    Actions = new[]
                    {
                        "sns:Publish",
                    },
                    Resources = new[]
                    {
                        mytopic.Arn,
                    },
                },
            },
        });
    
        var iamPolicyForLambdaRolePolicy = new Aws.Iam.RolePolicy("iamPolicyForLambdaRolePolicy", new()
        {
            Role = role.Id,
            Policy = iamPolicyForLambdaPolicyDocument.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
        });
    
    });
    
    package main
    
    import (
    
    "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    "github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam"
    "github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iot"
    "github.com/pulumi/pulumi-aws/sdk/v5/go/aws/sns"
    )
    func main() {
    pulumi.Run(func(ctx *pulumi.Context) error {
    mytopic, err := sns.NewTopic(ctx, "mytopic", nil)
    if err != nil {
    return err
    }
    myerrortopic, err := sns.NewTopic(ctx, "myerrortopic", nil)
    if err != nil {
    return err
    }
    assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
    Statements: []iam.GetPolicyDocumentStatement{
    {
    Effect: pulumi.StringRef("Allow"),
    Principals: []iam.GetPolicyDocumentStatementPrincipal{
    {
    Type: "Service",
    Identifiers: []string{
    "iot.amazonaws.com",
    },
    },
    },
    Actions: []string{
    "sts:AssumeRole",
    },
    },
    },
    }, nil);
    if err != nil {
    return err
    }
    role, err := iam.NewRole(ctx, "role", &iam.RoleArgs{
    AssumeRolePolicy: *pulumi.String(assumeRole.Json),
    })
    if err != nil {
    return err
    }
    _, err = iot.NewTopicRule(ctx, "rule", &iot.TopicRuleArgs{
    Description: pulumi.String("Example rule"),
    Enabled: pulumi.Bool(true),
    Sql: pulumi.String("SELECT * FROM 'topic/test'"),
    SqlVersion: pulumi.String("2016-03-23"),
    Sns: &iot.TopicRuleSnsArgs{
    MessageFormat: pulumi.String("RAW"),
    RoleArn: role.Arn,
    TargetArn: mytopic.Arn,
    },
    ErrorAction: &iot.TopicRuleErrorActionArgs{
    Sns: &iot.TopicRuleErrorActionSnsArgs{
    MessageFormat: pulumi.String("RAW"),
    RoleArn: role.Arn,
    TargetArn: myerrortopic.Arn,
    },
    },
    })
    if err != nil {
    return err
    }
    iamPolicyForLambdaPolicyDocument := mytopic.Arn.ApplyT(func(arn string) (iam.GetPolicyDocumentResult, error) {
    return iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{
    Statements: []iam.GetPolicyDocumentStatement{
    {
    Effect: "Allow",
    Actions: []string{
    "sns:Publish",
    },
    Resources: interface{}{
    arn,
    },
    },
    },
    }, nil), nil
    }).(iam.GetPolicyDocumentResultOutput)
    _, err = iam.NewRolePolicy(ctx, "iamPolicyForLambdaRolePolicy", &iam.RolePolicyArgs{
    Role: role.ID(),
    Policy: iamPolicyForLambdaPolicyDocument.ApplyT(func(iamPolicyForLambdaPolicyDocument iam.GetPolicyDocumentResult) (*string, error) {
    return &iamPolicyForLambdaPolicyDocument.Json, nil
    }).(pulumi.StringPtrOutput),
    })
    if err != nil {
    return err
    }
    return nil
    })
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.sns.Topic;
    import com.pulumi.aws.iam.IamFunctions;
    import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
    import com.pulumi.aws.iam.Role;
    import com.pulumi.aws.iam.RoleArgs;
    import com.pulumi.aws.iot.TopicRule;
    import com.pulumi.aws.iot.TopicRuleArgs;
    import com.pulumi.aws.iot.inputs.TopicRuleSnsArgs;
    import com.pulumi.aws.iot.inputs.TopicRuleErrorActionArgs;
    import com.pulumi.aws.iot.inputs.TopicRuleErrorActionSnsArgs;
    import com.pulumi.aws.iam.RolePolicy;
    import com.pulumi.aws.iam.RolePolicyArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var mytopic = new Topic("mytopic");
    
            var myerrortopic = new Topic("myerrortopic");
    
            final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                .statements(GetPolicyDocumentStatementArgs.builder()
                    .effect("Allow")
                    .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                        .type("Service")
                        .identifiers("iot.amazonaws.com")
                        .build())
                    .actions("sts:AssumeRole")
                    .build())
                .build());
    
            var role = new Role("role", RoleArgs.builder()        
                .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
                .build());
    
            var rule = new TopicRule("rule", TopicRuleArgs.builder()        
                .description("Example rule")
                .enabled(true)
                .sql("SELECT * FROM 'topic/test'")
                .sqlVersion("2016-03-23")
                .sns(TopicRuleSnsArgs.builder()
                    .messageFormat("RAW")
                    .roleArn(role.arn())
                    .targetArn(mytopic.arn())
                    .build())
                .errorAction(TopicRuleErrorActionArgs.builder()
                    .sns(TopicRuleErrorActionSnsArgs.builder()
                        .messageFormat("RAW")
                        .roleArn(role.arn())
                        .targetArn(myerrortopic.arn())
                        .build())
                    .build())
                .build());
    
            final var iamPolicyForLambdaPolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                .statements(GetPolicyDocumentStatementArgs.builder()
                    .effect("Allow")
                    .actions("sns:Publish")
                    .resources(mytopic.arn())
                    .build())
                .build());
    
            var iamPolicyForLambdaRolePolicy = new RolePolicy("iamPolicyForLambdaRolePolicy", RolePolicyArgs.builder()        
                .role(role.id())
                .policy(iamPolicyForLambdaPolicyDocument.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult).applyValue(iamPolicyForLambdaPolicyDocument -> iamPolicyForLambdaPolicyDocument.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json())))
                .build());
    
        }
    }
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const mytopic = new aws.sns.Topic("mytopic", {});
    const myerrortopic = new aws.sns.Topic("myerrortopic", {});
    const assumeRole = aws.iam.getPolicyDocument({
        statements: [{
            effect: "Allow",
            principals: [{
                type: "Service",
                identifiers: ["iot.amazonaws.com"],
            }],
            actions: ["sts:AssumeRole"],
        }],
    });
    const role = new aws.iam.Role("role", {assumeRolePolicy: assumeRole.then(assumeRole => assumeRole.json)});
    const rule = new aws.iot.TopicRule("rule", {
        description: "Example rule",
        enabled: true,
        sql: "SELECT * FROM 'topic/test'",
        sqlVersion: "2016-03-23",
        sns: {
            messageFormat: "RAW",
            roleArn: role.arn,
            targetArn: mytopic.arn,
        },
        errorAction: {
            sns: {
                messageFormat: "RAW",
                roleArn: role.arn,
                targetArn: myerrortopic.arn,
            },
        },
    });
    const iamPolicyForLambdaPolicyDocument = mytopic.arn.apply(arn => aws.iam.getPolicyDocumentOutput({
        statements: [{
            effect: "Allow",
            actions: ["sns:Publish"],
            resources: [arn],
        }],
    }));
    const iamPolicyForLambdaRolePolicy = new aws.iam.RolePolicy("iamPolicyForLambdaRolePolicy", {
        role: role.id,
        policy: iamPolicyForLambdaPolicyDocument.apply(iamPolicyForLambdaPolicyDocument => iamPolicyForLambdaPolicyDocument.json),
    });
    
    import pulumi
    import pulumi_aws as aws
    
    mytopic = aws.sns.Topic("mytopic")
    myerrortopic = aws.sns.Topic("myerrortopic")
    assume_role = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(
        effect="Allow",
        principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(
            type="Service",
            identifiers=["iot.amazonaws.com"],
        )],
        actions=["sts:AssumeRole"],
    )])
    role = aws.iam.Role("role", assume_role_policy=assume_role.json)
    rule = aws.iot.TopicRule("rule",
        description="Example rule",
        enabled=True,
        sql="SELECT * FROM 'topic/test'",
        sql_version="2016-03-23",
        sns=aws.iot.TopicRuleSnsArgs(
            message_format="RAW",
            role_arn=role.arn,
            target_arn=mytopic.arn,
        ),
        error_action=aws.iot.TopicRuleErrorActionArgs(
            sns=aws.iot.TopicRuleErrorActionSnsArgs(
                message_format="RAW",
                role_arn=role.arn,
                target_arn=myerrortopic.arn,
            ),
        ))
    iam_policy_for_lambda_policy_document = mytopic.arn.apply(lambda arn: aws.iam.get_policy_document_output(statements=[aws.iam.GetPolicyDocumentStatementArgs(
        effect="Allow",
        actions=["sns:Publish"],
        resources=[arn],
    )]))
    iam_policy_for_lambda_role_policy = aws.iam.RolePolicy("iamPolicyForLambdaRolePolicy",
        role=role.id,
        policy=iam_policy_for_lambda_policy_document.json)
    
    resources:
      rule:
        type: aws:iot:TopicRule
        properties:
          description: Example rule
          enabled: true
          sql: SELECT * FROM 'topic/test'
          sqlVersion: 2016-03-23
          sns:
            messageFormat: RAW
            roleArn: ${role.arn}
            targetArn: ${mytopic.arn}
          errorAction:
            sns:
              messageFormat: RAW
              roleArn: ${role.arn}
              targetArn: ${myerrortopic.arn}
      mytopic:
        type: aws:sns:Topic
      myerrortopic:
        type: aws:sns:Topic
      role:
        type: aws:iam:Role
        properties:
          assumeRolePolicy: ${assumeRole.json}
      iamPolicyForLambdaRolePolicy:
        type: aws:iam:RolePolicy
        properties:
          role: ${role.id}
          policy: ${iamPolicyForLambdaPolicyDocument.json}
    variables:
      assumeRole:
        fn::invoke:
          Function: aws:iam:getPolicyDocument
          Arguments:
            statements:
              - effect: Allow
                principals:
                  - type: Service
                    identifiers:
                      - iot.amazonaws.com
                actions:
                  - sts:AssumeRole
      iamPolicyForLambdaPolicyDocument:
        fn::invoke:
          Function: aws:iam:getPolicyDocument
          Arguments:
            statements:
              - effect: Allow
                actions:
                  - sns:Publish
                resources:
                  - ${mytopic.arn}
    

    Create TopicRule Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new TopicRule(name: string, args: TopicRuleArgs, opts?: CustomResourceOptions);
    @overload
    def TopicRule(resource_name: str,
                  args: TopicRuleArgs,
                  opts: Optional[ResourceOptions] = None)
    
    @overload
    def TopicRule(resource_name: str,
                  opts: Optional[ResourceOptions] = None,
                  enabled: Optional[bool] = None,
                  sql_version: Optional[str] = None,
                  sql: Optional[str] = None,
                  iot_events: Optional[Sequence[TopicRuleIotEventArgs]] = None,
                  kinesis: Optional[TopicRuleKinesisArgs] = None,
                  dynamodbv2s: Optional[Sequence[TopicRuleDynamodbv2Args]] = None,
                  elasticsearch: Optional[TopicRuleElasticsearchArgs] = None,
                  description: Optional[str] = None,
                  error_action: Optional[TopicRuleErrorActionArgs] = None,
                  firehose: Optional[TopicRuleFirehoseArgs] = None,
                  https: Optional[Sequence[TopicRuleHttpArgs]] = None,
                  iot_analytics: Optional[Sequence[TopicRuleIotAnalyticArgs]] = None,
                  cloudwatch_alarm: Optional[TopicRuleCloudwatchAlarmArgs] = None,
                  kafkas: Optional[Sequence[TopicRuleKafkaArgs]] = None,
                  dynamodb: Optional[TopicRuleDynamodbArgs] = None,
                  lambda_: Optional[TopicRuleLambdaArgs] = None,
                  name: Optional[str] = None,
                  republish: Optional[TopicRuleRepublishArgs] = None,
                  s3: Optional[TopicRuleS3Args] = None,
                  sns: Optional[TopicRuleSnsArgs] = None,
                  cloudwatch_metric: Optional[TopicRuleCloudwatchMetricArgs] = None,
                  cloudwatch_logs: Optional[Sequence[TopicRuleCloudwatchLogArgs]] = None,
                  sqs: Optional[TopicRuleSqsArgs] = None,
                  step_functions: Optional[Sequence[TopicRuleStepFunctionArgs]] = None,
                  tags: Optional[Mapping[str, str]] = None,
                  timestreams: Optional[Sequence[TopicRuleTimestreamArgs]] = None)
    func NewTopicRule(ctx *Context, name string, args TopicRuleArgs, opts ...ResourceOption) (*TopicRule, error)
    public TopicRule(string name, TopicRuleArgs args, CustomResourceOptions? opts = null)
    public TopicRule(String name, TopicRuleArgs args)
    public TopicRule(String name, TopicRuleArgs args, CustomResourceOptions options)
    
    type: aws:iot:TopicRule
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args TopicRuleArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args TopicRuleArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args TopicRuleArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args TopicRuleArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args TopicRuleArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var topicRuleResource = new Aws.Iot.TopicRule("topicRuleResource", new()
    {
        Enabled = false,
        SqlVersion = "string",
        Sql = "string",
        IotEvents = new[]
        {
            new Aws.Iot.Inputs.TopicRuleIotEventArgs
            {
                InputName = "string",
                RoleArn = "string",
                BatchMode = false,
                MessageId = "string",
            },
        },
        Kinesis = new Aws.Iot.Inputs.TopicRuleKinesisArgs
        {
            RoleArn = "string",
            StreamName = "string",
            PartitionKey = "string",
        },
        Dynamodbv2s = new[]
        {
            new Aws.Iot.Inputs.TopicRuleDynamodbv2Args
            {
                RoleArn = "string",
                PutItem = new Aws.Iot.Inputs.TopicRuleDynamodbv2PutItemArgs
                {
                    TableName = "string",
                },
            },
        },
        Elasticsearch = new Aws.Iot.Inputs.TopicRuleElasticsearchArgs
        {
            Endpoint = "string",
            Id = "string",
            Index = "string",
            RoleArn = "string",
            Type = "string",
        },
        Description = "string",
        ErrorAction = new Aws.Iot.Inputs.TopicRuleErrorActionArgs
        {
            CloudwatchAlarm = new Aws.Iot.Inputs.TopicRuleErrorActionCloudwatchAlarmArgs
            {
                AlarmName = "string",
                RoleArn = "string",
                StateReason = "string",
                StateValue = "string",
            },
            CloudwatchLogs = new Aws.Iot.Inputs.TopicRuleErrorActionCloudwatchLogsArgs
            {
                LogGroupName = "string",
                RoleArn = "string",
            },
            CloudwatchMetric = new Aws.Iot.Inputs.TopicRuleErrorActionCloudwatchMetricArgs
            {
                MetricName = "string",
                MetricNamespace = "string",
                MetricUnit = "string",
                MetricValue = "string",
                RoleArn = "string",
                MetricTimestamp = "string",
            },
            Dynamodb = new Aws.Iot.Inputs.TopicRuleErrorActionDynamodbArgs
            {
                HashKeyField = "string",
                HashKeyValue = "string",
                RoleArn = "string",
                TableName = "string",
                HashKeyType = "string",
                Operation = "string",
                PayloadField = "string",
                RangeKeyField = "string",
                RangeKeyType = "string",
                RangeKeyValue = "string",
            },
            Dynamodbv2 = new Aws.Iot.Inputs.TopicRuleErrorActionDynamodbv2Args
            {
                RoleArn = "string",
                PutItem = new Aws.Iot.Inputs.TopicRuleErrorActionDynamodbv2PutItemArgs
                {
                    TableName = "string",
                },
            },
            Elasticsearch = new Aws.Iot.Inputs.TopicRuleErrorActionElasticsearchArgs
            {
                Endpoint = "string",
                Id = "string",
                Index = "string",
                RoleArn = "string",
                Type = "string",
            },
            Firehose = new Aws.Iot.Inputs.TopicRuleErrorActionFirehoseArgs
            {
                DeliveryStreamName = "string",
                RoleArn = "string",
                BatchMode = false,
                Separator = "string",
            },
            Http = new Aws.Iot.Inputs.TopicRuleErrorActionHttpArgs
            {
                Url = "string",
                ConfirmationUrl = "string",
                HttpHeaders = new[]
                {
                    new Aws.Iot.Inputs.TopicRuleErrorActionHttpHttpHeaderArgs
                    {
                        Key = "string",
                        Value = "string",
                    },
                },
            },
            IotAnalytics = new Aws.Iot.Inputs.TopicRuleErrorActionIotAnalyticsArgs
            {
                ChannelName = "string",
                RoleArn = "string",
                BatchMode = false,
            },
            IotEvents = new Aws.Iot.Inputs.TopicRuleErrorActionIotEventsArgs
            {
                InputName = "string",
                RoleArn = "string",
                BatchMode = false,
                MessageId = "string",
            },
            Kafka = new Aws.Iot.Inputs.TopicRuleErrorActionKafkaArgs
            {
                ClientProperties = 
                {
                    { "string", "string" },
                },
                DestinationArn = "string",
                Topic = "string",
                Key = "string",
                Partition = "string",
            },
            Kinesis = new Aws.Iot.Inputs.TopicRuleErrorActionKinesisArgs
            {
                RoleArn = "string",
                StreamName = "string",
                PartitionKey = "string",
            },
            Lambda = new Aws.Iot.Inputs.TopicRuleErrorActionLambdaArgs
            {
                FunctionArn = "string",
            },
            Republish = new Aws.Iot.Inputs.TopicRuleErrorActionRepublishArgs
            {
                RoleArn = "string",
                Topic = "string",
                Qos = 0,
            },
            S3 = new Aws.Iot.Inputs.TopicRuleErrorActionS3Args
            {
                BucketName = "string",
                Key = "string",
                RoleArn = "string",
                CannedAcl = "string",
            },
            Sns = new Aws.Iot.Inputs.TopicRuleErrorActionSnsArgs
            {
                RoleArn = "string",
                TargetArn = "string",
                MessageFormat = "string",
            },
            Sqs = new Aws.Iot.Inputs.TopicRuleErrorActionSqsArgs
            {
                QueueUrl = "string",
                RoleArn = "string",
                UseBase64 = false,
            },
            StepFunctions = new Aws.Iot.Inputs.TopicRuleErrorActionStepFunctionsArgs
            {
                RoleArn = "string",
                StateMachineName = "string",
                ExecutionNamePrefix = "string",
            },
            Timestream = new Aws.Iot.Inputs.TopicRuleErrorActionTimestreamArgs
            {
                DatabaseName = "string",
                Dimensions = new[]
                {
                    new Aws.Iot.Inputs.TopicRuleErrorActionTimestreamDimensionArgs
                    {
                        Name = "string",
                        Value = "string",
                    },
                },
                RoleArn = "string",
                TableName = "string",
                Timestamp = new Aws.Iot.Inputs.TopicRuleErrorActionTimestreamTimestampArgs
                {
                    Unit = "string",
                    Value = "string",
                },
            },
        },
        Firehose = new Aws.Iot.Inputs.TopicRuleFirehoseArgs
        {
            DeliveryStreamName = "string",
            RoleArn = "string",
            BatchMode = false,
            Separator = "string",
        },
        Https = new[]
        {
            new Aws.Iot.Inputs.TopicRuleHttpArgs
            {
                Url = "string",
                ConfirmationUrl = "string",
                HttpHeaders = new[]
                {
                    new Aws.Iot.Inputs.TopicRuleHttpHttpHeaderArgs
                    {
                        Key = "string",
                        Value = "string",
                    },
                },
            },
        },
        IotAnalytics = new[]
        {
            new Aws.Iot.Inputs.TopicRuleIotAnalyticArgs
            {
                ChannelName = "string",
                RoleArn = "string",
                BatchMode = false,
            },
        },
        CloudwatchAlarm = new Aws.Iot.Inputs.TopicRuleCloudwatchAlarmArgs
        {
            AlarmName = "string",
            RoleArn = "string",
            StateReason = "string",
            StateValue = "string",
        },
        Kafkas = new[]
        {
            new Aws.Iot.Inputs.TopicRuleKafkaArgs
            {
                ClientProperties = 
                {
                    { "string", "string" },
                },
                DestinationArn = "string",
                Topic = "string",
                Key = "string",
                Partition = "string",
            },
        },
        Dynamodb = new Aws.Iot.Inputs.TopicRuleDynamodbArgs
        {
            HashKeyField = "string",
            HashKeyValue = "string",
            RoleArn = "string",
            TableName = "string",
            HashKeyType = "string",
            Operation = "string",
            PayloadField = "string",
            RangeKeyField = "string",
            RangeKeyType = "string",
            RangeKeyValue = "string",
        },
        Lambda = new Aws.Iot.Inputs.TopicRuleLambdaArgs
        {
            FunctionArn = "string",
        },
        Name = "string",
        Republish = new Aws.Iot.Inputs.TopicRuleRepublishArgs
        {
            RoleArn = "string",
            Topic = "string",
            Qos = 0,
        },
        S3 = new Aws.Iot.Inputs.TopicRuleS3Args
        {
            BucketName = "string",
            Key = "string",
            RoleArn = "string",
            CannedAcl = "string",
        },
        Sns = new Aws.Iot.Inputs.TopicRuleSnsArgs
        {
            RoleArn = "string",
            TargetArn = "string",
            MessageFormat = "string",
        },
        CloudwatchMetric = new Aws.Iot.Inputs.TopicRuleCloudwatchMetricArgs
        {
            MetricName = "string",
            MetricNamespace = "string",
            MetricUnit = "string",
            MetricValue = "string",
            RoleArn = "string",
            MetricTimestamp = "string",
        },
        CloudwatchLogs = new[]
        {
            new Aws.Iot.Inputs.TopicRuleCloudwatchLogArgs
            {
                LogGroupName = "string",
                RoleArn = "string",
            },
        },
        Sqs = new Aws.Iot.Inputs.TopicRuleSqsArgs
        {
            QueueUrl = "string",
            RoleArn = "string",
            UseBase64 = false,
        },
        StepFunctions = new[]
        {
            new Aws.Iot.Inputs.TopicRuleStepFunctionArgs
            {
                RoleArn = "string",
                StateMachineName = "string",
                ExecutionNamePrefix = "string",
            },
        },
        Tags = 
        {
            { "string", "string" },
        },
        Timestreams = new[]
        {
            new Aws.Iot.Inputs.TopicRuleTimestreamArgs
            {
                DatabaseName = "string",
                Dimensions = new[]
                {
                    new Aws.Iot.Inputs.TopicRuleTimestreamDimensionArgs
                    {
                        Name = "string",
                        Value = "string",
                    },
                },
                RoleArn = "string",
                TableName = "string",
                Timestamp = new Aws.Iot.Inputs.TopicRuleTimestreamTimestampArgs
                {
                    Unit = "string",
                    Value = "string",
                },
            },
        },
    });
    
    example, err := iot.NewTopicRule(ctx, "topicRuleResource", &iot.TopicRuleArgs{
    	Enabled:    pulumi.Bool(false),
    	SqlVersion: pulumi.String("string"),
    	Sql:        pulumi.String("string"),
    	IotEvents: iot.TopicRuleIotEventArray{
    		&iot.TopicRuleIotEventArgs{
    			InputName: pulumi.String("string"),
    			RoleArn:   pulumi.String("string"),
    			BatchMode: pulumi.Bool(false),
    			MessageId: pulumi.String("string"),
    		},
    	},
    	Kinesis: &iot.TopicRuleKinesisArgs{
    		RoleArn:      pulumi.String("string"),
    		StreamName:   pulumi.String("string"),
    		PartitionKey: pulumi.String("string"),
    	},
    	Dynamodbv2s: iot.TopicRuleDynamodbv2Array{
    		&iot.TopicRuleDynamodbv2Args{
    			RoleArn: pulumi.String("string"),
    			PutItem: &iot.TopicRuleDynamodbv2PutItemArgs{
    				TableName: pulumi.String("string"),
    			},
    		},
    	},
    	Elasticsearch: &iot.TopicRuleElasticsearchArgs{
    		Endpoint: pulumi.String("string"),
    		Id:       pulumi.String("string"),
    		Index:    pulumi.String("string"),
    		RoleArn:  pulumi.String("string"),
    		Type:     pulumi.String("string"),
    	},
    	Description: pulumi.String("string"),
    	ErrorAction: &iot.TopicRuleErrorActionArgs{
    		CloudwatchAlarm: &iot.TopicRuleErrorActionCloudwatchAlarmArgs{
    			AlarmName:   pulumi.String("string"),
    			RoleArn:     pulumi.String("string"),
    			StateReason: pulumi.String("string"),
    			StateValue:  pulumi.String("string"),
    		},
    		CloudwatchLogs: &iot.TopicRuleErrorActionCloudwatchLogsArgs{
    			LogGroupName: pulumi.String("string"),
    			RoleArn:      pulumi.String("string"),
    		},
    		CloudwatchMetric: &iot.TopicRuleErrorActionCloudwatchMetricArgs{
    			MetricName:      pulumi.String("string"),
    			MetricNamespace: pulumi.String("string"),
    			MetricUnit:      pulumi.String("string"),
    			MetricValue:     pulumi.String("string"),
    			RoleArn:         pulumi.String("string"),
    			MetricTimestamp: pulumi.String("string"),
    		},
    		Dynamodb: &iot.TopicRuleErrorActionDynamodbArgs{
    			HashKeyField:  pulumi.String("string"),
    			HashKeyValue:  pulumi.String("string"),
    			RoleArn:       pulumi.String("string"),
    			TableName:     pulumi.String("string"),
    			HashKeyType:   pulumi.String("string"),
    			Operation:     pulumi.String("string"),
    			PayloadField:  pulumi.String("string"),
    			RangeKeyField: pulumi.String("string"),
    			RangeKeyType:  pulumi.String("string"),
    			RangeKeyValue: pulumi.String("string"),
    		},
    		Dynamodbv2: &iot.TopicRuleErrorActionDynamodbv2Args{
    			RoleArn: pulumi.String("string"),
    			PutItem: &iot.TopicRuleErrorActionDynamodbv2PutItemArgs{
    				TableName: pulumi.String("string"),
    			},
    		},
    		Elasticsearch: &iot.TopicRuleErrorActionElasticsearchArgs{
    			Endpoint: pulumi.String("string"),
    			Id:       pulumi.String("string"),
    			Index:    pulumi.String("string"),
    			RoleArn:  pulumi.String("string"),
    			Type:     pulumi.String("string"),
    		},
    		Firehose: &iot.TopicRuleErrorActionFirehoseArgs{
    			DeliveryStreamName: pulumi.String("string"),
    			RoleArn:            pulumi.String("string"),
    			BatchMode:          pulumi.Bool(false),
    			Separator:          pulumi.String("string"),
    		},
    		Http: &iot.TopicRuleErrorActionHttpArgs{
    			Url:             pulumi.String("string"),
    			ConfirmationUrl: pulumi.String("string"),
    			HttpHeaders: iot.TopicRuleErrorActionHttpHttpHeaderArray{
    				&iot.TopicRuleErrorActionHttpHttpHeaderArgs{
    					Key:   pulumi.String("string"),
    					Value: pulumi.String("string"),
    				},
    			},
    		},
    		IotAnalytics: &iot.TopicRuleErrorActionIotAnalyticsArgs{
    			ChannelName: pulumi.String("string"),
    			RoleArn:     pulumi.String("string"),
    			BatchMode:   pulumi.Bool(false),
    		},
    		IotEvents: &iot.TopicRuleErrorActionIotEventsArgs{
    			InputName: pulumi.String("string"),
    			RoleArn:   pulumi.String("string"),
    			BatchMode: pulumi.Bool(false),
    			MessageId: pulumi.String("string"),
    		},
    		Kafka: &iot.TopicRuleErrorActionKafkaArgs{
    			ClientProperties: pulumi.StringMap{
    				"string": pulumi.String("string"),
    			},
    			DestinationArn: pulumi.String("string"),
    			Topic:          pulumi.String("string"),
    			Key:            pulumi.String("string"),
    			Partition:      pulumi.String("string"),
    		},
    		Kinesis: &iot.TopicRuleErrorActionKinesisArgs{
    			RoleArn:      pulumi.String("string"),
    			StreamName:   pulumi.String("string"),
    			PartitionKey: pulumi.String("string"),
    		},
    		Lambda: &iot.TopicRuleErrorActionLambdaArgs{
    			FunctionArn: pulumi.String("string"),
    		},
    		Republish: &iot.TopicRuleErrorActionRepublishArgs{
    			RoleArn: pulumi.String("string"),
    			Topic:   pulumi.String("string"),
    			Qos:     pulumi.Int(0),
    		},
    		S3: &iot.TopicRuleErrorActionS3Args{
    			BucketName: pulumi.String("string"),
    			Key:        pulumi.String("string"),
    			RoleArn:    pulumi.String("string"),
    			CannedAcl:  pulumi.String("string"),
    		},
    		Sns: &iot.TopicRuleErrorActionSnsArgs{
    			RoleArn:       pulumi.String("string"),
    			TargetArn:     pulumi.String("string"),
    			MessageFormat: pulumi.String("string"),
    		},
    		Sqs: &iot.TopicRuleErrorActionSqsArgs{
    			QueueUrl:  pulumi.String("string"),
    			RoleArn:   pulumi.String("string"),
    			UseBase64: pulumi.Bool(false),
    		},
    		StepFunctions: &iot.TopicRuleErrorActionStepFunctionsArgs{
    			RoleArn:             pulumi.String("string"),
    			StateMachineName:    pulumi.String("string"),
    			ExecutionNamePrefix: pulumi.String("string"),
    		},
    		Timestream: &iot.TopicRuleErrorActionTimestreamArgs{
    			DatabaseName: pulumi.String("string"),
    			Dimensions: iot.TopicRuleErrorActionTimestreamDimensionArray{
    				&iot.TopicRuleErrorActionTimestreamDimensionArgs{
    					Name:  pulumi.String("string"),
    					Value: pulumi.String("string"),
    				},
    			},
    			RoleArn:   pulumi.String("string"),
    			TableName: pulumi.String("string"),
    			Timestamp: &iot.TopicRuleErrorActionTimestreamTimestampArgs{
    				Unit:  pulumi.String("string"),
    				Value: pulumi.String("string"),
    			},
    		},
    	},
    	Firehose: &iot.TopicRuleFirehoseArgs{
    		DeliveryStreamName: pulumi.String("string"),
    		RoleArn:            pulumi.String("string"),
    		BatchMode:          pulumi.Bool(false),
    		Separator:          pulumi.String("string"),
    	},
    	Https: iot.TopicRuleHttpArray{
    		&iot.TopicRuleHttpArgs{
    			Url:             pulumi.String("string"),
    			ConfirmationUrl: pulumi.String("string"),
    			HttpHeaders: iot.TopicRuleHttpHttpHeaderArray{
    				&iot.TopicRuleHttpHttpHeaderArgs{
    					Key:   pulumi.String("string"),
    					Value: pulumi.String("string"),
    				},
    			},
    		},
    	},
    	IotAnalytics: iot.TopicRuleIotAnalyticArray{
    		&iot.TopicRuleIotAnalyticArgs{
    			ChannelName: pulumi.String("string"),
    			RoleArn:     pulumi.String("string"),
    			BatchMode:   pulumi.Bool(false),
    		},
    	},
    	CloudwatchAlarm: &iot.TopicRuleCloudwatchAlarmArgs{
    		AlarmName:   pulumi.String("string"),
    		RoleArn:     pulumi.String("string"),
    		StateReason: pulumi.String("string"),
    		StateValue:  pulumi.String("string"),
    	},
    	Kafkas: iot.TopicRuleKafkaArray{
    		&iot.TopicRuleKafkaArgs{
    			ClientProperties: pulumi.StringMap{
    				"string": pulumi.String("string"),
    			},
    			DestinationArn: pulumi.String("string"),
    			Topic:          pulumi.String("string"),
    			Key:            pulumi.String("string"),
    			Partition:      pulumi.String("string"),
    		},
    	},
    	Dynamodb: &iot.TopicRuleDynamodbArgs{
    		HashKeyField:  pulumi.String("string"),
    		HashKeyValue:  pulumi.String("string"),
    		RoleArn:       pulumi.String("string"),
    		TableName:     pulumi.String("string"),
    		HashKeyType:   pulumi.String("string"),
    		Operation:     pulumi.String("string"),
    		PayloadField:  pulumi.String("string"),
    		RangeKeyField: pulumi.String("string"),
    		RangeKeyType:  pulumi.String("string"),
    		RangeKeyValue: pulumi.String("string"),
    	},
    	Lambda: &iot.TopicRuleLambdaArgs{
    		FunctionArn: pulumi.String("string"),
    	},
    	Name: pulumi.String("string"),
    	Republish: &iot.TopicRuleRepublishArgs{
    		RoleArn: pulumi.String("string"),
    		Topic:   pulumi.String("string"),
    		Qos:     pulumi.Int(0),
    	},
    	S3: &iot.TopicRuleS3Args{
    		BucketName: pulumi.String("string"),
    		Key:        pulumi.String("string"),
    		RoleArn:    pulumi.String("string"),
    		CannedAcl:  pulumi.String("string"),
    	},
    	Sns: &iot.TopicRuleSnsArgs{
    		RoleArn:       pulumi.String("string"),
    		TargetArn:     pulumi.String("string"),
    		MessageFormat: pulumi.String("string"),
    	},
    	CloudwatchMetric: &iot.TopicRuleCloudwatchMetricArgs{
    		MetricName:      pulumi.String("string"),
    		MetricNamespace: pulumi.String("string"),
    		MetricUnit:      pulumi.String("string"),
    		MetricValue:     pulumi.String("string"),
    		RoleArn:         pulumi.String("string"),
    		MetricTimestamp: pulumi.String("string"),
    	},
    	CloudwatchLogs: iot.TopicRuleCloudwatchLogArray{
    		&iot.TopicRuleCloudwatchLogArgs{
    			LogGroupName: pulumi.String("string"),
    			RoleArn:      pulumi.String("string"),
    		},
    	},
    	Sqs: &iot.TopicRuleSqsArgs{
    		QueueUrl:  pulumi.String("string"),
    		RoleArn:   pulumi.String("string"),
    		UseBase64: pulumi.Bool(false),
    	},
    	StepFunctions: iot.TopicRuleStepFunctionArray{
    		&iot.TopicRuleStepFunctionArgs{
    			RoleArn:             pulumi.String("string"),
    			StateMachineName:    pulumi.String("string"),
    			ExecutionNamePrefix: pulumi.String("string"),
    		},
    	},
    	Tags: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	Timestreams: iot.TopicRuleTimestreamArray{
    		&iot.TopicRuleTimestreamArgs{
    			DatabaseName: pulumi.String("string"),
    			Dimensions: iot.TopicRuleTimestreamDimensionArray{
    				&iot.TopicRuleTimestreamDimensionArgs{
    					Name:  pulumi.String("string"),
    					Value: pulumi.String("string"),
    				},
    			},
    			RoleArn:   pulumi.String("string"),
    			TableName: pulumi.String("string"),
    			Timestamp: &iot.TopicRuleTimestreamTimestampArgs{
    				Unit:  pulumi.String("string"),
    				Value: pulumi.String("string"),
    			},
    		},
    	},
    })
    
    var topicRuleResource = new TopicRule("topicRuleResource", TopicRuleArgs.builder()
        .enabled(false)
        .sqlVersion("string")
        .sql("string")
        .iotEvents(TopicRuleIotEventArgs.builder()
            .inputName("string")
            .roleArn("string")
            .batchMode(false)
            .messageId("string")
            .build())
        .kinesis(TopicRuleKinesisArgs.builder()
            .roleArn("string")
            .streamName("string")
            .partitionKey("string")
            .build())
        .dynamodbv2s(TopicRuleDynamodbv2Args.builder()
            .roleArn("string")
            .putItem(TopicRuleDynamodbv2PutItemArgs.builder()
                .tableName("string")
                .build())
            .build())
        .elasticsearch(TopicRuleElasticsearchArgs.builder()
            .endpoint("string")
            .id("string")
            .index("string")
            .roleArn("string")
            .type("string")
            .build())
        .description("string")
        .errorAction(TopicRuleErrorActionArgs.builder()
            .cloudwatchAlarm(TopicRuleErrorActionCloudwatchAlarmArgs.builder()
                .alarmName("string")
                .roleArn("string")
                .stateReason("string")
                .stateValue("string")
                .build())
            .cloudwatchLogs(TopicRuleErrorActionCloudwatchLogsArgs.builder()
                .logGroupName("string")
                .roleArn("string")
                .build())
            .cloudwatchMetric(TopicRuleErrorActionCloudwatchMetricArgs.builder()
                .metricName("string")
                .metricNamespace("string")
                .metricUnit("string")
                .metricValue("string")
                .roleArn("string")
                .metricTimestamp("string")
                .build())
            .dynamodb(TopicRuleErrorActionDynamodbArgs.builder()
                .hashKeyField("string")
                .hashKeyValue("string")
                .roleArn("string")
                .tableName("string")
                .hashKeyType("string")
                .operation("string")
                .payloadField("string")
                .rangeKeyField("string")
                .rangeKeyType("string")
                .rangeKeyValue("string")
                .build())
            .dynamodbv2(TopicRuleErrorActionDynamodbv2Args.builder()
                .roleArn("string")
                .putItem(TopicRuleErrorActionDynamodbv2PutItemArgs.builder()
                    .tableName("string")
                    .build())
                .build())
            .elasticsearch(TopicRuleErrorActionElasticsearchArgs.builder()
                .endpoint("string")
                .id("string")
                .index("string")
                .roleArn("string")
                .type("string")
                .build())
            .firehose(TopicRuleErrorActionFirehoseArgs.builder()
                .deliveryStreamName("string")
                .roleArn("string")
                .batchMode(false)
                .separator("string")
                .build())
            .http(TopicRuleErrorActionHttpArgs.builder()
                .url("string")
                .confirmationUrl("string")
                .httpHeaders(TopicRuleErrorActionHttpHttpHeaderArgs.builder()
                    .key("string")
                    .value("string")
                    .build())
                .build())
            .iotAnalytics(TopicRuleErrorActionIotAnalyticsArgs.builder()
                .channelName("string")
                .roleArn("string")
                .batchMode(false)
                .build())
            .iotEvents(TopicRuleErrorActionIotEventsArgs.builder()
                .inputName("string")
                .roleArn("string")
                .batchMode(false)
                .messageId("string")
                .build())
            .kafka(TopicRuleErrorActionKafkaArgs.builder()
                .clientProperties(Map.of("string", "string"))
                .destinationArn("string")
                .topic("string")
                .key("string")
                .partition("string")
                .build())
            .kinesis(TopicRuleErrorActionKinesisArgs.builder()
                .roleArn("string")
                .streamName("string")
                .partitionKey("string")
                .build())
            .lambda(TopicRuleErrorActionLambdaArgs.builder()
                .functionArn("string")
                .build())
            .republish(TopicRuleErrorActionRepublishArgs.builder()
                .roleArn("string")
                .topic("string")
                .qos(0)
                .build())
            .s3(TopicRuleErrorActionS3Args.builder()
                .bucketName("string")
                .key("string")
                .roleArn("string")
                .cannedAcl("string")
                .build())
            .sns(TopicRuleErrorActionSnsArgs.builder()
                .roleArn("string")
                .targetArn("string")
                .messageFormat("string")
                .build())
            .sqs(TopicRuleErrorActionSqsArgs.builder()
                .queueUrl("string")
                .roleArn("string")
                .useBase64(false)
                .build())
            .stepFunctions(TopicRuleErrorActionStepFunctionsArgs.builder()
                .roleArn("string")
                .stateMachineName("string")
                .executionNamePrefix("string")
                .build())
            .timestream(TopicRuleErrorActionTimestreamArgs.builder()
                .databaseName("string")
                .dimensions(TopicRuleErrorActionTimestreamDimensionArgs.builder()
                    .name("string")
                    .value("string")
                    .build())
                .roleArn("string")
                .tableName("string")
                .timestamp(TopicRuleErrorActionTimestreamTimestampArgs.builder()
                    .unit("string")
                    .value("string")
                    .build())
                .build())
            .build())
        .firehose(TopicRuleFirehoseArgs.builder()
            .deliveryStreamName("string")
            .roleArn("string")
            .batchMode(false)
            .separator("string")
            .build())
        .https(TopicRuleHttpArgs.builder()
            .url("string")
            .confirmationUrl("string")
            .httpHeaders(TopicRuleHttpHttpHeaderArgs.builder()
                .key("string")
                .value("string")
                .build())
            .build())
        .iotAnalytics(TopicRuleIotAnalyticArgs.builder()
            .channelName("string")
            .roleArn("string")
            .batchMode(false)
            .build())
        .cloudwatchAlarm(TopicRuleCloudwatchAlarmArgs.builder()
            .alarmName("string")
            .roleArn("string")
            .stateReason("string")
            .stateValue("string")
            .build())
        .kafkas(TopicRuleKafkaArgs.builder()
            .clientProperties(Map.of("string", "string"))
            .destinationArn("string")
            .topic("string")
            .key("string")
            .partition("string")
            .build())
        .dynamodb(TopicRuleDynamodbArgs.builder()
            .hashKeyField("string")
            .hashKeyValue("string")
            .roleArn("string")
            .tableName("string")
            .hashKeyType("string")
            .operation("string")
            .payloadField("string")
            .rangeKeyField("string")
            .rangeKeyType("string")
            .rangeKeyValue("string")
            .build())
        .lambda(TopicRuleLambdaArgs.builder()
            .functionArn("string")
            .build())
        .name("string")
        .republish(TopicRuleRepublishArgs.builder()
            .roleArn("string")
            .topic("string")
            .qos(0)
            .build())
        .s3(TopicRuleS3Args.builder()
            .bucketName("string")
            .key("string")
            .roleArn("string")
            .cannedAcl("string")
            .build())
        .sns(TopicRuleSnsArgs.builder()
            .roleArn("string")
            .targetArn("string")
            .messageFormat("string")
            .build())
        .cloudwatchMetric(TopicRuleCloudwatchMetricArgs.builder()
            .metricName("string")
            .metricNamespace("string")
            .metricUnit("string")
            .metricValue("string")
            .roleArn("string")
            .metricTimestamp("string")
            .build())
        .cloudwatchLogs(TopicRuleCloudwatchLogArgs.builder()
            .logGroupName("string")
            .roleArn("string")
            .build())
        .sqs(TopicRuleSqsArgs.builder()
            .queueUrl("string")
            .roleArn("string")
            .useBase64(false)
            .build())
        .stepFunctions(TopicRuleStepFunctionArgs.builder()
            .roleArn("string")
            .stateMachineName("string")
            .executionNamePrefix("string")
            .build())
        .tags(Map.of("string", "string"))
        .timestreams(TopicRuleTimestreamArgs.builder()
            .databaseName("string")
            .dimensions(TopicRuleTimestreamDimensionArgs.builder()
                .name("string")
                .value("string")
                .build())
            .roleArn("string")
            .tableName("string")
            .timestamp(TopicRuleTimestreamTimestampArgs.builder()
                .unit("string")
                .value("string")
                .build())
            .build())
        .build());
    
    topic_rule_resource = aws.iot.TopicRule("topicRuleResource",
        enabled=False,
        sql_version="string",
        sql="string",
        iot_events=[{
            "input_name": "string",
            "role_arn": "string",
            "batch_mode": False,
            "message_id": "string",
        }],
        kinesis={
            "role_arn": "string",
            "stream_name": "string",
            "partition_key": "string",
        },
        dynamodbv2s=[{
            "role_arn": "string",
            "put_item": {
                "table_name": "string",
            },
        }],
        elasticsearch={
            "endpoint": "string",
            "id": "string",
            "index": "string",
            "role_arn": "string",
            "type": "string",
        },
        description="string",
        error_action={
            "cloudwatch_alarm": {
                "alarm_name": "string",
                "role_arn": "string",
                "state_reason": "string",
                "state_value": "string",
            },
            "cloudwatch_logs": {
                "log_group_name": "string",
                "role_arn": "string",
            },
            "cloudwatch_metric": {
                "metric_name": "string",
                "metric_namespace": "string",
                "metric_unit": "string",
                "metric_value": "string",
                "role_arn": "string",
                "metric_timestamp": "string",
            },
            "dynamodb": {
                "hash_key_field": "string",
                "hash_key_value": "string",
                "role_arn": "string",
                "table_name": "string",
                "hash_key_type": "string",
                "operation": "string",
                "payload_field": "string",
                "range_key_field": "string",
                "range_key_type": "string",
                "range_key_value": "string",
            },
            "dynamodbv2": {
                "role_arn": "string",
                "put_item": {
                    "table_name": "string",
                },
            },
            "elasticsearch": {
                "endpoint": "string",
                "id": "string",
                "index": "string",
                "role_arn": "string",
                "type": "string",
            },
            "firehose": {
                "delivery_stream_name": "string",
                "role_arn": "string",
                "batch_mode": False,
                "separator": "string",
            },
            "http": {
                "url": "string",
                "confirmation_url": "string",
                "http_headers": [{
                    "key": "string",
                    "value": "string",
                }],
            },
            "iot_analytics": {
                "channel_name": "string",
                "role_arn": "string",
                "batch_mode": False,
            },
            "iot_events": {
                "input_name": "string",
                "role_arn": "string",
                "batch_mode": False,
                "message_id": "string",
            },
            "kafka": {
                "client_properties": {
                    "string": "string",
                },
                "destination_arn": "string",
                "topic": "string",
                "key": "string",
                "partition": "string",
            },
            "kinesis": {
                "role_arn": "string",
                "stream_name": "string",
                "partition_key": "string",
            },
            "lambda_": {
                "function_arn": "string",
            },
            "republish": {
                "role_arn": "string",
                "topic": "string",
                "qos": 0,
            },
            "s3": {
                "bucket_name": "string",
                "key": "string",
                "role_arn": "string",
                "canned_acl": "string",
            },
            "sns": {
                "role_arn": "string",
                "target_arn": "string",
                "message_format": "string",
            },
            "sqs": {
                "queue_url": "string",
                "role_arn": "string",
                "use_base64": False,
            },
            "step_functions": {
                "role_arn": "string",
                "state_machine_name": "string",
                "execution_name_prefix": "string",
            },
            "timestream": {
                "database_name": "string",
                "dimensions": [{
                    "name": "string",
                    "value": "string",
                }],
                "role_arn": "string",
                "table_name": "string",
                "timestamp": {
                    "unit": "string",
                    "value": "string",
                },
            },
        },
        firehose={
            "delivery_stream_name": "string",
            "role_arn": "string",
            "batch_mode": False,
            "separator": "string",
        },
        https=[{
            "url": "string",
            "confirmation_url": "string",
            "http_headers": [{
                "key": "string",
                "value": "string",
            }],
        }],
        iot_analytics=[{
            "channel_name": "string",
            "role_arn": "string",
            "batch_mode": False,
        }],
        cloudwatch_alarm={
            "alarm_name": "string",
            "role_arn": "string",
            "state_reason": "string",
            "state_value": "string",
        },
        kafkas=[{
            "client_properties": {
                "string": "string",
            },
            "destination_arn": "string",
            "topic": "string",
            "key": "string",
            "partition": "string",
        }],
        dynamodb={
            "hash_key_field": "string",
            "hash_key_value": "string",
            "role_arn": "string",
            "table_name": "string",
            "hash_key_type": "string",
            "operation": "string",
            "payload_field": "string",
            "range_key_field": "string",
            "range_key_type": "string",
            "range_key_value": "string",
        },
        lambda_={
            "function_arn": "string",
        },
        name="string",
        republish={
            "role_arn": "string",
            "topic": "string",
            "qos": 0,
        },
        s3={
            "bucket_name": "string",
            "key": "string",
            "role_arn": "string",
            "canned_acl": "string",
        },
        sns={
            "role_arn": "string",
            "target_arn": "string",
            "message_format": "string",
        },
        cloudwatch_metric={
            "metric_name": "string",
            "metric_namespace": "string",
            "metric_unit": "string",
            "metric_value": "string",
            "role_arn": "string",
            "metric_timestamp": "string",
        },
        cloudwatch_logs=[{
            "log_group_name": "string",
            "role_arn": "string",
        }],
        sqs={
            "queue_url": "string",
            "role_arn": "string",
            "use_base64": False,
        },
        step_functions=[{
            "role_arn": "string",
            "state_machine_name": "string",
            "execution_name_prefix": "string",
        }],
        tags={
            "string": "string",
        },
        timestreams=[{
            "database_name": "string",
            "dimensions": [{
                "name": "string",
                "value": "string",
            }],
            "role_arn": "string",
            "table_name": "string",
            "timestamp": {
                "unit": "string",
                "value": "string",
            },
        }])
    
    const topicRuleResource = new aws.iot.TopicRule("topicRuleResource", {
        enabled: false,
        sqlVersion: "string",
        sql: "string",
        iotEvents: [{
            inputName: "string",
            roleArn: "string",
            batchMode: false,
            messageId: "string",
        }],
        kinesis: {
            roleArn: "string",
            streamName: "string",
            partitionKey: "string",
        },
        dynamodbv2s: [{
            roleArn: "string",
            putItem: {
                tableName: "string",
            },
        }],
        elasticsearch: {
            endpoint: "string",
            id: "string",
            index: "string",
            roleArn: "string",
            type: "string",
        },
        description: "string",
        errorAction: {
            cloudwatchAlarm: {
                alarmName: "string",
                roleArn: "string",
                stateReason: "string",
                stateValue: "string",
            },
            cloudwatchLogs: {
                logGroupName: "string",
                roleArn: "string",
            },
            cloudwatchMetric: {
                metricName: "string",
                metricNamespace: "string",
                metricUnit: "string",
                metricValue: "string",
                roleArn: "string",
                metricTimestamp: "string",
            },
            dynamodb: {
                hashKeyField: "string",
                hashKeyValue: "string",
                roleArn: "string",
                tableName: "string",
                hashKeyType: "string",
                operation: "string",
                payloadField: "string",
                rangeKeyField: "string",
                rangeKeyType: "string",
                rangeKeyValue: "string",
            },
            dynamodbv2: {
                roleArn: "string",
                putItem: {
                    tableName: "string",
                },
            },
            elasticsearch: {
                endpoint: "string",
                id: "string",
                index: "string",
                roleArn: "string",
                type: "string",
            },
            firehose: {
                deliveryStreamName: "string",
                roleArn: "string",
                batchMode: false,
                separator: "string",
            },
            http: {
                url: "string",
                confirmationUrl: "string",
                httpHeaders: [{
                    key: "string",
                    value: "string",
                }],
            },
            iotAnalytics: {
                channelName: "string",
                roleArn: "string",
                batchMode: false,
            },
            iotEvents: {
                inputName: "string",
                roleArn: "string",
                batchMode: false,
                messageId: "string",
            },
            kafka: {
                clientProperties: {
                    string: "string",
                },
                destinationArn: "string",
                topic: "string",
                key: "string",
                partition: "string",
            },
            kinesis: {
                roleArn: "string",
                streamName: "string",
                partitionKey: "string",
            },
            lambda: {
                functionArn: "string",
            },
            republish: {
                roleArn: "string",
                topic: "string",
                qos: 0,
            },
            s3: {
                bucketName: "string",
                key: "string",
                roleArn: "string",
                cannedAcl: "string",
            },
            sns: {
                roleArn: "string",
                targetArn: "string",
                messageFormat: "string",
            },
            sqs: {
                queueUrl: "string",
                roleArn: "string",
                useBase64: false,
            },
            stepFunctions: {
                roleArn: "string",
                stateMachineName: "string",
                executionNamePrefix: "string",
            },
            timestream: {
                databaseName: "string",
                dimensions: [{
                    name: "string",
                    value: "string",
                }],
                roleArn: "string",
                tableName: "string",
                timestamp: {
                    unit: "string",
                    value: "string",
                },
            },
        },
        firehose: {
            deliveryStreamName: "string",
            roleArn: "string",
            batchMode: false,
            separator: "string",
        },
        https: [{
            url: "string",
            confirmationUrl: "string",
            httpHeaders: [{
                key: "string",
                value: "string",
            }],
        }],
        iotAnalytics: [{
            channelName: "string",
            roleArn: "string",
            batchMode: false,
        }],
        cloudwatchAlarm: {
            alarmName: "string",
            roleArn: "string",
            stateReason: "string",
            stateValue: "string",
        },
        kafkas: [{
            clientProperties: {
                string: "string",
            },
            destinationArn: "string",
            topic: "string",
            key: "string",
            partition: "string",
        }],
        dynamodb: {
            hashKeyField: "string",
            hashKeyValue: "string",
            roleArn: "string",
            tableName: "string",
            hashKeyType: "string",
            operation: "string",
            payloadField: "string",
            rangeKeyField: "string",
            rangeKeyType: "string",
            rangeKeyValue: "string",
        },
        lambda: {
            functionArn: "string",
        },
        name: "string",
        republish: {
            roleArn: "string",
            topic: "string",
            qos: 0,
        },
        s3: {
            bucketName: "string",
            key: "string",
            roleArn: "string",
            cannedAcl: "string",
        },
        sns: {
            roleArn: "string",
            targetArn: "string",
            messageFormat: "string",
        },
        cloudwatchMetric: {
            metricName: "string",
            metricNamespace: "string",
            metricUnit: "string",
            metricValue: "string",
            roleArn: "string",
            metricTimestamp: "string",
        },
        cloudwatchLogs: [{
            logGroupName: "string",
            roleArn: "string",
        }],
        sqs: {
            queueUrl: "string",
            roleArn: "string",
            useBase64: false,
        },
        stepFunctions: [{
            roleArn: "string",
            stateMachineName: "string",
            executionNamePrefix: "string",
        }],
        tags: {
            string: "string",
        },
        timestreams: [{
            databaseName: "string",
            dimensions: [{
                name: "string",
                value: "string",
            }],
            roleArn: "string",
            tableName: "string",
            timestamp: {
                unit: "string",
                value: "string",
            },
        }],
    });
    
    type: aws:iot:TopicRule
    properties:
        cloudwatchAlarm:
            alarmName: string
            roleArn: string
            stateReason: string
            stateValue: string
        cloudwatchLogs:
            - logGroupName: string
              roleArn: string
        cloudwatchMetric:
            metricName: string
            metricNamespace: string
            metricTimestamp: string
            metricUnit: string
            metricValue: string
            roleArn: string
        description: string
        dynamodb:
            hashKeyField: string
            hashKeyType: string
            hashKeyValue: string
            operation: string
            payloadField: string
            rangeKeyField: string
            rangeKeyType: string
            rangeKeyValue: string
            roleArn: string
            tableName: string
        dynamodbv2s:
            - putItem:
                tableName: string
              roleArn: string
        elasticsearch:
            endpoint: string
            id: string
            index: string
            roleArn: string
            type: string
        enabled: false
        errorAction:
            cloudwatchAlarm:
                alarmName: string
                roleArn: string
                stateReason: string
                stateValue: string
            cloudwatchLogs:
                logGroupName: string
                roleArn: string
            cloudwatchMetric:
                metricName: string
                metricNamespace: string
                metricTimestamp: string
                metricUnit: string
                metricValue: string
                roleArn: string
            dynamodb:
                hashKeyField: string
                hashKeyType: string
                hashKeyValue: string
                operation: string
                payloadField: string
                rangeKeyField: string
                rangeKeyType: string
                rangeKeyValue: string
                roleArn: string
                tableName: string
            dynamodbv2:
                putItem:
                    tableName: string
                roleArn: string
            elasticsearch:
                endpoint: string
                id: string
                index: string
                roleArn: string
                type: string
            firehose:
                batchMode: false
                deliveryStreamName: string
                roleArn: string
                separator: string
            http:
                confirmationUrl: string
                httpHeaders:
                    - key: string
                      value: string
                url: string
            iotAnalytics:
                batchMode: false
                channelName: string
                roleArn: string
            iotEvents:
                batchMode: false
                inputName: string
                messageId: string
                roleArn: string
            kafka:
                clientProperties:
                    string: string
                destinationArn: string
                key: string
                partition: string
                topic: string
            kinesis:
                partitionKey: string
                roleArn: string
                streamName: string
            lambda:
                functionArn: string
            republish:
                qos: 0
                roleArn: string
                topic: string
            s3:
                bucketName: string
                cannedAcl: string
                key: string
                roleArn: string
            sns:
                messageFormat: string
                roleArn: string
                targetArn: string
            sqs:
                queueUrl: string
                roleArn: string
                useBase64: false
            stepFunctions:
                executionNamePrefix: string
                roleArn: string
                stateMachineName: string
            timestream:
                databaseName: string
                dimensions:
                    - name: string
                      value: string
                roleArn: string
                tableName: string
                timestamp:
                    unit: string
                    value: string
        firehose:
            batchMode: false
            deliveryStreamName: string
            roleArn: string
            separator: string
        https:
            - confirmationUrl: string
              httpHeaders:
                - key: string
                  value: string
              url: string
        iotAnalytics:
            - batchMode: false
              channelName: string
              roleArn: string
        iotEvents:
            - batchMode: false
              inputName: string
              messageId: string
              roleArn: string
        kafkas:
            - clientProperties:
                string: string
              destinationArn: string
              key: string
              partition: string
              topic: string
        kinesis:
            partitionKey: string
            roleArn: string
            streamName: string
        lambda:
            functionArn: string
        name: string
        republish:
            qos: 0
            roleArn: string
            topic: string
        s3:
            bucketName: string
            cannedAcl: string
            key: string
            roleArn: string
        sns:
            messageFormat: string
            roleArn: string
            targetArn: string
        sql: string
        sqlVersion: string
        sqs:
            queueUrl: string
            roleArn: string
            useBase64: false
        stepFunctions:
            - executionNamePrefix: string
              roleArn: string
              stateMachineName: string
        tags:
            string: string
        timestreams:
            - databaseName: string
              dimensions:
                - name: string
                  value: string
              roleArn: string
              tableName: string
              timestamp:
                unit: string
                value: string
    

    TopicRule Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The TopicRule resource accepts the following input properties:

    Enabled bool
    Specifies whether the rule is enabled.
    Sql string
    The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the AWS IoT Developer Guide.
    SqlVersion string
    The version of the SQL rules engine to use when evaluating the rule.
    CloudwatchAlarm TopicRuleCloudwatchAlarm
    CloudwatchLogs List<TopicRuleCloudwatchLog>
    CloudwatchMetric TopicRuleCloudwatchMetric
    Description string
    The description of the rule.
    Dynamodb TopicRuleDynamodb
    Dynamodbv2s List<TopicRuleDynamodbv2>
    Elasticsearch TopicRuleElasticsearch
    ErrorAction TopicRuleErrorAction
    Configuration block with error action to be associated with the rule. See the documentation for cloudwatch_alarm, cloudwatch_logs, cloudwatch_metric, dynamodb, dynamodbv2, elasticsearch, firehose, http, iot_analytics, iot_events, kafka, kinesis, lambda, republish, s3, sns, sqs, step_functions, timestream configuration blocks for further configuration details.
    Firehose TopicRuleFirehose
    Https List<TopicRuleHttp>
    IotAnalytics List<TopicRuleIotAnalytic>
    IotEvents List<TopicRuleIotEvent>
    Kafkas List<TopicRuleKafka>
    Kinesis TopicRuleKinesis
    Lambda TopicRuleLambda
    Name string
    The name of the rule.
    Republish TopicRuleRepublish
    S3 TopicRuleS3
    Sns TopicRuleSns
    Sqs TopicRuleSqs
    StepFunctions List<TopicRuleStepFunction>
    Tags Dictionary<string, string>
    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    Timestreams List<TopicRuleTimestream>
    Enabled bool
    Specifies whether the rule is enabled.
    Sql string
    The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the AWS IoT Developer Guide.
    SqlVersion string
    The version of the SQL rules engine to use when evaluating the rule.
    CloudwatchAlarm TopicRuleCloudwatchAlarmArgs
    CloudwatchLogs []TopicRuleCloudwatchLogArgs
    CloudwatchMetric TopicRuleCloudwatchMetricArgs
    Description string
    The description of the rule.
    Dynamodb TopicRuleDynamodbArgs
    Dynamodbv2s []TopicRuleDynamodbv2Args
    Elasticsearch TopicRuleElasticsearchArgs
    ErrorAction TopicRuleErrorActionArgs
    Configuration block with error action to be associated with the rule. See the documentation for cloudwatch_alarm, cloudwatch_logs, cloudwatch_metric, dynamodb, dynamodbv2, elasticsearch, firehose, http, iot_analytics, iot_events, kafka, kinesis, lambda, republish, s3, sns, sqs, step_functions, timestream configuration blocks for further configuration details.
    Firehose TopicRuleFirehoseArgs
    Https []TopicRuleHttpArgs
    IotAnalytics []TopicRuleIotAnalyticArgs
    IotEvents []TopicRuleIotEventArgs
    Kafkas []TopicRuleKafkaArgs
    Kinesis TopicRuleKinesisArgs
    Lambda TopicRuleLambdaArgs
    Name string
    The name of the rule.
    Republish TopicRuleRepublishArgs
    S3 TopicRuleS3Args
    Sns TopicRuleSnsArgs
    Sqs TopicRuleSqsArgs
    StepFunctions []TopicRuleStepFunctionArgs
    Tags map[string]string
    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    Timestreams []TopicRuleTimestreamArgs
    enabled Boolean
    Specifies whether the rule is enabled.
    sql String
    The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the AWS IoT Developer Guide.
    sqlVersion String
    The version of the SQL rules engine to use when evaluating the rule.
    cloudwatchAlarm TopicRuleCloudwatchAlarm
    cloudwatchLogs List<TopicRuleCloudwatchLog>
    cloudwatchMetric TopicRuleCloudwatchMetric
    description String
    The description of the rule.
    dynamodb TopicRuleDynamodb
    dynamodbv2s List<TopicRuleDynamodbv2>
    elasticsearch TopicRuleElasticsearch
    errorAction TopicRuleErrorAction
    Configuration block with error action to be associated with the rule. See the documentation for cloudwatch_alarm, cloudwatch_logs, cloudwatch_metric, dynamodb, dynamodbv2, elasticsearch, firehose, http, iot_analytics, iot_events, kafka, kinesis, lambda, republish, s3, sns, sqs, step_functions, timestream configuration blocks for further configuration details.
    firehose TopicRuleFirehose
    https List<TopicRuleHttp>
    iotAnalytics List<TopicRuleIotAnalytic>
    iotEvents List<TopicRuleIotEvent>
    kafkas List<TopicRuleKafka>
    kinesis TopicRuleKinesis
    lambda TopicRuleLambda
    name String
    The name of the rule.
    republish TopicRuleRepublish
    s3 TopicRuleS3
    sns TopicRuleSns
    sqs TopicRuleSqs
    stepFunctions List<TopicRuleStepFunction>
    tags Map<String,String>
    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    timestreams List<TopicRuleTimestream>
    enabled boolean
    Specifies whether the rule is enabled.
    sql string
    The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the AWS IoT Developer Guide.
    sqlVersion string
    The version of the SQL rules engine to use when evaluating the rule.
    cloudwatchAlarm TopicRuleCloudwatchAlarm
    cloudwatchLogs TopicRuleCloudwatchLog[]
    cloudwatchMetric TopicRuleCloudwatchMetric
    description string
    The description of the rule.
    dynamodb TopicRuleDynamodb
    dynamodbv2s TopicRuleDynamodbv2[]
    elasticsearch TopicRuleElasticsearch
    errorAction TopicRuleErrorAction
    Configuration block with error action to be associated with the rule. See the documentation for cloudwatch_alarm, cloudwatch_logs, cloudwatch_metric, dynamodb, dynamodbv2, elasticsearch, firehose, http, iot_analytics, iot_events, kafka, kinesis, lambda, republish, s3, sns, sqs, step_functions, timestream configuration blocks for further configuration details.
    firehose TopicRuleFirehose
    https TopicRuleHttp[]
    iotAnalytics TopicRuleIotAnalytic[]
    iotEvents TopicRuleIotEvent[]
    kafkas TopicRuleKafka[]
    kinesis TopicRuleKinesis
    lambda TopicRuleLambda
    name string
    The name of the rule.
    republish TopicRuleRepublish
    s3 TopicRuleS3
    sns TopicRuleSns
    sqs TopicRuleSqs
    stepFunctions TopicRuleStepFunction[]
    tags {[key: string]: string}
    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    timestreams TopicRuleTimestream[]
    enabled bool
    Specifies whether the rule is enabled.
    sql str
    The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the AWS IoT Developer Guide.
    sql_version str
    The version of the SQL rules engine to use when evaluating the rule.
    cloudwatch_alarm TopicRuleCloudwatchAlarmArgs
    cloudwatch_logs Sequence[TopicRuleCloudwatchLogArgs]
    cloudwatch_metric TopicRuleCloudwatchMetricArgs
    description str
    The description of the rule.
    dynamodb TopicRuleDynamodbArgs
    dynamodbv2s Sequence[TopicRuleDynamodbv2Args]
    elasticsearch TopicRuleElasticsearchArgs
    error_action TopicRuleErrorActionArgs
    Configuration block with error action to be associated with the rule. See the documentation for cloudwatch_alarm, cloudwatch_logs, cloudwatch_metric, dynamodb, dynamodbv2, elasticsearch, firehose, http, iot_analytics, iot_events, kafka, kinesis, lambda, republish, s3, sns, sqs, step_functions, timestream configuration blocks for further configuration details.
    firehose TopicRuleFirehoseArgs
    https Sequence[TopicRuleHttpArgs]
    iot_analytics Sequence[TopicRuleIotAnalyticArgs]
    iot_events Sequence[TopicRuleIotEventArgs]
    kafkas Sequence[TopicRuleKafkaArgs]
    kinesis TopicRuleKinesisArgs
    lambda_ TopicRuleLambdaArgs
    name str
    The name of the rule.
    republish TopicRuleRepublishArgs
    s3 TopicRuleS3Args
    sns TopicRuleSnsArgs
    sqs TopicRuleSqsArgs
    step_functions Sequence[TopicRuleStepFunctionArgs]
    tags Mapping[str, str]
    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    timestreams Sequence[TopicRuleTimestreamArgs]
    enabled Boolean
    Specifies whether the rule is enabled.
    sql String
    The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the AWS IoT Developer Guide.
    sqlVersion String
    The version of the SQL rules engine to use when evaluating the rule.
    cloudwatchAlarm Property Map
    cloudwatchLogs List<Property Map>
    cloudwatchMetric Property Map
    description String
    The description of the rule.
    dynamodb Property Map
    dynamodbv2s List<Property Map>
    elasticsearch Property Map
    errorAction Property Map
    Configuration block with error action to be associated with the rule. See the documentation for cloudwatch_alarm, cloudwatch_logs, cloudwatch_metric, dynamodb, dynamodbv2, elasticsearch, firehose, http, iot_analytics, iot_events, kafka, kinesis, lambda, republish, s3, sns, sqs, step_functions, timestream configuration blocks for further configuration details.
    firehose Property Map
    https List<Property Map>
    iotAnalytics List<Property Map>
    iotEvents List<Property Map>
    kafkas List<Property Map>
    kinesis Property Map
    lambda Property Map
    name String
    The name of the rule.
    republish Property Map
    s3 Property Map
    sns Property Map
    sqs Property Map
    stepFunctions List<Property Map>
    tags Map<String>
    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    timestreams List<Property Map>

    Outputs

    All input properties are implicitly available as output properties. Additionally, the TopicRule resource produces the following output properties:

    Arn string
    The ARN of the topic rule
    Id string
    The provider-assigned unique ID for this managed resource.
    TagsAll Dictionary<string, string>
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    Arn string
    The ARN of the topic rule
    Id string
    The provider-assigned unique ID for this managed resource.
    TagsAll map[string]string
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    arn String
    The ARN of the topic rule
    id String
    The provider-assigned unique ID for this managed resource.
    tagsAll Map<String,String>
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    arn string
    The ARN of the topic rule
    id string
    The provider-assigned unique ID for this managed resource.
    tagsAll {[key: string]: string}
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    arn str
    The ARN of the topic rule
    id str
    The provider-assigned unique ID for this managed resource.
    tags_all Mapping[str, str]
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    arn String
    The ARN of the topic rule
    id String
    The provider-assigned unique ID for this managed resource.
    tagsAll Map<String>
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Look up Existing TopicRule Resource

    Get an existing TopicRule resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: TopicRuleState, opts?: CustomResourceOptions): TopicRule
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            arn: Optional[str] = None,
            cloudwatch_alarm: Optional[TopicRuleCloudwatchAlarmArgs] = None,
            cloudwatch_logs: Optional[Sequence[TopicRuleCloudwatchLogArgs]] = None,
            cloudwatch_metric: Optional[TopicRuleCloudwatchMetricArgs] = None,
            description: Optional[str] = None,
            dynamodb: Optional[TopicRuleDynamodbArgs] = None,
            dynamodbv2s: Optional[Sequence[TopicRuleDynamodbv2Args]] = None,
            elasticsearch: Optional[TopicRuleElasticsearchArgs] = None,
            enabled: Optional[bool] = None,
            error_action: Optional[TopicRuleErrorActionArgs] = None,
            firehose: Optional[TopicRuleFirehoseArgs] = None,
            https: Optional[Sequence[TopicRuleHttpArgs]] = None,
            iot_analytics: Optional[Sequence[TopicRuleIotAnalyticArgs]] = None,
            iot_events: Optional[Sequence[TopicRuleIotEventArgs]] = None,
            kafkas: Optional[Sequence[TopicRuleKafkaArgs]] = None,
            kinesis: Optional[TopicRuleKinesisArgs] = None,
            lambda_: Optional[TopicRuleLambdaArgs] = None,
            name: Optional[str] = None,
            republish: Optional[TopicRuleRepublishArgs] = None,
            s3: Optional[TopicRuleS3Args] = None,
            sns: Optional[TopicRuleSnsArgs] = None,
            sql: Optional[str] = None,
            sql_version: Optional[str] = None,
            sqs: Optional[TopicRuleSqsArgs] = None,
            step_functions: Optional[Sequence[TopicRuleStepFunctionArgs]] = None,
            tags: Optional[Mapping[str, str]] = None,
            tags_all: Optional[Mapping[str, str]] = None,
            timestreams: Optional[Sequence[TopicRuleTimestreamArgs]] = None) -> TopicRule
    func GetTopicRule(ctx *Context, name string, id IDInput, state *TopicRuleState, opts ...ResourceOption) (*TopicRule, error)
    public static TopicRule Get(string name, Input<string> id, TopicRuleState? state, CustomResourceOptions? opts = null)
    public static TopicRule get(String name, Output<String> id, TopicRuleState state, CustomResourceOptions options)
    resources:  _:    type: aws:iot:TopicRule    get:      id: ${id}
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Arn string
    The ARN of the topic rule
    CloudwatchAlarm TopicRuleCloudwatchAlarm
    CloudwatchLogs List<TopicRuleCloudwatchLog>
    CloudwatchMetric TopicRuleCloudwatchMetric
    Description string
    The description of the rule.
    Dynamodb TopicRuleDynamodb
    Dynamodbv2s List<TopicRuleDynamodbv2>
    Elasticsearch TopicRuleElasticsearch
    Enabled bool
    Specifies whether the rule is enabled.
    ErrorAction TopicRuleErrorAction
    Configuration block with error action to be associated with the rule. See the documentation for cloudwatch_alarm, cloudwatch_logs, cloudwatch_metric, dynamodb, dynamodbv2, elasticsearch, firehose, http, iot_analytics, iot_events, kafka, kinesis, lambda, republish, s3, sns, sqs, step_functions, timestream configuration blocks for further configuration details.
    Firehose TopicRuleFirehose
    Https List<TopicRuleHttp>
    IotAnalytics List<TopicRuleIotAnalytic>
    IotEvents List<TopicRuleIotEvent>
    Kafkas List<TopicRuleKafka>
    Kinesis TopicRuleKinesis
    Lambda TopicRuleLambda
    Name string
    The name of the rule.
    Republish TopicRuleRepublish
    S3 TopicRuleS3
    Sns TopicRuleSns
    Sql string
    The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the AWS IoT Developer Guide.
    SqlVersion string
    The version of the SQL rules engine to use when evaluating the rule.
    Sqs TopicRuleSqs
    StepFunctions List<TopicRuleStepFunction>
    Tags Dictionary<string, string>
    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    TagsAll Dictionary<string, string>
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    Timestreams List<TopicRuleTimestream>
    Arn string
    The ARN of the topic rule
    CloudwatchAlarm TopicRuleCloudwatchAlarmArgs
    CloudwatchLogs []TopicRuleCloudwatchLogArgs
    CloudwatchMetric TopicRuleCloudwatchMetricArgs
    Description string
    The description of the rule.
    Dynamodb TopicRuleDynamodbArgs
    Dynamodbv2s []TopicRuleDynamodbv2Args
    Elasticsearch TopicRuleElasticsearchArgs
    Enabled bool
    Specifies whether the rule is enabled.
    ErrorAction TopicRuleErrorActionArgs
    Configuration block with error action to be associated with the rule. See the documentation for cloudwatch_alarm, cloudwatch_logs, cloudwatch_metric, dynamodb, dynamodbv2, elasticsearch, firehose, http, iot_analytics, iot_events, kafka, kinesis, lambda, republish, s3, sns, sqs, step_functions, timestream configuration blocks for further configuration details.
    Firehose TopicRuleFirehoseArgs
    Https []TopicRuleHttpArgs
    IotAnalytics []TopicRuleIotAnalyticArgs
    IotEvents []TopicRuleIotEventArgs
    Kafkas []TopicRuleKafkaArgs
    Kinesis TopicRuleKinesisArgs
    Lambda TopicRuleLambdaArgs
    Name string
    The name of the rule.
    Republish TopicRuleRepublishArgs
    S3 TopicRuleS3Args
    Sns TopicRuleSnsArgs
    Sql string
    The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the AWS IoT Developer Guide.
    SqlVersion string
    The version of the SQL rules engine to use when evaluating the rule.
    Sqs TopicRuleSqsArgs
    StepFunctions []TopicRuleStepFunctionArgs
    Tags map[string]string
    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    TagsAll map[string]string
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    Timestreams []TopicRuleTimestreamArgs
    arn String
    The ARN of the topic rule
    cloudwatchAlarm TopicRuleCloudwatchAlarm
    cloudwatchLogs List<TopicRuleCloudwatchLog>
    cloudwatchMetric TopicRuleCloudwatchMetric
    description String
    The description of the rule.
    dynamodb TopicRuleDynamodb
    dynamodbv2s List<TopicRuleDynamodbv2>
    elasticsearch TopicRuleElasticsearch
    enabled Boolean
    Specifies whether the rule is enabled.
    errorAction TopicRuleErrorAction
    Configuration block with error action to be associated with the rule. See the documentation for cloudwatch_alarm, cloudwatch_logs, cloudwatch_metric, dynamodb, dynamodbv2, elasticsearch, firehose, http, iot_analytics, iot_events, kafka, kinesis, lambda, republish, s3, sns, sqs, step_functions, timestream configuration blocks for further configuration details.
    firehose TopicRuleFirehose
    https List<TopicRuleHttp>
    iotAnalytics List<TopicRuleIotAnalytic>
    iotEvents List<TopicRuleIotEvent>
    kafkas List<TopicRuleKafka>
    kinesis TopicRuleKinesis
    lambda TopicRuleLambda
    name String
    The name of the rule.
    republish TopicRuleRepublish
    s3 TopicRuleS3
    sns TopicRuleSns
    sql String
    The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the AWS IoT Developer Guide.
    sqlVersion String
    The version of the SQL rules engine to use when evaluating the rule.
    sqs TopicRuleSqs
    stepFunctions List<TopicRuleStepFunction>
    tags Map<String,String>
    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tagsAll Map<String,String>
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    timestreams List<TopicRuleTimestream>
    arn string
    The ARN of the topic rule
    cloudwatchAlarm TopicRuleCloudwatchAlarm
    cloudwatchLogs TopicRuleCloudwatchLog[]
    cloudwatchMetric TopicRuleCloudwatchMetric
    description string
    The description of the rule.
    dynamodb TopicRuleDynamodb
    dynamodbv2s TopicRuleDynamodbv2[]
    elasticsearch TopicRuleElasticsearch
    enabled boolean
    Specifies whether the rule is enabled.
    errorAction TopicRuleErrorAction
    Configuration block with error action to be associated with the rule. See the documentation for cloudwatch_alarm, cloudwatch_logs, cloudwatch_metric, dynamodb, dynamodbv2, elasticsearch, firehose, http, iot_analytics, iot_events, kafka, kinesis, lambda, republish, s3, sns, sqs, step_functions, timestream configuration blocks for further configuration details.
    firehose TopicRuleFirehose
    https TopicRuleHttp[]
    iotAnalytics TopicRuleIotAnalytic[]
    iotEvents TopicRuleIotEvent[]
    kafkas TopicRuleKafka[]
    kinesis TopicRuleKinesis
    lambda TopicRuleLambda
    name string
    The name of the rule.
    republish TopicRuleRepublish
    s3 TopicRuleS3
    sns TopicRuleSns
    sql string
    The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the AWS IoT Developer Guide.
    sqlVersion string
    The version of the SQL rules engine to use when evaluating the rule.
    sqs TopicRuleSqs
    stepFunctions TopicRuleStepFunction[]
    tags {[key: string]: string}
    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tagsAll {[key: string]: string}
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    timestreams TopicRuleTimestream[]
    arn str
    The ARN of the topic rule
    cloudwatch_alarm TopicRuleCloudwatchAlarmArgs
    cloudwatch_logs Sequence[TopicRuleCloudwatchLogArgs]
    cloudwatch_metric TopicRuleCloudwatchMetricArgs
    description str
    The description of the rule.
    dynamodb TopicRuleDynamodbArgs
    dynamodbv2s Sequence[TopicRuleDynamodbv2Args]
    elasticsearch TopicRuleElasticsearchArgs
    enabled bool
    Specifies whether the rule is enabled.
    error_action TopicRuleErrorActionArgs
    Configuration block with error action to be associated with the rule. See the documentation for cloudwatch_alarm, cloudwatch_logs, cloudwatch_metric, dynamodb, dynamodbv2, elasticsearch, firehose, http, iot_analytics, iot_events, kafka, kinesis, lambda, republish, s3, sns, sqs, step_functions, timestream configuration blocks for further configuration details.
    firehose TopicRuleFirehoseArgs
    https Sequence[TopicRuleHttpArgs]
    iot_analytics Sequence[TopicRuleIotAnalyticArgs]
    iot_events Sequence[TopicRuleIotEventArgs]
    kafkas Sequence[TopicRuleKafkaArgs]
    kinesis TopicRuleKinesisArgs
    lambda_ TopicRuleLambdaArgs
    name str
    The name of the rule.
    republish TopicRuleRepublishArgs
    s3 TopicRuleS3Args
    sns TopicRuleSnsArgs
    sql str
    The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the AWS IoT Developer Guide.
    sql_version str
    The version of the SQL rules engine to use when evaluating the rule.
    sqs TopicRuleSqsArgs
    step_functions Sequence[TopicRuleStepFunctionArgs]
    tags Mapping[str, str]
    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tags_all Mapping[str, str]
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    timestreams Sequence[TopicRuleTimestreamArgs]
    arn String
    The ARN of the topic rule
    cloudwatchAlarm Property Map
    cloudwatchLogs List<Property Map>
    cloudwatchMetric Property Map
    description String
    The description of the rule.
    dynamodb Property Map
    dynamodbv2s List<Property Map>
    elasticsearch Property Map
    enabled Boolean
    Specifies whether the rule is enabled.
    errorAction Property Map
    Configuration block with error action to be associated with the rule. See the documentation for cloudwatch_alarm, cloudwatch_logs, cloudwatch_metric, dynamodb, dynamodbv2, elasticsearch, firehose, http, iot_analytics, iot_events, kafka, kinesis, lambda, republish, s3, sns, sqs, step_functions, timestream configuration blocks for further configuration details.
    firehose Property Map
    https List<Property Map>
    iotAnalytics List<Property Map>
    iotEvents List<Property Map>
    kafkas List<Property Map>
    kinesis Property Map
    lambda Property Map
    name String
    The name of the rule.
    republish Property Map
    s3 Property Map
    sns Property Map
    sql String
    The SQL statement used to query the topic. For more information, see AWS IoT SQL Reference (http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the AWS IoT Developer Guide.
    sqlVersion String
    The version of the SQL rules engine to use when evaluating the rule.
    sqs Property Map
    stepFunctions List<Property Map>
    tags Map<String>
    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tagsAll Map<String>
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    timestreams List<Property Map>

    Supporting Types

    TopicRuleCloudwatchAlarm, TopicRuleCloudwatchAlarmArgs

    AlarmName string
    The CloudWatch alarm name.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    StateReason string
    The reason for the alarm change.
    StateValue string
    The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
    AlarmName string
    The CloudWatch alarm name.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    StateReason string
    The reason for the alarm change.
    StateValue string
    The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
    alarmName String
    The CloudWatch alarm name.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch alarm.
    stateReason String
    The reason for the alarm change.
    stateValue String
    The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
    alarmName string
    The CloudWatch alarm name.
    roleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    stateReason string
    The reason for the alarm change.
    stateValue string
    The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
    alarm_name str
    The CloudWatch alarm name.
    role_arn str
    The IAM role ARN that allows access to the CloudWatch alarm.
    state_reason str
    The reason for the alarm change.
    state_value str
    The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
    alarmName String
    The CloudWatch alarm name.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch alarm.
    stateReason String
    The reason for the alarm change.
    stateValue String
    The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.

    TopicRuleCloudwatchLog, TopicRuleCloudwatchLogArgs

    LogGroupName string
    The CloudWatch log group name.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    LogGroupName string
    The CloudWatch log group name.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    logGroupName String
    The CloudWatch log group name.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch alarm.
    logGroupName string
    The CloudWatch log group name.
    roleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    log_group_name str
    The CloudWatch log group name.
    role_arn str
    The IAM role ARN that allows access to the CloudWatch alarm.
    logGroupName String
    The CloudWatch log group name.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch alarm.

    TopicRuleCloudwatchMetric, TopicRuleCloudwatchMetricArgs

    MetricName string
    The CloudWatch metric name.
    MetricNamespace string
    The CloudWatch metric namespace name.
    MetricUnit string
    The metric unit (supported units can be found here: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
    MetricValue string
    The CloudWatch metric value.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch metric.
    MetricTimestamp string
    An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
    MetricName string
    The CloudWatch metric name.
    MetricNamespace string
    The CloudWatch metric namespace name.
    MetricUnit string
    The metric unit (supported units can be found here: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
    MetricValue string
    The CloudWatch metric value.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch metric.
    MetricTimestamp string
    An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
    metricName String
    The CloudWatch metric name.
    metricNamespace String
    The CloudWatch metric namespace name.
    metricUnit String
    The metric unit (supported units can be found here: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
    metricValue String
    The CloudWatch metric value.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch metric.
    metricTimestamp String
    An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
    metricName string
    The CloudWatch metric name.
    metricNamespace string
    The CloudWatch metric namespace name.
    metricUnit string
    The metric unit (supported units can be found here: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
    metricValue string
    The CloudWatch metric value.
    roleArn string
    The IAM role ARN that allows access to the CloudWatch metric.
    metricTimestamp string
    An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
    metric_name str
    The CloudWatch metric name.
    metric_namespace str
    The CloudWatch metric namespace name.
    metric_unit str
    The metric unit (supported units can be found here: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
    metric_value str
    The CloudWatch metric value.
    role_arn str
    The IAM role ARN that allows access to the CloudWatch metric.
    metric_timestamp str
    An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
    metricName String
    The CloudWatch metric name.
    metricNamespace String
    The CloudWatch metric namespace name.
    metricUnit String
    The metric unit (supported units can be found here: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
    metricValue String
    The CloudWatch metric value.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch metric.
    metricTimestamp String
    An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).

    TopicRuleDynamodb, TopicRuleDynamodbArgs

    HashKeyField string
    The hash key name.
    HashKeyValue string
    The hash key value.
    RoleArn string
    The ARN of the IAM role that grants access to the DynamoDB table.
    TableName string
    The name of the DynamoDB table.
    HashKeyType string
    The hash key type. Valid values are "STRING" or "NUMBER".
    Operation string
    The operation. Valid values are "INSERT", "UPDATE", or "DELETE".
    PayloadField string
    The action payload.
    RangeKeyField string
    The range key name.
    RangeKeyType string
    The range key type. Valid values are "STRING" or "NUMBER".
    RangeKeyValue string
    The range key value.
    HashKeyField string
    The hash key name.
    HashKeyValue string
    The hash key value.
    RoleArn string
    The ARN of the IAM role that grants access to the DynamoDB table.
    TableName string
    The name of the DynamoDB table.
    HashKeyType string
    The hash key type. Valid values are "STRING" or "NUMBER".
    Operation string
    The operation. Valid values are "INSERT", "UPDATE", or "DELETE".
    PayloadField string
    The action payload.
    RangeKeyField string
    The range key name.
    RangeKeyType string
    The range key type. Valid values are "STRING" or "NUMBER".
    RangeKeyValue string
    The range key value.
    hashKeyField String
    The hash key name.
    hashKeyValue String
    The hash key value.
    roleArn String
    The ARN of the IAM role that grants access to the DynamoDB table.
    tableName String
    The name of the DynamoDB table.
    hashKeyType String
    The hash key type. Valid values are "STRING" or "NUMBER".
    operation String
    The operation. Valid values are "INSERT", "UPDATE", or "DELETE".
    payloadField String
    The action payload.
    rangeKeyField String
    The range key name.
    rangeKeyType String
    The range key type. Valid values are "STRING" or "NUMBER".
    rangeKeyValue String
    The range key value.
    hashKeyField string
    The hash key name.
    hashKeyValue string
    The hash key value.
    roleArn string
    The ARN of the IAM role that grants access to the DynamoDB table.
    tableName string
    The name of the DynamoDB table.
    hashKeyType string
    The hash key type. Valid values are "STRING" or "NUMBER".
    operation string
    The operation. Valid values are "INSERT", "UPDATE", or "DELETE".
    payloadField string
    The action payload.
    rangeKeyField string
    The range key name.
    rangeKeyType string
    The range key type. Valid values are "STRING" or "NUMBER".
    rangeKeyValue string
    The range key value.
    hash_key_field str
    The hash key name.
    hash_key_value str
    The hash key value.
    role_arn str
    The ARN of the IAM role that grants access to the DynamoDB table.
    table_name str
    The name of the DynamoDB table.
    hash_key_type str
    The hash key type. Valid values are "STRING" or "NUMBER".
    operation str
    The operation. Valid values are "INSERT", "UPDATE", or "DELETE".
    payload_field str
    The action payload.
    range_key_field str
    The range key name.
    range_key_type str
    The range key type. Valid values are "STRING" or "NUMBER".
    range_key_value str
    The range key value.
    hashKeyField String
    The hash key name.
    hashKeyValue String
    The hash key value.
    roleArn String
    The ARN of the IAM role that grants access to the DynamoDB table.
    tableName String
    The name of the DynamoDB table.
    hashKeyType String
    The hash key type. Valid values are "STRING" or "NUMBER".
    operation String
    The operation. Valid values are "INSERT", "UPDATE", or "DELETE".
    payloadField String
    The action payload.
    rangeKeyField String
    The range key name.
    rangeKeyType String
    The range key type. Valid values are "STRING" or "NUMBER".
    rangeKeyValue String
    The range key value.

    TopicRuleDynamodbv2, TopicRuleDynamodbv2Args

    RoleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    PutItem TopicRuleDynamodbv2PutItem
    Configuration block with DynamoDB Table to which the message will be written. Nested arguments below.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    PutItem TopicRuleDynamodbv2PutItem
    Configuration block with DynamoDB Table to which the message will be written. Nested arguments below.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch alarm.
    putItem TopicRuleDynamodbv2PutItem
    Configuration block with DynamoDB Table to which the message will be written. Nested arguments below.
    roleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    putItem TopicRuleDynamodbv2PutItem
    Configuration block with DynamoDB Table to which the message will be written. Nested arguments below.
    role_arn str
    The IAM role ARN that allows access to the CloudWatch alarm.
    put_item TopicRuleDynamodbv2PutItem
    Configuration block with DynamoDB Table to which the message will be written. Nested arguments below.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch alarm.
    putItem Property Map
    Configuration block with DynamoDB Table to which the message will be written. Nested arguments below.

    TopicRuleDynamodbv2PutItem, TopicRuleDynamodbv2PutItemArgs

    TableName string

    The name of the DynamoDB table.

    The dynamodbv2 object takes the following arguments:

    TableName string

    The name of the DynamoDB table.

    The dynamodbv2 object takes the following arguments:

    tableName String

    The name of the DynamoDB table.

    The dynamodbv2 object takes the following arguments:

    tableName string

    The name of the DynamoDB table.

    The dynamodbv2 object takes the following arguments:

    table_name str

    The name of the DynamoDB table.

    The dynamodbv2 object takes the following arguments:

    tableName String

    The name of the DynamoDB table.

    The dynamodbv2 object takes the following arguments:

    TopicRuleElasticsearch, TopicRuleElasticsearchArgs

    Endpoint string
    The endpoint of your Elasticsearch domain.
    Id string
    The unique identifier for the document you are storing.
    Index string
    The Elasticsearch index where you want to store your data.
    RoleArn string
    The IAM role ARN that has access to Elasticsearch.
    Type string
    The type of document you are storing.
    Endpoint string
    The endpoint of your Elasticsearch domain.
    Id string
    The unique identifier for the document you are storing.
    Index string
    The Elasticsearch index where you want to store your data.
    RoleArn string
    The IAM role ARN that has access to Elasticsearch.
    Type string
    The type of document you are storing.
    endpoint String
    The endpoint of your Elasticsearch domain.
    id String
    The unique identifier for the document you are storing.
    index String
    The Elasticsearch index where you want to store your data.
    roleArn String
    The IAM role ARN that has access to Elasticsearch.
    type String
    The type of document you are storing.
    endpoint string
    The endpoint of your Elasticsearch domain.
    id string
    The unique identifier for the document you are storing.
    index string
    The Elasticsearch index where you want to store your data.
    roleArn string
    The IAM role ARN that has access to Elasticsearch.
    type string
    The type of document you are storing.
    endpoint str
    The endpoint of your Elasticsearch domain.
    id str
    The unique identifier for the document you are storing.
    index str
    The Elasticsearch index where you want to store your data.
    role_arn str
    The IAM role ARN that has access to Elasticsearch.
    type str
    The type of document you are storing.
    endpoint String
    The endpoint of your Elasticsearch domain.
    id String
    The unique identifier for the document you are storing.
    index String
    The Elasticsearch index where you want to store your data.
    roleArn String
    The IAM role ARN that has access to Elasticsearch.
    type String
    The type of document you are storing.

    TopicRuleErrorAction, TopicRuleErrorActionArgs

    TopicRuleErrorActionCloudwatchAlarm, TopicRuleErrorActionCloudwatchAlarmArgs

    AlarmName string
    The CloudWatch alarm name.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    StateReason string
    The reason for the alarm change.
    StateValue string
    The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
    AlarmName string
    The CloudWatch alarm name.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    StateReason string
    The reason for the alarm change.
    StateValue string
    The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
    alarmName String
    The CloudWatch alarm name.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch alarm.
    stateReason String
    The reason for the alarm change.
    stateValue String
    The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
    alarmName string
    The CloudWatch alarm name.
    roleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    stateReason string
    The reason for the alarm change.
    stateValue string
    The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
    alarm_name str
    The CloudWatch alarm name.
    role_arn str
    The IAM role ARN that allows access to the CloudWatch alarm.
    state_reason str
    The reason for the alarm change.
    state_value str
    The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
    alarmName String
    The CloudWatch alarm name.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch alarm.
    stateReason String
    The reason for the alarm change.
    stateValue String
    The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.

    TopicRuleErrorActionCloudwatchLogs, TopicRuleErrorActionCloudwatchLogsArgs

    LogGroupName string
    The CloudWatch log group name.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    LogGroupName string
    The CloudWatch log group name.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    logGroupName String
    The CloudWatch log group name.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch alarm.
    logGroupName string
    The CloudWatch log group name.
    roleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    log_group_name str
    The CloudWatch log group name.
    role_arn str
    The IAM role ARN that allows access to the CloudWatch alarm.
    logGroupName String
    The CloudWatch log group name.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch alarm.

    TopicRuleErrorActionCloudwatchMetric, TopicRuleErrorActionCloudwatchMetricArgs

    MetricName string
    The CloudWatch metric name.
    MetricNamespace string
    The CloudWatch metric namespace name.
    MetricUnit string
    The metric unit (supported units can be found here: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
    MetricValue string
    The CloudWatch metric value.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch metric.
    MetricTimestamp string
    An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
    MetricName string
    The CloudWatch metric name.
    MetricNamespace string
    The CloudWatch metric namespace name.
    MetricUnit string
    The metric unit (supported units can be found here: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
    MetricValue string
    The CloudWatch metric value.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch metric.
    MetricTimestamp string
    An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
    metricName String
    The CloudWatch metric name.
    metricNamespace String
    The CloudWatch metric namespace name.
    metricUnit String
    The metric unit (supported units can be found here: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
    metricValue String
    The CloudWatch metric value.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch metric.
    metricTimestamp String
    An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
    metricName string
    The CloudWatch metric name.
    metricNamespace string
    The CloudWatch metric namespace name.
    metricUnit string
    The metric unit (supported units can be found here: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
    metricValue string
    The CloudWatch metric value.
    roleArn string
    The IAM role ARN that allows access to the CloudWatch metric.
    metricTimestamp string
    An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
    metric_name str
    The CloudWatch metric name.
    metric_namespace str
    The CloudWatch metric namespace name.
    metric_unit str
    The metric unit (supported units can be found here: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
    metric_value str
    The CloudWatch metric value.
    role_arn str
    The IAM role ARN that allows access to the CloudWatch metric.
    metric_timestamp str
    An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
    metricName String
    The CloudWatch metric name.
    metricNamespace String
    The CloudWatch metric namespace name.
    metricUnit String
    The metric unit (supported units can be found here: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
    metricValue String
    The CloudWatch metric value.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch metric.
    metricTimestamp String
    An optional Unix timestamp (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).

    TopicRuleErrorActionDynamodb, TopicRuleErrorActionDynamodbArgs

    HashKeyField string
    The hash key name.
    HashKeyValue string
    The hash key value.
    RoleArn string
    The ARN of the IAM role that grants access to the DynamoDB table.
    TableName string
    The name of the DynamoDB table.
    HashKeyType string
    The hash key type. Valid values are "STRING" or "NUMBER".
    Operation string
    The operation. Valid values are "INSERT", "UPDATE", or "DELETE".
    PayloadField string
    The action payload.
    RangeKeyField string
    The range key name.
    RangeKeyType string
    The range key type. Valid values are "STRING" or "NUMBER".
    RangeKeyValue string
    The range key value.
    HashKeyField string
    The hash key name.
    HashKeyValue string
    The hash key value.
    RoleArn string
    The ARN of the IAM role that grants access to the DynamoDB table.
    TableName string
    The name of the DynamoDB table.
    HashKeyType string
    The hash key type. Valid values are "STRING" or "NUMBER".
    Operation string
    The operation. Valid values are "INSERT", "UPDATE", or "DELETE".
    PayloadField string
    The action payload.
    RangeKeyField string
    The range key name.
    RangeKeyType string
    The range key type. Valid values are "STRING" or "NUMBER".
    RangeKeyValue string
    The range key value.
    hashKeyField String
    The hash key name.
    hashKeyValue String
    The hash key value.
    roleArn String
    The ARN of the IAM role that grants access to the DynamoDB table.
    tableName String
    The name of the DynamoDB table.
    hashKeyType String
    The hash key type. Valid values are "STRING" or "NUMBER".
    operation String
    The operation. Valid values are "INSERT", "UPDATE", or "DELETE".
    payloadField String
    The action payload.
    rangeKeyField String
    The range key name.
    rangeKeyType String
    The range key type. Valid values are "STRING" or "NUMBER".
    rangeKeyValue String
    The range key value.
    hashKeyField string
    The hash key name.
    hashKeyValue string
    The hash key value.
    roleArn string
    The ARN of the IAM role that grants access to the DynamoDB table.
    tableName string
    The name of the DynamoDB table.
    hashKeyType string
    The hash key type. Valid values are "STRING" or "NUMBER".
    operation string
    The operation. Valid values are "INSERT", "UPDATE", or "DELETE".
    payloadField string
    The action payload.
    rangeKeyField string
    The range key name.
    rangeKeyType string
    The range key type. Valid values are "STRING" or "NUMBER".
    rangeKeyValue string
    The range key value.
    hash_key_field str
    The hash key name.
    hash_key_value str
    The hash key value.
    role_arn str
    The ARN of the IAM role that grants access to the DynamoDB table.
    table_name str
    The name of the DynamoDB table.
    hash_key_type str
    The hash key type. Valid values are "STRING" or "NUMBER".
    operation str
    The operation. Valid values are "INSERT", "UPDATE", or "DELETE".
    payload_field str
    The action payload.
    range_key_field str
    The range key name.
    range_key_type str
    The range key type. Valid values are "STRING" or "NUMBER".
    range_key_value str
    The range key value.
    hashKeyField String
    The hash key name.
    hashKeyValue String
    The hash key value.
    roleArn String
    The ARN of the IAM role that grants access to the DynamoDB table.
    tableName String
    The name of the DynamoDB table.
    hashKeyType String
    The hash key type. Valid values are "STRING" or "NUMBER".
    operation String
    The operation. Valid values are "INSERT", "UPDATE", or "DELETE".
    payloadField String
    The action payload.
    rangeKeyField String
    The range key name.
    rangeKeyType String
    The range key type. Valid values are "STRING" or "NUMBER".
    rangeKeyValue String
    The range key value.

    TopicRuleErrorActionDynamodbv2, TopicRuleErrorActionDynamodbv2Args

    RoleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    PutItem TopicRuleErrorActionDynamodbv2PutItem
    Configuration block with DynamoDB Table to which the message will be written. Nested arguments below.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    PutItem TopicRuleErrorActionDynamodbv2PutItem
    Configuration block with DynamoDB Table to which the message will be written. Nested arguments below.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch alarm.
    putItem TopicRuleErrorActionDynamodbv2PutItem
    Configuration block with DynamoDB Table to which the message will be written. Nested arguments below.
    roleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    putItem TopicRuleErrorActionDynamodbv2PutItem
    Configuration block with DynamoDB Table to which the message will be written. Nested arguments below.
    role_arn str
    The IAM role ARN that allows access to the CloudWatch alarm.
    put_item TopicRuleErrorActionDynamodbv2PutItem
    Configuration block with DynamoDB Table to which the message will be written. Nested arguments below.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch alarm.
    putItem Property Map
    Configuration block with DynamoDB Table to which the message will be written. Nested arguments below.

    TopicRuleErrorActionDynamodbv2PutItem, TopicRuleErrorActionDynamodbv2PutItemArgs

    TableName string

    The name of the DynamoDB table.

    The dynamodbv2 object takes the following arguments:

    TableName string

    The name of the DynamoDB table.

    The dynamodbv2 object takes the following arguments:

    tableName String

    The name of the DynamoDB table.

    The dynamodbv2 object takes the following arguments:

    tableName string

    The name of the DynamoDB table.

    The dynamodbv2 object takes the following arguments:

    table_name str

    The name of the DynamoDB table.

    The dynamodbv2 object takes the following arguments:

    tableName String

    The name of the DynamoDB table.

    The dynamodbv2 object takes the following arguments:

    TopicRuleErrorActionElasticsearch, TopicRuleErrorActionElasticsearchArgs

    Endpoint string
    The endpoint of your Elasticsearch domain.
    Id string
    The unique identifier for the document you are storing.
    Index string
    The Elasticsearch index where you want to store your data.
    RoleArn string
    The IAM role ARN that has access to Elasticsearch.
    Type string
    The type of document you are storing.
    Endpoint string
    The endpoint of your Elasticsearch domain.
    Id string
    The unique identifier for the document you are storing.
    Index string
    The Elasticsearch index where you want to store your data.
    RoleArn string
    The IAM role ARN that has access to Elasticsearch.
    Type string
    The type of document you are storing.
    endpoint String
    The endpoint of your Elasticsearch domain.
    id String
    The unique identifier for the document you are storing.
    index String
    The Elasticsearch index where you want to store your data.
    roleArn String
    The IAM role ARN that has access to Elasticsearch.
    type String
    The type of document you are storing.
    endpoint string
    The endpoint of your Elasticsearch domain.
    id string
    The unique identifier for the document you are storing.
    index string
    The Elasticsearch index where you want to store your data.
    roleArn string
    The IAM role ARN that has access to Elasticsearch.
    type string
    The type of document you are storing.
    endpoint str
    The endpoint of your Elasticsearch domain.
    id str
    The unique identifier for the document you are storing.
    index str
    The Elasticsearch index where you want to store your data.
    role_arn str
    The IAM role ARN that has access to Elasticsearch.
    type str
    The type of document you are storing.
    endpoint String
    The endpoint of your Elasticsearch domain.
    id String
    The unique identifier for the document you are storing.
    index String
    The Elasticsearch index where you want to store your data.
    roleArn String
    The IAM role ARN that has access to Elasticsearch.
    type String
    The type of document you are storing.

    TopicRuleErrorActionFirehose, TopicRuleErrorActionFirehoseArgs

    DeliveryStreamName string
    The delivery stream name.
    RoleArn string
    The IAM role ARN that grants access to the Amazon Kinesis Firehose stream.
    BatchMode bool
    The payload that contains a JSON array of records will be sent to Kinesis Firehose via a batch call.
    Separator string
    A character separator that is used to separate records written to the Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma).
    DeliveryStreamName string
    The delivery stream name.
    RoleArn string
    The IAM role ARN that grants access to the Amazon Kinesis Firehose stream.
    BatchMode bool
    The payload that contains a JSON array of records will be sent to Kinesis Firehose via a batch call.
    Separator string
    A character separator that is used to separate records written to the Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma).
    deliveryStreamName String
    The delivery stream name.
    roleArn String
    The IAM role ARN that grants access to the Amazon Kinesis Firehose stream.
    batchMode Boolean
    The payload that contains a JSON array of records will be sent to Kinesis Firehose via a batch call.
    separator String
    A character separator that is used to separate records written to the Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma).
    deliveryStreamName string
    The delivery stream name.
    roleArn string
    The IAM role ARN that grants access to the Amazon Kinesis Firehose stream.
    batchMode boolean
    The payload that contains a JSON array of records will be sent to Kinesis Firehose via a batch call.
    separator string
    A character separator that is used to separate records written to the Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma).
    delivery_stream_name str
    The delivery stream name.
    role_arn str
    The IAM role ARN that grants access to the Amazon Kinesis Firehose stream.
    batch_mode bool
    The payload that contains a JSON array of records will be sent to Kinesis Firehose via a batch call.
    separator str
    A character separator that is used to separate records written to the Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma).
    deliveryStreamName String
    The delivery stream name.
    roleArn String
    The IAM role ARN that grants access to the Amazon Kinesis Firehose stream.
    batchMode Boolean
    The payload that contains a JSON array of records will be sent to Kinesis Firehose via a batch call.
    separator String
    A character separator that is used to separate records written to the Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma).

    TopicRuleErrorActionHttp, TopicRuleErrorActionHttpArgs

    Url string
    The HTTPS URL.
    ConfirmationUrl string
    The HTTPS URL used to verify ownership of url.
    HttpHeaders List<TopicRuleErrorActionHttpHttpHeader>
    Custom HTTP header IoT Core should send. It is possible to define more than one custom header.
    Url string
    The HTTPS URL.
    ConfirmationUrl string
    The HTTPS URL used to verify ownership of url.
    HttpHeaders []TopicRuleErrorActionHttpHttpHeader
    Custom HTTP header IoT Core should send. It is possible to define more than one custom header.
    url String
    The HTTPS URL.
    confirmationUrl String
    The HTTPS URL used to verify ownership of url.
    httpHeaders List<TopicRuleErrorActionHttpHttpHeader>
    Custom HTTP header IoT Core should send. It is possible to define more than one custom header.
    url string
    The HTTPS URL.
    confirmationUrl string
    The HTTPS URL used to verify ownership of url.
    httpHeaders TopicRuleErrorActionHttpHttpHeader[]
    Custom HTTP header IoT Core should send. It is possible to define more than one custom header.
    url str
    The HTTPS URL.
    confirmation_url str
    The HTTPS URL used to verify ownership of url.
    http_headers Sequence[TopicRuleErrorActionHttpHttpHeader]
    Custom HTTP header IoT Core should send. It is possible to define more than one custom header.
    url String
    The HTTPS URL.
    confirmationUrl String
    The HTTPS URL used to verify ownership of url.
    httpHeaders List<Property Map>
    Custom HTTP header IoT Core should send. It is possible to define more than one custom header.

    TopicRuleErrorActionHttpHttpHeader, TopicRuleErrorActionHttpHttpHeaderArgs

    Key string
    The name of the HTTP header.
    Value string
    The value of the HTTP header.
    Key string
    The name of the HTTP header.
    Value string
    The value of the HTTP header.
    key String
    The name of the HTTP header.
    value String
    The value of the HTTP header.
    key string
    The name of the HTTP header.
    value string
    The value of the HTTP header.
    key str
    The name of the HTTP header.
    value str
    The value of the HTTP header.
    key String
    The name of the HTTP header.
    value String
    The value of the HTTP header.

    TopicRuleErrorActionIotAnalytics, TopicRuleErrorActionIotAnalyticsArgs

    ChannelName string
    Name of AWS IOT Analytics channel.
    RoleArn string
    The ARN of the IAM role that grants access.
    BatchMode bool
    The payload that contains a JSON array of records will be sent to IoT Analytics via a batch call.
    ChannelName string
    Name of AWS IOT Analytics channel.
    RoleArn string
    The ARN of the IAM role that grants access.
    BatchMode bool
    The payload that contains a JSON array of records will be sent to IoT Analytics via a batch call.
    channelName String
    Name of AWS IOT Analytics channel.
    roleArn String
    The ARN of the IAM role that grants access.
    batchMode Boolean
    The payload that contains a JSON array of records will be sent to IoT Analytics via a batch call.
    channelName string
    Name of AWS IOT Analytics channel.
    roleArn string
    The ARN of the IAM role that grants access.
    batchMode boolean
    The payload that contains a JSON array of records will be sent to IoT Analytics via a batch call.
    channel_name str
    Name of AWS IOT Analytics channel.
    role_arn str
    The ARN of the IAM role that grants access.
    batch_mode bool
    The payload that contains a JSON array of records will be sent to IoT Analytics via a batch call.
    channelName String
    Name of AWS IOT Analytics channel.
    roleArn String
    The ARN of the IAM role that grants access.
    batchMode Boolean
    The payload that contains a JSON array of records will be sent to IoT Analytics via a batch call.

    TopicRuleErrorActionIotEvents, TopicRuleErrorActionIotEventsArgs

    InputName string
    The name of the AWS IoT Events input.
    RoleArn string
    The ARN of the IAM role that grants access.
    BatchMode bool
    The payload that contains a JSON array of records will be sent to IoT Events via a batch call.
    MessageId string
    Use this to ensure that only one input (message) with a given messageId is processed by an AWS IoT Events detector.
    InputName string
    The name of the AWS IoT Events input.
    RoleArn string
    The ARN of the IAM role that grants access.
    BatchMode bool
    The payload that contains a JSON array of records will be sent to IoT Events via a batch call.
    MessageId string
    Use this to ensure that only one input (message) with a given messageId is processed by an AWS IoT Events detector.
    inputName String
    The name of the AWS IoT Events input.
    roleArn String
    The ARN of the IAM role that grants access.
    batchMode Boolean
    The payload that contains a JSON array of records will be sent to IoT Events via a batch call.
    messageId String
    Use this to ensure that only one input (message) with a given messageId is processed by an AWS IoT Events detector.
    inputName string
    The name of the AWS IoT Events input.
    roleArn string
    The ARN of the IAM role that grants access.
    batchMode boolean
    The payload that contains a JSON array of records will be sent to IoT Events via a batch call.
    messageId string
    Use this to ensure that only one input (message) with a given messageId is processed by an AWS IoT Events detector.
    input_name str
    The name of the AWS IoT Events input.
    role_arn str
    The ARN of the IAM role that grants access.
    batch_mode bool
    The payload that contains a JSON array of records will be sent to IoT Events via a batch call.
    message_id str
    Use this to ensure that only one input (message) with a given messageId is processed by an AWS IoT Events detector.
    inputName String
    The name of the AWS IoT Events input.
    roleArn String
    The ARN of the IAM role that grants access.
    batchMode Boolean
    The payload that contains a JSON array of records will be sent to IoT Events via a batch call.
    messageId String
    Use this to ensure that only one input (message) with a given messageId is processed by an AWS IoT Events detector.

    TopicRuleErrorActionKafka, TopicRuleErrorActionKafkaArgs

    ClientProperties Dictionary<string, string>
    Properties of the Apache Kafka producer client. For more info, see the AWS documentation.
    DestinationArn string
    The ARN of Kafka action's VPC aws.iot.TopicRuleDestination .
    Topic string
    The Kafka topic for messages to be sent to the Kafka broker.
    Key string
    The Kafka message key.
    Partition string
    The Kafka message partition.
    ClientProperties map[string]string
    Properties of the Apache Kafka producer client. For more info, see the AWS documentation.
    DestinationArn string
    The ARN of Kafka action's VPC aws.iot.TopicRuleDestination .
    Topic string
    The Kafka topic for messages to be sent to the Kafka broker.
    Key string
    The Kafka message key.
    Partition string
    The Kafka message partition.
    clientProperties Map<String,String>
    Properties of the Apache Kafka producer client. For more info, see the AWS documentation.
    destinationArn String
    The ARN of Kafka action's VPC aws.iot.TopicRuleDestination .
    topic String
    The Kafka topic for messages to be sent to the Kafka broker.
    key String
    The Kafka message key.
    partition String
    The Kafka message partition.
    clientProperties {[key: string]: string}
    Properties of the Apache Kafka producer client. For more info, see the AWS documentation.
    destinationArn string
    The ARN of Kafka action's VPC aws.iot.TopicRuleDestination .
    topic string
    The Kafka topic for messages to be sent to the Kafka broker.
    key string
    The Kafka message key.
    partition string
    The Kafka message partition.
    client_properties Mapping[str, str]
    Properties of the Apache Kafka producer client. For more info, see the AWS documentation.
    destination_arn str
    The ARN of Kafka action's VPC aws.iot.TopicRuleDestination .
    topic str
    The Kafka topic for messages to be sent to the Kafka broker.
    key str
    The Kafka message key.
    partition str
    The Kafka message partition.
    clientProperties Map<String>
    Properties of the Apache Kafka producer client. For more info, see the AWS documentation.
    destinationArn String
    The ARN of Kafka action's VPC aws.iot.TopicRuleDestination .
    topic String
    The Kafka topic for messages to be sent to the Kafka broker.
    key String
    The Kafka message key.
    partition String
    The Kafka message partition.

    TopicRuleErrorActionKinesis, TopicRuleErrorActionKinesisArgs

    RoleArn string
    The ARN of the IAM role that grants access to the Amazon Kinesis stream.
    StreamName string
    The name of the Amazon Kinesis stream.
    PartitionKey string
    The partition key.
    RoleArn string
    The ARN of the IAM role that grants access to the Amazon Kinesis stream.
    StreamName string
    The name of the Amazon Kinesis stream.
    PartitionKey string
    The partition key.
    roleArn String
    The ARN of the IAM role that grants access to the Amazon Kinesis stream.
    streamName String
    The name of the Amazon Kinesis stream.
    partitionKey String
    The partition key.
    roleArn string
    The ARN of the IAM role that grants access to the Amazon Kinesis stream.
    streamName string
    The name of the Amazon Kinesis stream.
    partitionKey string
    The partition key.
    role_arn str
    The ARN of the IAM role that grants access to the Amazon Kinesis stream.
    stream_name str
    The name of the Amazon Kinesis stream.
    partition_key str
    The partition key.
    roleArn String
    The ARN of the IAM role that grants access to the Amazon Kinesis stream.
    streamName String
    The name of the Amazon Kinesis stream.
    partitionKey String
    The partition key.

    TopicRuleErrorActionLambda, TopicRuleErrorActionLambdaArgs

    FunctionArn string
    The ARN of the Lambda function.
    FunctionArn string
    The ARN of the Lambda function.
    functionArn String
    The ARN of the Lambda function.
    functionArn string
    The ARN of the Lambda function.
    function_arn str
    The ARN of the Lambda function.
    functionArn String
    The ARN of the Lambda function.

    TopicRuleErrorActionRepublish, TopicRuleErrorActionRepublishArgs

    RoleArn string
    The ARN of the IAM role that grants access.
    Topic string
    The name of the MQTT topic the message should be republished to.
    Qos int

    The Quality of Service (QoS) level to use when republishing messages. Valid values are 0 or 1. The default value is 0.

    The s3 object takes the following arguments:

    RoleArn string
    The ARN of the IAM role that grants access.
    Topic string
    The name of the MQTT topic the message should be republished to.
    Qos int

    The Quality of Service (QoS) level to use when republishing messages. Valid values are 0 or 1. The default value is 0.

    The s3 object takes the following arguments:

    roleArn String
    The ARN of the IAM role that grants access.
    topic String
    The name of the MQTT topic the message should be republished to.
    qos Integer

    The Quality of Service (QoS) level to use when republishing messages. Valid values are 0 or 1. The default value is 0.

    The s3 object takes the following arguments:

    roleArn string
    The ARN of the IAM role that grants access.
    topic string
    The name of the MQTT topic the message should be republished to.
    qos number

    The Quality of Service (QoS) level to use when republishing messages. Valid values are 0 or 1. The default value is 0.

    The s3 object takes the following arguments:

    role_arn str
    The ARN of the IAM role that grants access.
    topic str
    The name of the MQTT topic the message should be republished to.
    qos int

    The Quality of Service (QoS) level to use when republishing messages. Valid values are 0 or 1. The default value is 0.

    The s3 object takes the following arguments:

    roleArn String
    The ARN of the IAM role that grants access.
    topic String
    The name of the MQTT topic the message should be republished to.
    qos Number

    The Quality of Service (QoS) level to use when republishing messages. Valid values are 0 or 1. The default value is 0.

    The s3 object takes the following arguments:

    TopicRuleErrorActionS3, TopicRuleErrorActionS3Args

    BucketName string
    The Amazon S3 bucket name.
    Key string
    The name of the HTTP header.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    CannedAcl string
    The Amazon S3 canned ACL that controls access to the object identified by the object key. Valid values.
    BucketName string
    The Amazon S3 bucket name.
    Key string
    The name of the HTTP header.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    CannedAcl string
    The Amazon S3 canned ACL that controls access to the object identified by the object key. Valid values.
    bucketName String
    The Amazon S3 bucket name.
    key String
    The name of the HTTP header.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch alarm.
    cannedAcl String
    The Amazon S3 canned ACL that controls access to the object identified by the object key. Valid values.
    bucketName string
    The Amazon S3 bucket name.
    key string
    The name of the HTTP header.
    roleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    cannedAcl string
    The Amazon S3 canned ACL that controls access to the object identified by the object key. Valid values.
    bucket_name str
    The Amazon S3 bucket name.
    key str
    The name of the HTTP header.
    role_arn str
    The IAM role ARN that allows access to the CloudWatch alarm.
    canned_acl str
    The Amazon S3 canned ACL that controls access to the object identified by the object key. Valid values.
    bucketName String
    The Amazon S3 bucket name.
    key String
    The name of the HTTP header.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch alarm.
    cannedAcl String
    The Amazon S3 canned ACL that controls access to the object identified by the object key. Valid values.

    TopicRuleErrorActionSns, TopicRuleErrorActionSnsArgs

    RoleArn string
    The ARN of the IAM role that grants access.
    TargetArn string
    The ARN of the SNS topic.
    MessageFormat string
    The message format of the message to publish. Accepted values are "JSON" and "RAW".
    RoleArn string
    The ARN of the IAM role that grants access.
    TargetArn string
    The ARN of the SNS topic.
    MessageFormat string
    The message format of the message to publish. Accepted values are "JSON" and "RAW".
    roleArn String
    The ARN of the IAM role that grants access.
    targetArn String
    The ARN of the SNS topic.
    messageFormat String
    The message format of the message to publish. Accepted values are "JSON" and "RAW".
    roleArn string
    The ARN of the IAM role that grants access.
    targetArn string
    The ARN of the SNS topic.
    messageFormat string
    The message format of the message to publish. Accepted values are "JSON" and "RAW".
    role_arn str
    The ARN of the IAM role that grants access.
    target_arn str
    The ARN of the SNS topic.
    message_format str
    The message format of the message to publish. Accepted values are "JSON" and "RAW".
    roleArn String
    The ARN of the IAM role that grants access.
    targetArn String
    The ARN of the SNS topic.
    messageFormat String
    The message format of the message to publish. Accepted values are "JSON" and "RAW".

    TopicRuleErrorActionSqs, TopicRuleErrorActionSqsArgs

    QueueUrl string
    The URL of the Amazon SQS queue.
    RoleArn string
    The ARN of the IAM role that grants access.
    UseBase64 bool
    Specifies whether to use Base64 encoding.
    QueueUrl string
    The URL of the Amazon SQS queue.
    RoleArn string
    The ARN of the IAM role that grants access.
    UseBase64 bool
    Specifies whether to use Base64 encoding.
    queueUrl String
    The URL of the Amazon SQS queue.
    roleArn String
    The ARN of the IAM role that grants access.
    useBase64 Boolean
    Specifies whether to use Base64 encoding.
    queueUrl string
    The URL of the Amazon SQS queue.
    roleArn string
    The ARN of the IAM role that grants access.
    useBase64 boolean
    Specifies whether to use Base64 encoding.
    queue_url str
    The URL of the Amazon SQS queue.
    role_arn str
    The ARN of the IAM role that grants access.
    use_base64 bool
    Specifies whether to use Base64 encoding.
    queueUrl String
    The URL of the Amazon SQS queue.
    roleArn String
    The ARN of the IAM role that grants access.
    useBase64 Boolean
    Specifies whether to use Base64 encoding.

    TopicRuleErrorActionStepFunctions, TopicRuleErrorActionStepFunctionsArgs

    RoleArn string
    The ARN of the IAM role that grants access to start execution of the state machine.
    StateMachineName string
    The name of the Step Functions state machine whose execution will be started.
    ExecutionNamePrefix string
    The prefix used to generate, along with a UUID, the unique state machine execution name.
    RoleArn string
    The ARN of the IAM role that grants access to start execution of the state machine.
    StateMachineName string
    The name of the Step Functions state machine whose execution will be started.
    ExecutionNamePrefix string
    The prefix used to generate, along with a UUID, the unique state machine execution name.
    roleArn String
    The ARN of the IAM role that grants access to start execution of the state machine.
    stateMachineName String
    The name of the Step Functions state machine whose execution will be started.
    executionNamePrefix String
    The prefix used to generate, along with a UUID, the unique state machine execution name.
    roleArn string
    The ARN of the IAM role that grants access to start execution of the state machine.
    stateMachineName string
    The name of the Step Functions state machine whose execution will be started.
    executionNamePrefix string
    The prefix used to generate, along with a UUID, the unique state machine execution name.
    role_arn str
    The ARN of the IAM role that grants access to start execution of the state machine.
    state_machine_name str
    The name of the Step Functions state machine whose execution will be started.
    execution_name_prefix str
    The prefix used to generate, along with a UUID, the unique state machine execution name.
    roleArn String
    The ARN of the IAM role that grants access to start execution of the state machine.
    stateMachineName String
    The name of the Step Functions state machine whose execution will be started.
    executionNamePrefix String
    The prefix used to generate, along with a UUID, the unique state machine execution name.

    TopicRuleErrorActionTimestream, TopicRuleErrorActionTimestreamArgs

    DatabaseName string
    The name of an Amazon Timestream database.
    Dimensions List<TopicRuleErrorActionTimestreamDimension>
    Configuration blocks with metadata attributes of the time series that are written in each measure record. Nested arguments below.
    RoleArn string
    The ARN of the role that grants permission to write to the Amazon Timestream database table.
    TableName string
    The name of the database table into which to write the measure records.
    Timestamp TopicRuleErrorActionTimestreamTimestamp
    Configuration block specifying an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column. Nested arguments below.
    DatabaseName string
    The name of an Amazon Timestream database.
    Dimensions []TopicRuleErrorActionTimestreamDimension
    Configuration blocks with metadata attributes of the time series that are written in each measure record. Nested arguments below.
    RoleArn string
    The ARN of the role that grants permission to write to the Amazon Timestream database table.
    TableName string
    The name of the database table into which to write the measure records.
    Timestamp TopicRuleErrorActionTimestreamTimestamp
    Configuration block specifying an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column. Nested arguments below.
    databaseName String
    The name of an Amazon Timestream database.
    dimensions List<TopicRuleErrorActionTimestreamDimension>
    Configuration blocks with metadata attributes of the time series that are written in each measure record. Nested arguments below.
    roleArn String
    The ARN of the role that grants permission to write to the Amazon Timestream database table.
    tableName String
    The name of the database table into which to write the measure records.
    timestamp TopicRuleErrorActionTimestreamTimestamp
    Configuration block specifying an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column. Nested arguments below.
    databaseName string
    The name of an Amazon Timestream database.
    dimensions TopicRuleErrorActionTimestreamDimension[]
    Configuration blocks with metadata attributes of the time series that are written in each measure record. Nested arguments below.
    roleArn string
    The ARN of the role that grants permission to write to the Amazon Timestream database table.
    tableName string
    The name of the database table into which to write the measure records.
    timestamp TopicRuleErrorActionTimestreamTimestamp
    Configuration block specifying an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column. Nested arguments below.
    database_name str
    The name of an Amazon Timestream database.
    dimensions Sequence[TopicRuleErrorActionTimestreamDimension]
    Configuration blocks with metadata attributes of the time series that are written in each measure record. Nested arguments below.
    role_arn str
    The ARN of the role that grants permission to write to the Amazon Timestream database table.
    table_name str
    The name of the database table into which to write the measure records.
    timestamp TopicRuleErrorActionTimestreamTimestamp
    Configuration block specifying an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column. Nested arguments below.
    databaseName String
    The name of an Amazon Timestream database.
    dimensions List<Property Map>
    Configuration blocks with metadata attributes of the time series that are written in each measure record. Nested arguments below.
    roleArn String
    The ARN of the role that grants permission to write to the Amazon Timestream database table.
    tableName String
    The name of the database table into which to write the measure records.
    timestamp Property Map
    Configuration block specifying an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column. Nested arguments below.

    TopicRuleErrorActionTimestreamDimension, TopicRuleErrorActionTimestreamDimensionArgs

    Name string
    The name of the rule.
    Value string
    The value of the HTTP header.
    Name string
    The name of the rule.
    Value string
    The value of the HTTP header.
    name String
    The name of the rule.
    value String
    The value of the HTTP header.
    name string
    The name of the rule.
    value string
    The value of the HTTP header.
    name str
    The name of the rule.
    value str
    The value of the HTTP header.
    name String
    The name of the rule.
    value String
    The value of the HTTP header.

    TopicRuleErrorActionTimestreamTimestamp, TopicRuleErrorActionTimestreamTimestampArgs

    Unit string
    The precision of the timestamp value that results from the expression described in value. Valid values: SECONDS, MILLISECONDS, MICROSECONDS, NANOSECONDS.
    Value string
    The value of the HTTP header.
    Unit string
    The precision of the timestamp value that results from the expression described in value. Valid values: SECONDS, MILLISECONDS, MICROSECONDS, NANOSECONDS.
    Value string
    The value of the HTTP header.
    unit String
    The precision of the timestamp value that results from the expression described in value. Valid values: SECONDS, MILLISECONDS, MICROSECONDS, NANOSECONDS.
    value String
    The value of the HTTP header.
    unit string
    The precision of the timestamp value that results from the expression described in value. Valid values: SECONDS, MILLISECONDS, MICROSECONDS, NANOSECONDS.
    value string
    The value of the HTTP header.
    unit str
    The precision of the timestamp value that results from the expression described in value. Valid values: SECONDS, MILLISECONDS, MICROSECONDS, NANOSECONDS.
    value str
    The value of the HTTP header.
    unit String
    The precision of the timestamp value that results from the expression described in value. Valid values: SECONDS, MILLISECONDS, MICROSECONDS, NANOSECONDS.
    value String
    The value of the HTTP header.

    TopicRuleFirehose, TopicRuleFirehoseArgs

    DeliveryStreamName string
    The delivery stream name.
    RoleArn string
    The IAM role ARN that grants access to the Amazon Kinesis Firehose stream.
    BatchMode bool
    The payload that contains a JSON array of records will be sent to Kinesis Firehose via a batch call.
    Separator string
    A character separator that is used to separate records written to the Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma).
    DeliveryStreamName string
    The delivery stream name.
    RoleArn string
    The IAM role ARN that grants access to the Amazon Kinesis Firehose stream.
    BatchMode bool
    The payload that contains a JSON array of records will be sent to Kinesis Firehose via a batch call.
    Separator string
    A character separator that is used to separate records written to the Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma).
    deliveryStreamName String
    The delivery stream name.
    roleArn String
    The IAM role ARN that grants access to the Amazon Kinesis Firehose stream.
    batchMode Boolean
    The payload that contains a JSON array of records will be sent to Kinesis Firehose via a batch call.
    separator String
    A character separator that is used to separate records written to the Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma).
    deliveryStreamName string
    The delivery stream name.
    roleArn string
    The IAM role ARN that grants access to the Amazon Kinesis Firehose stream.
    batchMode boolean
    The payload that contains a JSON array of records will be sent to Kinesis Firehose via a batch call.
    separator string
    A character separator that is used to separate records written to the Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma).
    delivery_stream_name str
    The delivery stream name.
    role_arn str
    The IAM role ARN that grants access to the Amazon Kinesis Firehose stream.
    batch_mode bool
    The payload that contains a JSON array of records will be sent to Kinesis Firehose via a batch call.
    separator str
    A character separator that is used to separate records written to the Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma).
    deliveryStreamName String
    The delivery stream name.
    roleArn String
    The IAM role ARN that grants access to the Amazon Kinesis Firehose stream.
    batchMode Boolean
    The payload that contains a JSON array of records will be sent to Kinesis Firehose via a batch call.
    separator String
    A character separator that is used to separate records written to the Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ',' (comma).

    TopicRuleHttp, TopicRuleHttpArgs

    Url string
    The HTTPS URL.
    ConfirmationUrl string
    The HTTPS URL used to verify ownership of url.
    HttpHeaders List<TopicRuleHttpHttpHeader>
    Custom HTTP header IoT Core should send. It is possible to define more than one custom header.
    Url string
    The HTTPS URL.
    ConfirmationUrl string
    The HTTPS URL used to verify ownership of url.
    HttpHeaders []TopicRuleHttpHttpHeader
    Custom HTTP header IoT Core should send. It is possible to define more than one custom header.
    url String
    The HTTPS URL.
    confirmationUrl String
    The HTTPS URL used to verify ownership of url.
    httpHeaders List<TopicRuleHttpHttpHeader>
    Custom HTTP header IoT Core should send. It is possible to define more than one custom header.
    url string
    The HTTPS URL.
    confirmationUrl string
    The HTTPS URL used to verify ownership of url.
    httpHeaders TopicRuleHttpHttpHeader[]
    Custom HTTP header IoT Core should send. It is possible to define more than one custom header.
    url str
    The HTTPS URL.
    confirmation_url str
    The HTTPS URL used to verify ownership of url.
    http_headers Sequence[TopicRuleHttpHttpHeader]
    Custom HTTP header IoT Core should send. It is possible to define more than one custom header.
    url String
    The HTTPS URL.
    confirmationUrl String
    The HTTPS URL used to verify ownership of url.
    httpHeaders List<Property Map>
    Custom HTTP header IoT Core should send. It is possible to define more than one custom header.

    TopicRuleHttpHttpHeader, TopicRuleHttpHttpHeaderArgs

    Key string
    The name of the HTTP header.
    Value string
    The value of the HTTP header.
    Key string
    The name of the HTTP header.
    Value string
    The value of the HTTP header.
    key String
    The name of the HTTP header.
    value String
    The value of the HTTP header.
    key string
    The name of the HTTP header.
    value string
    The value of the HTTP header.
    key str
    The name of the HTTP header.
    value str
    The value of the HTTP header.
    key String
    The name of the HTTP header.
    value String
    The value of the HTTP header.

    TopicRuleIotAnalytic, TopicRuleIotAnalyticArgs

    ChannelName string
    Name of AWS IOT Analytics channel.
    RoleArn string
    The ARN of the IAM role that grants access.
    BatchMode bool
    The payload that contains a JSON array of records will be sent to IoT Analytics via a batch call.
    ChannelName string
    Name of AWS IOT Analytics channel.
    RoleArn string
    The ARN of the IAM role that grants access.
    BatchMode bool
    The payload that contains a JSON array of records will be sent to IoT Analytics via a batch call.
    channelName String
    Name of AWS IOT Analytics channel.
    roleArn String
    The ARN of the IAM role that grants access.
    batchMode Boolean
    The payload that contains a JSON array of records will be sent to IoT Analytics via a batch call.
    channelName string
    Name of AWS IOT Analytics channel.
    roleArn string
    The ARN of the IAM role that grants access.
    batchMode boolean
    The payload that contains a JSON array of records will be sent to IoT Analytics via a batch call.
    channel_name str
    Name of AWS IOT Analytics channel.
    role_arn str
    The ARN of the IAM role that grants access.
    batch_mode bool
    The payload that contains a JSON array of records will be sent to IoT Analytics via a batch call.
    channelName String
    Name of AWS IOT Analytics channel.
    roleArn String
    The ARN of the IAM role that grants access.
    batchMode Boolean
    The payload that contains a JSON array of records will be sent to IoT Analytics via a batch call.

    TopicRuleIotEvent, TopicRuleIotEventArgs

    InputName string
    The name of the AWS IoT Events input.
    RoleArn string
    The ARN of the IAM role that grants access.
    BatchMode bool
    The payload that contains a JSON array of records will be sent to IoT Events via a batch call.
    MessageId string
    Use this to ensure that only one input (message) with a given messageId is processed by an AWS IoT Events detector.
    InputName string
    The name of the AWS IoT Events input.
    RoleArn string
    The ARN of the IAM role that grants access.
    BatchMode bool
    The payload that contains a JSON array of records will be sent to IoT Events via a batch call.
    MessageId string
    Use this to ensure that only one input (message) with a given messageId is processed by an AWS IoT Events detector.
    inputName String
    The name of the AWS IoT Events input.
    roleArn String
    The ARN of the IAM role that grants access.
    batchMode Boolean
    The payload that contains a JSON array of records will be sent to IoT Events via a batch call.
    messageId String
    Use this to ensure that only one input (message) with a given messageId is processed by an AWS IoT Events detector.
    inputName string
    The name of the AWS IoT Events input.
    roleArn string
    The ARN of the IAM role that grants access.
    batchMode boolean
    The payload that contains a JSON array of records will be sent to IoT Events via a batch call.
    messageId string
    Use this to ensure that only one input (message) with a given messageId is processed by an AWS IoT Events detector.
    input_name str
    The name of the AWS IoT Events input.
    role_arn str
    The ARN of the IAM role that grants access.
    batch_mode bool
    The payload that contains a JSON array of records will be sent to IoT Events via a batch call.
    message_id str
    Use this to ensure that only one input (message) with a given messageId is processed by an AWS IoT Events detector.
    inputName String
    The name of the AWS IoT Events input.
    roleArn String
    The ARN of the IAM role that grants access.
    batchMode Boolean
    The payload that contains a JSON array of records will be sent to IoT Events via a batch call.
    messageId String
    Use this to ensure that only one input (message) with a given messageId is processed by an AWS IoT Events detector.

    TopicRuleKafka, TopicRuleKafkaArgs

    ClientProperties Dictionary<string, string>
    Properties of the Apache Kafka producer client. For more info, see the AWS documentation.
    DestinationArn string
    The ARN of Kafka action's VPC aws.iot.TopicRuleDestination .
    Topic string
    The Kafka topic for messages to be sent to the Kafka broker.
    Key string
    The Kafka message key.
    Partition string
    The Kafka message partition.
    ClientProperties map[string]string
    Properties of the Apache Kafka producer client. For more info, see the AWS documentation.
    DestinationArn string
    The ARN of Kafka action's VPC aws.iot.TopicRuleDestination .
    Topic string
    The Kafka topic for messages to be sent to the Kafka broker.
    Key string
    The Kafka message key.
    Partition string
    The Kafka message partition.
    clientProperties Map<String,String>
    Properties of the Apache Kafka producer client. For more info, see the AWS documentation.
    destinationArn String
    The ARN of Kafka action's VPC aws.iot.TopicRuleDestination .
    topic String
    The Kafka topic for messages to be sent to the Kafka broker.
    key String
    The Kafka message key.
    partition String
    The Kafka message partition.
    clientProperties {[key: string]: string}
    Properties of the Apache Kafka producer client. For more info, see the AWS documentation.
    destinationArn string
    The ARN of Kafka action's VPC aws.iot.TopicRuleDestination .
    topic string
    The Kafka topic for messages to be sent to the Kafka broker.
    key string
    The Kafka message key.
    partition string
    The Kafka message partition.
    client_properties Mapping[str, str]
    Properties of the Apache Kafka producer client. For more info, see the AWS documentation.
    destination_arn str
    The ARN of Kafka action's VPC aws.iot.TopicRuleDestination .
    topic str
    The Kafka topic for messages to be sent to the Kafka broker.
    key str
    The Kafka message key.
    partition str
    The Kafka message partition.
    clientProperties Map<String>
    Properties of the Apache Kafka producer client. For more info, see the AWS documentation.
    destinationArn String
    The ARN of Kafka action's VPC aws.iot.TopicRuleDestination .
    topic String
    The Kafka topic for messages to be sent to the Kafka broker.
    key String
    The Kafka message key.
    partition String
    The Kafka message partition.

    TopicRuleKinesis, TopicRuleKinesisArgs

    RoleArn string
    The ARN of the IAM role that grants access to the Amazon Kinesis stream.
    StreamName string
    The name of the Amazon Kinesis stream.
    PartitionKey string
    The partition key.
    RoleArn string
    The ARN of the IAM role that grants access to the Amazon Kinesis stream.
    StreamName string
    The name of the Amazon Kinesis stream.
    PartitionKey string
    The partition key.
    roleArn String
    The ARN of the IAM role that grants access to the Amazon Kinesis stream.
    streamName String
    The name of the Amazon Kinesis stream.
    partitionKey String
    The partition key.
    roleArn string
    The ARN of the IAM role that grants access to the Amazon Kinesis stream.
    streamName string
    The name of the Amazon Kinesis stream.
    partitionKey string
    The partition key.
    role_arn str
    The ARN of the IAM role that grants access to the Amazon Kinesis stream.
    stream_name str
    The name of the Amazon Kinesis stream.
    partition_key str
    The partition key.
    roleArn String
    The ARN of the IAM role that grants access to the Amazon Kinesis stream.
    streamName String
    The name of the Amazon Kinesis stream.
    partitionKey String
    The partition key.

    TopicRuleLambda, TopicRuleLambdaArgs

    FunctionArn string
    The ARN of the Lambda function.
    FunctionArn string
    The ARN of the Lambda function.
    functionArn String
    The ARN of the Lambda function.
    functionArn string
    The ARN of the Lambda function.
    function_arn str
    The ARN of the Lambda function.
    functionArn String
    The ARN of the Lambda function.

    TopicRuleRepublish, TopicRuleRepublishArgs

    RoleArn string
    The ARN of the IAM role that grants access.
    Topic string
    The name of the MQTT topic the message should be republished to.
    Qos int

    The Quality of Service (QoS) level to use when republishing messages. Valid values are 0 or 1. The default value is 0.

    The s3 object takes the following arguments:

    RoleArn string
    The ARN of the IAM role that grants access.
    Topic string
    The name of the MQTT topic the message should be republished to.
    Qos int

    The Quality of Service (QoS) level to use when republishing messages. Valid values are 0 or 1. The default value is 0.

    The s3 object takes the following arguments:

    roleArn String
    The ARN of the IAM role that grants access.
    topic String
    The name of the MQTT topic the message should be republished to.
    qos Integer

    The Quality of Service (QoS) level to use when republishing messages. Valid values are 0 or 1. The default value is 0.

    The s3 object takes the following arguments:

    roleArn string
    The ARN of the IAM role that grants access.
    topic string
    The name of the MQTT topic the message should be republished to.
    qos number

    The Quality of Service (QoS) level to use when republishing messages. Valid values are 0 or 1. The default value is 0.

    The s3 object takes the following arguments:

    role_arn str
    The ARN of the IAM role that grants access.
    topic str
    The name of the MQTT topic the message should be republished to.
    qos int

    The Quality of Service (QoS) level to use when republishing messages. Valid values are 0 or 1. The default value is 0.

    The s3 object takes the following arguments:

    roleArn String
    The ARN of the IAM role that grants access.
    topic String
    The name of the MQTT topic the message should be republished to.
    qos Number

    The Quality of Service (QoS) level to use when republishing messages. Valid values are 0 or 1. The default value is 0.

    The s3 object takes the following arguments:

    TopicRuleS3, TopicRuleS3Args

    BucketName string
    The Amazon S3 bucket name.
    Key string
    The name of the HTTP header.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    CannedAcl string
    The Amazon S3 canned ACL that controls access to the object identified by the object key. Valid values.
    BucketName string
    The Amazon S3 bucket name.
    Key string
    The name of the HTTP header.
    RoleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    CannedAcl string
    The Amazon S3 canned ACL that controls access to the object identified by the object key. Valid values.
    bucketName String
    The Amazon S3 bucket name.
    key String
    The name of the HTTP header.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch alarm.
    cannedAcl String
    The Amazon S3 canned ACL that controls access to the object identified by the object key. Valid values.
    bucketName string
    The Amazon S3 bucket name.
    key string
    The name of the HTTP header.
    roleArn string
    The IAM role ARN that allows access to the CloudWatch alarm.
    cannedAcl string
    The Amazon S3 canned ACL that controls access to the object identified by the object key. Valid values.
    bucket_name str
    The Amazon S3 bucket name.
    key str
    The name of the HTTP header.
    role_arn str
    The IAM role ARN that allows access to the CloudWatch alarm.
    canned_acl str
    The Amazon S3 canned ACL that controls access to the object identified by the object key. Valid values.
    bucketName String
    The Amazon S3 bucket name.
    key String
    The name of the HTTP header.
    roleArn String
    The IAM role ARN that allows access to the CloudWatch alarm.
    cannedAcl String
    The Amazon S3 canned ACL that controls access to the object identified by the object key. Valid values.

    TopicRuleSns, TopicRuleSnsArgs

    RoleArn string
    The ARN of the IAM role that grants access.
    TargetArn string
    The ARN of the SNS topic.
    MessageFormat string
    The message format of the message to publish. Accepted values are "JSON" and "RAW".
    RoleArn string
    The ARN of the IAM role that grants access.
    TargetArn string
    The ARN of the SNS topic.
    MessageFormat string
    The message format of the message to publish. Accepted values are "JSON" and "RAW".
    roleArn String
    The ARN of the IAM role that grants access.
    targetArn String
    The ARN of the SNS topic.
    messageFormat String
    The message format of the message to publish. Accepted values are "JSON" and "RAW".
    roleArn string
    The ARN of the IAM role that grants access.
    targetArn string
    The ARN of the SNS topic.
    messageFormat string
    The message format of the message to publish. Accepted values are "JSON" and "RAW".
    role_arn str
    The ARN of the IAM role that grants access.
    target_arn str
    The ARN of the SNS topic.
    message_format str
    The message format of the message to publish. Accepted values are "JSON" and "RAW".
    roleArn String
    The ARN of the IAM role that grants access.
    targetArn String
    The ARN of the SNS topic.
    messageFormat String
    The message format of the message to publish. Accepted values are "JSON" and "RAW".

    TopicRuleSqs, TopicRuleSqsArgs

    QueueUrl string
    The URL of the Amazon SQS queue.
    RoleArn string
    The ARN of the IAM role that grants access.
    UseBase64 bool
    Specifies whether to use Base64 encoding.
    QueueUrl string
    The URL of the Amazon SQS queue.
    RoleArn string
    The ARN of the IAM role that grants access.
    UseBase64 bool
    Specifies whether to use Base64 encoding.
    queueUrl String
    The URL of the Amazon SQS queue.
    roleArn String
    The ARN of the IAM role that grants access.
    useBase64 Boolean
    Specifies whether to use Base64 encoding.
    queueUrl string
    The URL of the Amazon SQS queue.
    roleArn string
    The ARN of the IAM role that grants access.
    useBase64 boolean
    Specifies whether to use Base64 encoding.
    queue_url str
    The URL of the Amazon SQS queue.
    role_arn str
    The ARN of the IAM role that grants access.
    use_base64 bool
    Specifies whether to use Base64 encoding.
    queueUrl String
    The URL of the Amazon SQS queue.
    roleArn String
    The ARN of the IAM role that grants access.
    useBase64 Boolean
    Specifies whether to use Base64 encoding.

    TopicRuleStepFunction, TopicRuleStepFunctionArgs

    RoleArn string
    The ARN of the IAM role that grants access to start execution of the state machine.
    StateMachineName string
    The name of the Step Functions state machine whose execution will be started.
    ExecutionNamePrefix string
    The prefix used to generate, along with a UUID, the unique state machine execution name.
    RoleArn string
    The ARN of the IAM role that grants access to start execution of the state machine.
    StateMachineName string
    The name of the Step Functions state machine whose execution will be started.
    ExecutionNamePrefix string
    The prefix used to generate, along with a UUID, the unique state machine execution name.
    roleArn String
    The ARN of the IAM role that grants access to start execution of the state machine.
    stateMachineName String
    The name of the Step Functions state machine whose execution will be started.
    executionNamePrefix String
    The prefix used to generate, along with a UUID, the unique state machine execution name.
    roleArn string
    The ARN of the IAM role that grants access to start execution of the state machine.
    stateMachineName string
    The name of the Step Functions state machine whose execution will be started.
    executionNamePrefix string
    The prefix used to generate, along with a UUID, the unique state machine execution name.
    role_arn str
    The ARN of the IAM role that grants access to start execution of the state machine.
    state_machine_name str
    The name of the Step Functions state machine whose execution will be started.
    execution_name_prefix str
    The prefix used to generate, along with a UUID, the unique state machine execution name.
    roleArn String
    The ARN of the IAM role that grants access to start execution of the state machine.
    stateMachineName String
    The name of the Step Functions state machine whose execution will be started.
    executionNamePrefix String
    The prefix used to generate, along with a UUID, the unique state machine execution name.

    TopicRuleTimestream, TopicRuleTimestreamArgs

    DatabaseName string
    The name of an Amazon Timestream database.
    Dimensions List<TopicRuleTimestreamDimension>
    Configuration blocks with metadata attributes of the time series that are written in each measure record. Nested arguments below.
    RoleArn string
    The ARN of the role that grants permission to write to the Amazon Timestream database table.
    TableName string
    The name of the database table into which to write the measure records.
    Timestamp TopicRuleTimestreamTimestamp
    Configuration block specifying an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column. Nested arguments below.
    DatabaseName string
    The name of an Amazon Timestream database.
    Dimensions []TopicRuleTimestreamDimension
    Configuration blocks with metadata attributes of the time series that are written in each measure record. Nested arguments below.
    RoleArn string
    The ARN of the role that grants permission to write to the Amazon Timestream database table.
    TableName string
    The name of the database table into which to write the measure records.
    Timestamp TopicRuleTimestreamTimestamp
    Configuration block specifying an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column. Nested arguments below.
    databaseName String
    The name of an Amazon Timestream database.
    dimensions List<TopicRuleTimestreamDimension>
    Configuration blocks with metadata attributes of the time series that are written in each measure record. Nested arguments below.
    roleArn String
    The ARN of the role that grants permission to write to the Amazon Timestream database table.
    tableName String
    The name of the database table into which to write the measure records.
    timestamp TopicRuleTimestreamTimestamp
    Configuration block specifying an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column. Nested arguments below.
    databaseName string
    The name of an Amazon Timestream database.
    dimensions TopicRuleTimestreamDimension[]
    Configuration blocks with metadata attributes of the time series that are written in each measure record. Nested arguments below.
    roleArn string
    The ARN of the role that grants permission to write to the Amazon Timestream database table.
    tableName string
    The name of the database table into which to write the measure records.
    timestamp TopicRuleTimestreamTimestamp
    Configuration block specifying an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column. Nested arguments below.
    database_name str
    The name of an Amazon Timestream database.
    dimensions Sequence[TopicRuleTimestreamDimension]
    Configuration blocks with metadata attributes of the time series that are written in each measure record. Nested arguments below.
    role_arn str
    The ARN of the role that grants permission to write to the Amazon Timestream database table.
    table_name str
    The name of the database table into which to write the measure records.
    timestamp TopicRuleTimestreamTimestamp
    Configuration block specifying an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column. Nested arguments below.
    databaseName String
    The name of an Amazon Timestream database.
    dimensions List<Property Map>
    Configuration blocks with metadata attributes of the time series that are written in each measure record. Nested arguments below.
    roleArn String
    The ARN of the role that grants permission to write to the Amazon Timestream database table.
    tableName String
    The name of the database table into which to write the measure records.
    timestamp Property Map
    Configuration block specifying an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column. Nested arguments below.

    TopicRuleTimestreamDimension, TopicRuleTimestreamDimensionArgs

    Name string
    The name of the rule.
    Value string
    The value of the HTTP header.
    Name string
    The name of the rule.
    Value string
    The value of the HTTP header.
    name String
    The name of the rule.
    value String
    The value of the HTTP header.
    name string
    The name of the rule.
    value string
    The value of the HTTP header.
    name str
    The name of the rule.
    value str
    The value of the HTTP header.
    name String
    The name of the rule.
    value String
    The value of the HTTP header.

    TopicRuleTimestreamTimestamp, TopicRuleTimestreamTimestampArgs

    Unit string
    The precision of the timestamp value that results from the expression described in value. Valid values: SECONDS, MILLISECONDS, MICROSECONDS, NANOSECONDS.
    Value string
    The value of the HTTP header.
    Unit string
    The precision of the timestamp value that results from the expression described in value. Valid values: SECONDS, MILLISECONDS, MICROSECONDS, NANOSECONDS.
    Value string
    The value of the HTTP header.
    unit String
    The precision of the timestamp value that results from the expression described in value. Valid values: SECONDS, MILLISECONDS, MICROSECONDS, NANOSECONDS.
    value String
    The value of the HTTP header.
    unit string
    The precision of the timestamp value that results from the expression described in value. Valid values: SECONDS, MILLISECONDS, MICROSECONDS, NANOSECONDS.
    value string
    The value of the HTTP header.
    unit str
    The precision of the timestamp value that results from the expression described in value. Valid values: SECONDS, MILLISECONDS, MICROSECONDS, NANOSECONDS.
    value str
    The value of the HTTP header.
    unit String
    The precision of the timestamp value that results from the expression described in value. Valid values: SECONDS, MILLISECONDS, MICROSECONDS, NANOSECONDS.
    value String
    The value of the HTTP header.

    Package Details

    Repository
    AWS Classic pulumi/pulumi-aws
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the aws Terraform Provider.
    aws logo
    Viewing docs for AWS v5.43.0 (Older version)
    published on Tuesday, Mar 10, 2026 by Pulumi
      Try Pulumi Cloud free. Your team will thank you.