docs
reference
services
tessl install tessl/maven-com-pulumi--aws@7.16.0Pulumi Java SDK for AWS providing strongly-typed Infrastructure-as-Code for 227 AWS service packages including compute, storage, databases, networking, security, analytics, machine learning, and more.
This document covers Pulumi AWS Java SDK integration services for event-driven architectures and application integration.
Amazon SNS provides pub/sub messaging.
import com.pulumi.aws.sns.Topic;
import com.pulumi.aws.sns.TopicArgs;
import com.pulumi.aws.sns.TopicSubscription;
import com.pulumi.aws.sns.TopicSubscriptionArgs;
import com.pulumi.aws.sns.TopicPolicy;
import com.pulumi.aws.sns.TopicPolicyArgs;@ResourceType(type="aws:sns/topic:Topic")
public class Topic extends com.pulumi.resources.CustomResource {
public Topic(String name, TopicArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<Optional<String>> displayName();
public Output<Optional<String>> fifoTopic();
public Output<Optional<String>> kmsMasterKeyId();
public Output<Optional<Map<String, String>>> tags();
}
public class TopicArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder name(Output<String> name);
public Builder displayName(Output<String> displayName);
public Builder fifoTopic(Output<Boolean> fifoTopic);
public Builder kmsMasterKeyId(Output<String> kmsMasterKeyId);
public Builder tags(Output<Map<String, String>> tags);
public TopicArgs build();
}
}@ResourceType(type="aws:sns/topicSubscription:TopicSubscription")
public class TopicSubscription extends com.pulumi.resources.CustomResource {
public TopicSubscription(String name, TopicSubscriptionArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> topic();
public Output<String> protocol();
public Output<String> endpoint();
public Output<Optional<String>> filterPolicy();
public Output<Optional<String>> rawMessageDelivery();
}
public class TopicSubscriptionArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder topic(Output<String> topic);
public Builder protocol(Output<String> protocol);
public Builder endpoint(Output<String> endpoint);
public Builder filterPolicy(Output<String> filterPolicy);
public Builder rawMessageDelivery(Output<Boolean> rawMessageDelivery);
public TopicSubscriptionArgs build();
}
}Amazon SQS provides message queuing.
import com.pulumi.aws.sqs.Queue;
import com.pulumi.aws.sqs.QueueArgs;
import com.pulumi.aws.sqs.QueuePolicy;
import com.pulumi.aws.sqs.QueuePolicyArgs;@ResourceType(type="aws:sqs/queue:Queue")
public class Queue extends com.pulumi.resources.CustomResource {
public Queue(String name, QueueArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<String> url();
public Output<Optional<Integer>> delaySeconds();
public Output<Optional<Boolean>> fifoQueue();
public Output<Optional<String>> kmsMasterKeyId();
public Output<Optional<Integer>> maxMessageSize();
public Output<Optional<Integer>> messageRetentionSeconds();
public Output<Optional<Integer>> visibilityTimeoutSeconds();
public Output<Optional<Map<String, String>>> tags();
}
public class QueueArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder name(Output<String> name);
public Builder delaySeconds(Output<Integer> delaySeconds);
public Builder fifoQueue(Output<Boolean> fifoQueue);
public Builder kmsMasterKeyId(Output<String> kmsMasterKeyId);
public Builder maxMessageSize(Output<Integer> maxMessageSize);
public Builder messageRetentionSeconds(Output<Integer> messageRetentionSeconds);
public Builder visibilityTimeoutSeconds(Output<Integer> visibilityTimeoutSeconds);
public Builder tags(Output<Map<String, String>> tags);
public QueueArgs build();
}
}Amazon EventBridge provides event-driven integration.
import com.pulumi.aws.cloudwatch.EventBus;
import com.pulumi.aws.cloudwatch.EventBusArgs;
import com.pulumi.aws.cloudwatch.EventRule;
import com.pulumi.aws.cloudwatch.EventRuleArgs;
import com.pulumi.aws.cloudwatch.EventTarget;
import com.pulumi.aws.cloudwatch.EventTargetArgs;
import com.pulumi.aws.scheduler.Schedule;
import com.pulumi.aws.scheduler.ScheduleArgs;
import com.pulumi.aws.scheduler.ScheduleGroup;
import com.pulumi.aws.scheduler.ScheduleGroupArgs;@ResourceType(type="aws:cloudwatch/eventRule:EventRule")
public class EventRule extends com.pulumi.resources.CustomResource {
public EventRule(String name, EventRuleArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<Optional<String>> description();
public Output<Optional<String>> eventBusName();
public Output<Optional<String>> eventPattern();
public Output<Optional<String>> scheduleExpression();
public Output<Optional<Map<String, String>>> tags();
}
public class EventRuleArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder name(Output<String> name);
public Builder description(Output<String> description);
public Builder eventBusName(Output<String> eventBusName);
public Builder eventPattern(Output<String> eventPattern);
public Builder scheduleExpression(Output<String> scheduleExpression);
public Builder tags(Output<Map<String, String>> tags);
public EventRuleArgs build();
}
}AWS Step Functions provides workflow orchestration.
import com.pulumi.aws.sfn.StateMachine;
import com.pulumi.aws.sfn.StateMachineArgs;
import com.pulumi.aws.sfn.Activity;
import com.pulumi.aws.sfn.ActivityArgs;@ResourceType(type="aws:sfn/stateMachine:StateMachine")
public class StateMachine extends com.pulumi.resources.CustomResource {
public StateMachine(String name, StateMachineArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<String> definition();
public Output<String> roleArn();
public Output<Optional<String>> type();
public Output<Optional<StateMachineLoggingConfiguration>> loggingConfiguration();
public Output<Optional<StateMachineTracingConfiguration>> tracingConfiguration();
public Output<Optional<Map<String, String>>> tags();
}
public class StateMachineArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder name(Output<String> name);
public Builder definition(Output<String> definition);
public Builder roleArn(Output<String> roleArn);
public Builder type(Output<String> type);
public Builder loggingConfiguration(Output<StateMachineLoggingConfigurationArgs> loggingConfiguration);
public Builder tracingConfiguration(Output<StateMachineTracingConfigurationArgs> tracingConfiguration);
public Builder tags(Output<Map<String, String>> tags);
public StateMachineArgs build();
}
}AWS AppSync provides GraphQL APIs.
import com.pulumi.aws.appsync.GraphQLApi;
import com.pulumi.aws.appsync.GraphQLApiArgs;
import com.pulumi.aws.appsync.DataSource;
import com.pulumi.aws.appsync.DataSourceArgs;
import com.pulumi.aws.appsync.Resolver;
import com.pulumi.aws.appsync.ResolverArgs;
import com.pulumi.aws.appsync.Function;
import com.pulumi.aws.appsync.FunctionArgs;@ResourceType(type="aws:appsync/graphQLApi:GraphQLApi")
public class GraphQLApi extends com.pulumi.resources.CustomResource {
public GraphQLApi(String name, GraphQLApiArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<String> authenticationType();
public Output<Optional<GraphQLApiAdditionalAuthenticationProvider>> additionalAuthenticationProviders();
public Output<Optional<GraphQLApiLogConfig>> logConfig();
public Output<Optional<String>> schema();
public Output<Optional<Map<String, String>>> tags();
}
public class GraphQLApiArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder name(Output<String> name);
public Builder authenticationType(Output<String> authenticationType);
public Builder additionalAuthenticationProviders(
Output<List<GraphQLApiAdditionalAuthenticationProviderArgs>> additionalAuthenticationProviders);
public Builder logConfig(Output<GraphQLApiLogConfigArgs> logConfig);
public Builder schema(Output<String> schema);
public Builder tags(Output<Map<String, String>> tags);
public GraphQLApiArgs build();
}
}import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.aws.sns.*;
import com.pulumi.aws.sqs.*;
import java.util.Map;
public class IntegrationExample {
public static void main(String[] args) {
Pulumi.run(IntegrationExample::stack);
}
public static void stack(Context ctx) {
// Create SNS Topic
var topic = new Topic("ordersTopic", TopicArgs.builder()
.name("orders-topic")
.displayName("Orders Notification Topic")
.tags(Map.of("Name", "orders-topic"))
.build());
// Create SQS Queue
var queue = new Queue("ordersQueue", QueueArgs.builder()
.name("orders-queue")
.messageRetentionSeconds(1209600)
.visibilityTimeoutSeconds(30)
.tags(Map.of("Name", "orders-queue"))
.build());
// Subscribe Queue to Topic
var subscription = new TopicSubscription("queueSubscription",
TopicSubscriptionArgs.builder()
.topic(topic.arn())
.protocol("sqs")
.endpoint(queue.arn())
.build());
ctx.export("topicArn", topic.arn());
ctx.export("queueUrl", queue.url());
}
}import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.aws.sfn.*;
import java.util.Map;
public class StepFunctionsExample {
public static void main(String[] args) {
Pulumi.run(StepFunctionsExample::stack);
}
public static void stack(Context ctx) {
var stateMachine = new StateMachine("orderWorkflow", StateMachineArgs.builder()
.name("order-processing-workflow")
.roleArn("arn:aws:iam::123456789012:role/StepFunctionsRole")
.type("STANDARD")
.definition("""
{
"Comment": "Order Processing Workflow",
"StartAt": "ValidateOrder",
"States": {
"ValidateOrder": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-west-2:123456789012:function:validate-order",
"Next": "ProcessPayment"
},
"ProcessPayment": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-west-2:123456789012:function:process-payment",
"End": true
}
}
}
""")
.loggingConfiguration(StateMachineLoggingConfigurationArgs.builder()
.level("ALL")
.includeExecutionData(true)
.logDestination("arn:aws:logs:us-west-2:123456789012:log-group:/aws/vendedlogs/states/orders:*")
.build())
.tags(Map.of("Name", "order-workflow"))
.build());
ctx.export("stateMachineArn", stateMachine.arn());
}
}