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

index.mddocs/

Pulumi AWS Java SDK

A comprehensive Java SDK for Infrastructure-as-Code on Amazon Web Services. This package provides strongly-typed Java APIs for creating and managing AWS cloud resources across 227 AWS service packages.

Package Information

  • Package Name: aws
  • Group ID: com.pulumi
  • Artifact ID: aws
  • Package Type: Maven
  • Language: Java
  • Java Version: 11+

Installation

Maven:

<dependency>
    <groupId>com.pulumi</groupId>
    <artifactId>aws</artifactId>
    <version>7.16.0</version>
</dependency>

Gradle:

implementation 'com.pulumi:aws:7.16.0'

Quick Start

Getting Started Guide - Complete guide for first-time setup and basic usage

Minimal Example

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.aws.s3.Bucket;
import com.pulumi.aws.s3.BucketArgs;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var bucket = new Bucket("my-bucket", BucketArgs.builder()
            .bucket("my-unique-bucket-name")
            .build());

        ctx.export("bucketName", bucket.bucket());
    }
}

Common Patterns

Common Patterns Guide - Quick reference for the most frequently used operations:

  • Create S3 bucket with versioning
  • Launch EC2 instance with security group
  • Deploy Lambda function
  • Create RDS database
  • Set up VPC with subnets
  • Configure IAM role with policies
  • Create DynamoDB table
  • Set up CloudWatch alarms
  • Deploy containerized application
  • Configure API Gateway

Architecture Overview

The Pulumi AWS Java SDK follows a consistent, auto-generated architecture:

Core Components

  • Provider: Configures AWS authentication, region, and provider-level settings
  • Resources: AWS cloud resources extending CustomResource
  • Resource Arguments: Builder-pattern configuration objects
  • Data Sources: Static functions to query existing AWS resources
  • Outputs: Pulumi Output<T> type for asynchronous resource properties

Package Organization

com.pulumi.aws/
├── Provider.java              // AWS provider resource
├── ProviderArgs.java         // Provider configuration
├── Config.java               // Configuration accessor
├── AwsFunctions.java         // Global data source functions
├── s3/                       // S3 service
├── ec2/                      // EC2 service (211 files)
├── lambda/                   // Lambda service
└── ... (227 service packages total)

Each service module follows this pattern:

  • <Resource>.java: Resource class
  • <Resource>Args.java: Resource arguments with builder pattern
  • <Service>Functions.java: Data source functions
  • inputs/: Nested input types
  • outputs/: Nested output types
  • enums/: Enumeration types

Configuration

Provider Configuration - Complete AWS provider configuration reference

Basic Provider Setup

import com.pulumi.aws.Provider;
import com.pulumi.aws.ProviderArgs;

var awsProvider = new Provider("aws", ProviderArgs.builder()
    .region("us-west-2")
    .profile("my-profile")
    .build());

Core Types Reference

Core Types - Detailed reference for core Pulumi types

Output<T>

Pulumi's core type for asynchronous values:

public class Output<T> {
    public <U> Output<U> apply(Function<T, U> func);
    public static <T> Output<T> of(T value);
    public static <T> Output<List<T>> all(List<Output<T>> outputs);
}

Builder Pattern

All resource arguments use the builder pattern:

var resource = new ResourceType("name", ResourceTypeArgs.builder()
    .property1(value1)
    .property2(value2)
    .build());

Resource Options

import com.pulumi.resources.CustomResourceOptions;

var resource = new ResourceType("name", args, CustomResourceOptions.builder()
    .dependsOn(otherResource)
    .protect(true)
    .provider(customProvider)
    .build());

Quick Reference

Quick Reference Table - Fast lookup of common resources and operations

TaskResourcePackage
Create S3 bucketBucketcom.pulumi.aws.s3
Launch EC2 instanceInstancecom.pulumi.aws.ec2
Deploy Lambda functionFunctioncom.pulumi.aws.lambda
Create DynamoDB tableTablecom.pulumi.aws.dynamodb
Set up IAM roleRolecom.pulumi.aws.iam
Create RDS databaseInstancecom.pulumi.aws.rds
Create VPCVpccom.pulumi.aws.ec2
Create security groupSecurityGroupcom.pulumi.aws.ec2
Create CloudWatch alarmMetricAlarmcom.pulumi.aws.cloudwatch
Create SNS topicTopiccom.pulumi.aws.sns

Task-Oriented Guides

Practical guides for common infrastructure patterns:

Service Categories

Compute Services

Compute Services Documentation

  • EC2 - Virtual servers, AMIs, security groups, networking
  • Lambda - Serverless functions, layers, event sources
  • ECS - Container orchestration with Docker
  • EKS - Managed Kubernetes clusters
  • Batch - Batch computing workloads
  • Elastic Beanstalk - PaaS application deployment
  • App Runner - Containerized web applications
  • Lightsail - Simplified virtual servers

Storage Services

Storage Services Documentation

  • S3 - Object storage with buckets, lifecycle policies, versioning
  • EBS - Block storage volumes for EC2
  • EFS - Elastic file system with NFS access
  • FSx - Managed file systems (Windows, Lustre, NetApp ONTAP)
  • Glacier - Long-term archival storage
  • Storage Gateway - Hybrid cloud storage

Database Services

Database Services Documentation

  • RDS - Managed relational databases (MySQL, PostgreSQL, Oracle, SQL Server, MariaDB)
  • DynamoDB - NoSQL key-value and document database
  • Aurora - High-performance relational database
  • ElastiCache - In-memory caching (Redis, Memcached)
  • DocumentDB - MongoDB-compatible document database
  • Neptune - Graph database
  • QLDB - Quantum ledger database
  • Timestream - Time-series database
  • MemoryDB - Redis-compatible in-memory database

Networking Services

Networking Services Documentation

Security & Identity

Security Services Documentation

  • IAM - Users, roles, policies, permissions
  • Cognito - User authentication and identity pools
  • KMS - Key management and encryption
  • Secrets Manager - Secrets storage and rotation
  • ACM - SSL/TLS certificates
  • WAF - Web application firewall
  • GuardDuty - Threat detection
  • Security Hub - Security posture management

Machine Learning & AI

ML & AI Services Documentation

  • SageMaker - Complete ML platform
  • Bedrock - Foundation models and generative AI
  • Rekognition - Image and video analysis
  • Comprehend - Natural language processing
  • Transcribe - Speech-to-text
  • Polly - Text-to-speech
  • Kendra - Intelligent search
  • Forecast - Time-series forecasting

Analytics & Data

Analytics Services Documentation

  • Athena - Serverless SQL query service
  • EMR - Big data processing with Hadoop/Spark
  • Glue - ETL and data catalog
  • Kinesis - Real-time data streaming
  • Redshift - Data warehousing
  • QuickSight - Business intelligence and visualization
  • Lake Formation - Data lake management

Application Integration

Integration Services Documentation

  • SNS - Pub/sub messaging
  • SQS - Message queuing
  • EventBridge - Event bus and routing
  • Step Functions - Workflow orchestration
  • AppSync - GraphQL APIs
  • MQ - Managed message brokers

Container Services

Container Services Documentation

  • ECS - Container orchestration
  • EKS - Managed Kubernetes
  • ECR - Container registry
  • App Runner - Container-based web apps
  • Fargate - Serverless containers

Developer Tools

Developer Tools Documentation

  • CodeCommit - Git repository hosting
  • CodeBuild - Build and test automation
  • CodeDeploy - Application deployment automation
  • CodePipeline - CI/CD pipeline orchestration
  • CodeArtifact - Artifact repository
  • X-Ray - Distributed tracing

Management & Governance

Management Services Documentation

  • CloudWatch - Monitoring, logs, metrics, alarms
  • CloudFormation - Infrastructure as code
  • Systems Manager - Operations management
  • CloudTrail - Audit logging and compliance
  • Config - Resource configuration tracking
  • Organizations - Account management

Additional Services

Additional Services Documentation

  • Media Services (MediaConvert, MediaLive, MediaPackage)
  • IoT Services (IoT Core, IoT Events, IoT Analytics)
  • Cost Management (Budgets, Cost Explorer)
  • Migration & Transfer (DMS)
  • Customer Engagement (Connect, SES)

Common Usage Patterns

Resource Creation Pattern

All AWS resources follow this consistent pattern:

var resource = new ResourceType("resourceName", ResourceTypeArgs.builder()
    .requiredProperty(value)
    .optionalProperty(value)
    .tags(Map.of("Key", "Value"))
    .build());

Working with Outputs

Resource properties are returned as Output<T>:

Output<String> bucketName = bucket.bucket();
Output<String> bucketArn = bucket.arn();

// Transform outputs
Output<String> upperName = bucketName.apply(String::toUpperCase);

// Export outputs
ctx.export("bucketName", bucketName);

Resource Dependencies

Pulumi automatically tracks dependencies through Output references:

var subnet = new Subnet("subnet", SubnetArgs.builder()
    .vpcId(vpc.id())  // Dependency on vpc
    .build());

var instance = new Instance("web", InstanceArgs.builder()
    .subnetId(subnet.id())  // Dependency on subnet
    .build());

Querying Existing Resources

Use data source functions to query existing AWS resources:

import com.pulumi.aws.ec2.Ec2Functions;
import com.pulumi.aws.ec2.inputs.GetAmiArgs;

var ami = Ec2Functions.getAmi(GetAmiArgs.builder()
    .mostRecent(true)
    .owners(List.of("amazon"))
    .filters(List.of(GetAmiFilterArgs.builder()
        .name("name")
        .values(List.of("amzn2-ami-hvm-*"))
        .build()))
    .build());

// Use in resource
var instance = new Instance("web", InstanceArgs.builder()
    .ami(ami.applyValue(result -> result.id()))
    .build());

Creating Multiple Resources

Create resources in loops:

for (int i = 0; i < 3; i++) {
    final int index = i;
    new Bucket("bucket-" + index, BucketArgs.builder()
        .bucket("my-bucket-" + index)
        .tags(Map.of("Index", String.valueOf(index)))
        .build());
}

Conditional Resource Creation

Use Java conditionals to control resource creation:

boolean enableLogging = config.requireBoolean("enableLogging");

if (enableLogging) {
    new BucketLogging("logging", BucketLoggingArgs.builder()
        .bucket(bucket.id())
        .targetBucket(logBucket.id())
        .build());
}

Documentation Coverage

This Knowledge Tile provides comprehensive documentation for AWS services organized by category. The Pulumi AWS SDK includes 227 service packages covering the complete AWS API surface. This documentation focuses on the core services that represent the majority of AWS infrastructure use cases.

Global Data Sources

AWS-level functions for querying account and region information:

import com.pulumi.aws.AwsFunctions;

// Get caller identity (account ID, user ARN)
var identity = AwsFunctions.getCallerIdentity();

// Get current region
var region = AwsFunctions.getRegion();

// List all regions
var regions = AwsFunctions.getRegions();

// Get AWS partition (aws, aws-cn, aws-us-gov)
var partition = AwsFunctions.getPartition();

// Get availability zones
var azs = AwsFunctions.getAvailabilityZones();

Additional Resources

Import Patterns

Core Framework Imports

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.resources.CustomResourceOptions;
import com.pulumi.core.Output;

Provider Imports

import com.pulumi.aws.Provider;
import com.pulumi.aws.ProviderArgs;
import com.pulumi.aws.Config;
import com.pulumi.aws.AwsFunctions;

Service-Specific Imports

// Import resource classes
import com.pulumi.aws.<service>.<Resource>;
import com.pulumi.aws.<service>.<Resource>Args;

// Import data source functions
import com.pulumi.aws.<service>.<Service>Functions;

// Import nested types
import com.pulumi.aws.<service>.inputs.*;
import com.pulumi.aws.<service>.outputs.*;
import com.pulumi.aws.<service>.enums.*;

Examples:

// S3
import com.pulumi.aws.s3.Bucket;
import com.pulumi.aws.s3.BucketArgs;
import com.pulumi.aws.s3.S3Functions;

// EC2
import com.pulumi.aws.ec2.Instance;
import com.pulumi.aws.ec2.InstanceArgs;
import com.pulumi.aws.ec2.Ec2Functions;

// Lambda
import com.pulumi.aws.lambda.Function;
import com.pulumi.aws.lambda.FunctionArgs;
import com.pulumi.aws.lambda.LambdaFunctions;