Ctrl + k

or run

tessl search
Log in

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/com.pulumi/aws@7.16.x

docs

common-patterns.mdgetting-started.mdindex.mdprovider.md
tile.json

tessl/maven-com-pulumi--aws

tessl install tessl/maven-com-pulumi--aws@7.16.0

Pulumi 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.

integration.mddocs/services/

AWS Integration Services

This document covers Pulumi AWS Java SDK integration services for event-driven architectures and application integration.

Services Covered

  • SNS: Simple Notification Service (Topic, TopicSubscription)
  • SQS: Simple Queue Service (Queue)
  • EventBridge: Event bus and rules (Rule, EventBus, Archive, Scheduler)
  • EventBridge Pipes: Point-to-point integrations
  • Step Functions: Workflow orchestration (StateMachine, Activity)
  • AppSync: GraphQL APIs (GraphQLApi, DataSource, Resolver)
  • API Gateway: REST and HTTP APIs
  • MQ: Amazon MQ message broker
  • MSK: Managed Streaming for Apache Kafka
  • MSK Connect: Kafka Connect
  • AppFlow: Data integration service
  • App Integrations: Application integration
  • Service Discovery: Cloud Map service discovery

SNS (Simple Notification Service)

Amazon SNS provides pub/sub messaging.

Core Imports

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;

Topic Resource

@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();
    }
}

TopicSubscription Resource

@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();
    }
}

SQS (Simple Queue Service)

Amazon SQS provides message queuing.

Core Imports

import com.pulumi.aws.sqs.Queue;
import com.pulumi.aws.sqs.QueueArgs;
import com.pulumi.aws.sqs.QueuePolicy;
import com.pulumi.aws.sqs.QueuePolicyArgs;

Queue Resource

@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();
    }
}

EventBridge

Amazon EventBridge provides event-driven integration.

Core Imports

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;

EventRule Resource

@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();
    }
}

Step Functions

AWS Step Functions provides workflow orchestration.

Core Imports

import com.pulumi.aws.sfn.StateMachine;
import com.pulumi.aws.sfn.StateMachineArgs;
import com.pulumi.aws.sfn.Activity;
import com.pulumi.aws.sfn.ActivityArgs;

StateMachine Resource

@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();
    }
}

AppSync

AWS AppSync provides GraphQL APIs.

Core Imports

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;

GraphQLApi Resource

@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();
    }
}

Usage Examples

SNS and SQS Integration

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());
    }
}

Step Functions Workflow

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());
    }
}