Topic Rule Args
data class TopicRuleArgs(val cloudwatchAlarms: Output<List<TopicRuleCloudwatchAlarmArgs>>? = null, val cloudwatchLogs: Output<List<TopicRuleCloudwatchLogArgs>>? = null, val cloudwatchMetrics: Output<List<TopicRuleCloudwatchMetricArgs>>? = null, val description: Output<String>? = null, val dynamodbs: Output<List<TopicRuleDynamodbArgs>>? = null, val dynamodbv2s: Output<List<TopicRuleDynamodbv2Args>>? = null, val elasticsearch: Output<List<TopicRuleElasticsearchArgs>>? = null, val enabled: Output<Boolean>? = null, val errorAction: Output<TopicRuleErrorActionArgs>? = null, val firehoses: Output<List<TopicRuleFirehoseArgs>>? = null, val https: Output<List<TopicRuleHttpArgs>>? = null, val iotAnalytics: Output<List<TopicRuleIotAnalyticArgs>>? = null, val iotEvents: Output<List<TopicRuleIotEventArgs>>? = null, val kafkas: Output<List<TopicRuleKafkaArgs>>? = null, val kineses: Output<List<TopicRuleKinesisArgs>>? = null, val lambdas: Output<List<TopicRuleLambdaArgs>>? = null, val name: Output<String>? = null, val republishes: Output<List<TopicRuleRepublishArgs>>? = null, val s3: Output<List<TopicRuleS3Args>>? = null, val sns: Output<List<TopicRuleSnsArgs>>? = null, val sql: Output<String>? = null, val sqlVersion: Output<String>? = null, val sqs: Output<List<TopicRuleSqsArgs>>? = null, val stepFunctions: Output<List<TopicRuleStepFunctionArgs>>? = null, val tags: Output<Map<String, String>>? = null, val timestreams: Output<List<TopicRuleTimestreamArgs>>? = null) : ConvertibleToJava<TopicRuleArgs>
Example Usage
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());
}
}
Content copied to clipboard
Import
Using pulumi import
, import IoT Topic Rules using the name
. For example:
$ pulumi import aws:iot/topicRule:TopicRule rule <name>
Content copied to clipboard
Constructors
Link copied to clipboard
fun TopicRuleArgs(cloudwatchAlarms: Output<List<TopicRuleCloudwatchAlarmArgs>>? = null, cloudwatchLogs: Output<List<TopicRuleCloudwatchLogArgs>>? = null, cloudwatchMetrics: Output<List<TopicRuleCloudwatchMetricArgs>>? = null, description: Output<String>? = null, dynamodbs: Output<List<TopicRuleDynamodbArgs>>? = null, dynamodbv2s: Output<List<TopicRuleDynamodbv2Args>>? = null, elasticsearch: Output<List<TopicRuleElasticsearchArgs>>? = null, enabled: Output<Boolean>? = null, errorAction: Output<TopicRuleErrorActionArgs>? = null, firehoses: Output<List<TopicRuleFirehoseArgs>>? = null, https: Output<List<TopicRuleHttpArgs>>? = null, iotAnalytics: Output<List<TopicRuleIotAnalyticArgs>>? = null, iotEvents: Output<List<TopicRuleIotEventArgs>>? = null, kafkas: Output<List<TopicRuleKafkaArgs>>? = null, kineses: Output<List<TopicRuleKinesisArgs>>? = null, lambdas: Output<List<TopicRuleLambdaArgs>>? = null, name: Output<String>? = null, republishes: Output<List<TopicRuleRepublishArgs>>? = null, s3: Output<List<TopicRuleS3Args>>? = null, sns: Output<List<TopicRuleSnsArgs>>? = null, sql: Output<String>? = null, sqlVersion: Output<String>? = null, sqs: Output<List<TopicRuleSqsArgs>>? = null, stepFunctions: Output<List<TopicRuleStepFunctionArgs>>? = null, tags: Output<Map<String, String>>? = null, timestreams: Output<List<TopicRuleTimestreamArgs>>? = null)
Functions
Properties
Link copied to clipboard
Link copied to clipboard
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.