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 analytics services for data processing, analysis, and business intelligence.
Amazon Athena provides interactive SQL queries for S3 data.
import com.pulumi.aws.athena.Database;
import com.pulumi.aws.athena.DatabaseArgs;
import com.pulumi.aws.athena.Workgroup;
import com.pulumi.aws.athena.WorkgroupArgs;
import com.pulumi.aws.athena.NamedQuery;
import com.pulumi.aws.athena.NamedQueryArgs;
import com.pulumi.aws.athena.DataCatalog;
import com.pulumi.aws.athena.DataCatalogArgs;@ResourceType(type="aws:athena/database:Database")
public class Database extends com.pulumi.resources.CustomResource {
public Database(String name, DatabaseArgs args);
public Output<String> id();
public Output<String> name();
public Output<String> bucket();
public Output<Optional<String>> comment();
public Output<Optional<DatabaseEncryptionConfiguration>> encryptionConfiguration();
}
public class DatabaseArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder name(Output<String> name);
public Builder bucket(Output<String> bucket);
public Builder comment(Output<String> comment);
public Builder encryptionConfiguration(Output<DatabaseEncryptionConfigurationArgs> encryptionConfiguration);
public DatabaseArgs build();
}
}@ResourceType(type="aws:athena/workgroup:Workgroup")
public class Workgroup extends com.pulumi.resources.CustomResource {
public Workgroup(String name, WorkgroupArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<Optional<WorkgroupConfiguration>> configuration();
public Output<Optional<String>> description();
public Output<Optional<String>> state();
public Output<Optional<Map<String, String>>> tags();
}
public class WorkgroupArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder name(Output<String> name);
public Builder configuration(Output<WorkgroupConfigurationArgs> configuration);
public Builder description(Output<String> description);
public Builder state(Output<String> state);
public Builder tags(Output<Map<String, String>> tags);
public WorkgroupArgs build();
}
}Amazon EMR provides managed Hadoop and Spark clusters.
import com.pulumi.aws.emr.Cluster;
import com.pulumi.aws.emr.ClusterArgs;
import com.pulumi.aws.emr.InstanceGroup;
import com.pulumi.aws.emr.InstanceGroupArgs;
import com.pulumi.aws.emr.InstanceFleet;
import com.pulumi.aws.emr.InstanceFleetArgs;
import com.pulumi.aws.emr.SecurityConfiguration;
import com.pulumi.aws.emr.SecurityConfigurationArgs;
import com.pulumi.aws.emr.ManagedScalingPolicy;
import com.pulumi.aws.emr.ManagedScalingPolicyArgs;@ResourceType(type="aws:emr/cluster:Cluster")
public class Cluster extends com.pulumi.resources.CustomResource {
public Cluster(String name, ClusterArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<String> releaseLabel();
public Output<String> serviceRole();
public Output<ClusterEc2Attributes> ec2Attributes();
public Output<Optional<List<String>>> applications();
public Output<Optional<List<ClusterBootstrapAction>>> bootstrapActions();
public Output<Optional<List<ClusterConfiguration>>> configurations();
public Output<Optional<ClusterCoreInstanceGroup>> coreInstanceGroup();
public Output<Optional<ClusterMasterInstanceGroup>> masterInstanceGroup();
public Output<Optional<String>> customAmiId();
public Output<Optional<String>> securityConfiguration();
public Output<Optional<Map<String, String>>> tags();
}
public class ClusterArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder name(Output<String> name);
public Builder releaseLabel(Output<String> releaseLabel);
public Builder serviceRole(Output<String> serviceRole);
public Builder ec2Attributes(Output<ClusterEc2AttributesArgs> ec2Attributes);
public Builder applications(Output<List<String>> applications);
public Builder bootstrapActions(Output<List<ClusterBootstrapActionArgs>> bootstrapActions);
public Builder configurations(Output<List<ClusterConfigurationArgs>> configurations);
public Builder coreInstanceGroup(Output<ClusterCoreInstanceGroupArgs> coreInstanceGroup);
public Builder masterInstanceGroup(Output<ClusterMasterInstanceGroupArgs> masterInstanceGroup);
public Builder securityConfiguration(Output<String> securityConfiguration);
public Builder tags(Output<Map<String, String>> tags);
public ClusterArgs build();
}
}AWS Glue provides ETL and data catalog services.
import com.pulumi.aws.glue.CatalogDatabase;
import com.pulumi.aws.glue.CatalogDatabaseArgs;
import com.pulumi.aws.glue.CatalogTable;
import com.pulumi.aws.glue.CatalogTableArgs;
import com.pulumi.aws.glue.Crawler;
import com.pulumi.aws.glue.CrawlerArgs;
import com.pulumi.aws.glue.Job;
import com.pulumi.aws.glue.JobArgs;
import com.pulumi.aws.glue.Trigger;
import com.pulumi.aws.glue.TriggerArgs;
import com.pulumi.aws.glue.Workflow;
import com.pulumi.aws.glue.WorkflowArgs;@ResourceType(type="aws:glue/catalogDatabase:CatalogDatabase")
public class CatalogDatabase extends com.pulumi.resources.CustomResource {
public CatalogDatabase(String name, CatalogDatabaseArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<Optional<String>> catalogId();
public Output<Optional<String>> description();
public Output<Optional<String>> locationUri();
public Output<Optional<Map<String, String>>> parameters();
}
public class CatalogDatabaseArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder name(Output<String> name);
public Builder catalogId(Output<String> catalogId);
public Builder description(Output<String> description);
public Builder locationUri(Output<String> locationUri);
public Builder parameters(Output<Map<String, String>> parameters);
public CatalogDatabaseArgs build();
}
}@ResourceType(type="aws:glue/job:Job")
public class Job extends com.pulumi.resources.CustomResource {
public Job(String name, JobArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<String> roleArn();
public Output<JobCommand> command();
public Output<Optional<Map<String, String>>> defaultArguments();
public Output<Optional<JobExecutionProperty>> executionProperty();
public Output<Optional<String>> glueVersion();
public Output<Optional<Integer>> maxRetries();
public Output<Optional<Integer>> timeout();
public Output<Optional<Map<String, String>>> tags();
}
public class JobArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder name(Output<String> name);
public Builder roleArn(Output<String> roleArn);
public Builder command(Output<JobCommandArgs> command);
public Builder defaultArguments(Output<Map<String, String>> defaultArguments);
public Builder glueVersion(Output<String> glueVersion);
public Builder maxRetries(Output<Integer> maxRetries);
public Builder timeout(Output<Integer> timeout);
public Builder tags(Output<Map<String, String>> tags);
public JobArgs build();
}
}Amazon Kinesis provides real-time data streaming.
import com.pulumi.aws.kinesis.Stream;
import com.pulumi.aws.kinesis.StreamArgs;
import com.pulumi.aws.kinesis.FirehoseDeliveryStream;
import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs;
import com.pulumi.aws.kinesis.AnalyticsApplication;
import com.pulumi.aws.kinesis.AnalyticsApplicationArgs;
import com.pulumi.aws.kinesisanalyticsv2.Application;
import com.pulumi.aws.kinesisanalyticsv2.ApplicationArgs;@ResourceType(type="aws:kinesis/stream:Stream")
public class Stream extends com.pulumi.resources.CustomResource {
public Stream(String name, StreamArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> name();
public Output<Optional<Integer>> shardCount();
public Output<Optional<Integer>> retentionPeriod();
public Output<Optional<String>> shardLevelMetrics();
public Output<Optional<String>> encryptionType();
public Output<Optional<String>> kmsKeyId();
public Output<Optional<StreamStreamModeDetails>> streamModeDetails();
public Output<Optional<Map<String, String>>> tags();
}
public class StreamArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder name(Output<String> name);
public Builder shardCount(Output<Integer> shardCount);
public Builder retentionPeriod(Output<Integer> retentionPeriod);
public Builder shardLevelMetrics(Output<List<String>> shardLevelMetrics);
public Builder encryptionType(Output<String> encryptionType);
public Builder kmsKeyId(Output<String> kmsKeyId);
public Builder streamModeDetails(Output<StreamStreamModeDetailsArgs> streamModeDetails);
public Builder tags(Output<Map<String, String>> tags);
public StreamArgs build();
}
}Amazon Redshift provides data warehousing.
import com.pulumi.aws.redshift.Cluster;
import com.pulumi.aws.redshift.ClusterArgs;
import com.pulumi.aws.redshift.SubnetGroup;
import com.pulumi.aws.redshift.SubnetGroupArgs;
import com.pulumi.aws.redshift.ParameterGroup;
import com.pulumi.aws.redshift.ParameterGroupArgs;
import com.pulumi.aws.redshiftserverless.Namespace;
import com.pulumi.aws.redshiftserverless.NamespaceArgs;
import com.pulumi.aws.redshiftserverless.Workgroup;
import com.pulumi.aws.redshiftserverless.WorkgroupArgs;@ResourceType(type="aws:redshift/cluster:Cluster")
public class Cluster extends com.pulumi.resources.CustomResource {
public Cluster(String name, ClusterArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> clusterIdentifier();
public Output<String> nodeType();
public Output<Integer> numberOfNodes();
public Output<String> databaseName();
public Output<String> masterUsername();
public Output<Optional<Boolean>> encrypted();
public Output<Optional<String>> kmsKeyId();
public Output<Optional<Boolean>> publiclyAccessible();
public Output<Optional<List<String>>> vpcSecurityGroupIds();
public Output<Optional<String>> clusterSubnetGroupName();
public Output<Optional<Map<String, String>>> tags();
}
public class ClusterArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder clusterIdentifier(Output<String> clusterIdentifier);
public Builder nodeType(Output<String> nodeType);
public Builder masterUsername(Output<String> masterUsername);
public Builder masterPassword(Output<String> masterPassword);
public Builder numberOfNodes(Output<Integer> numberOfNodes);
public Builder databaseName(Output<String> databaseName);
public Builder encrypted(Output<Boolean> encrypted);
public Builder kmsKeyId(Output<String> kmsKeyId);
public Builder publiclyAccessible(Output<Boolean> publiclyAccessible);
public Builder vpcSecurityGroupIds(Output<List<String>> vpcSecurityGroupIds);
public Builder clusterSubnetGroupName(Output<String> clusterSubnetGroupName);
public Builder tags(Output<Map<String, String>> tags);
public ClusterArgs build();
}
}Amazon QuickSight provides business intelligence and visualization.
import com.pulumi.aws.quicksight.DataSource;
import com.pulumi.aws.quicksight.DataSourceArgs;
import com.pulumi.aws.quicksight.DataSet;
import com.pulumi.aws.quicksight.DataSetArgs;
import com.pulumi.aws.quicksight.Analysis;
import com.pulumi.aws.quicksight.AnalysisArgs;
import com.pulumi.aws.quicksight.Dashboard;
import com.pulumi.aws.quicksight.DashboardArgs;@ResourceType(type="aws:quicksight/dataSource:DataSource")
public class DataSource extends com.pulumi.resources.CustomResource {
public DataSource(String name, DataSourceArgs args);
public Output<String> id();
public Output<String> arn();
public Output<String> dataSourceId();
public Output<String> name();
public Output<String> type();
public Output<DataSourceParameters> parameters();
public Output<Optional<String>> awsAccountId();
public Output<Optional<Map<String, String>>> tags();
}
public class DataSourceArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder dataSourceId(Output<String> dataSourceId);
public Builder name(Output<String> name);
public Builder type(Output<String> type);
public Builder parameters(Output<DataSourceParametersArgs> parameters);
public Builder awsAccountId(Output<String> awsAccountId);
public Builder tags(Output<Map<String, String>> tags);
public DataSourceArgs build();
}
}AWS Lake Formation provides data lake management.
import com.pulumi.aws.lakeformation.Resource;
import com.pulumi.aws.lakeformation.ResourceArgs;
import com.pulumi.aws.lakeformation.Permissions;
import com.pulumi.aws.lakeformation.PermissionsArgs;
import com.pulumi.aws.lakeformation.DataLakeSettings;
import com.pulumi.aws.lakeformation.DataLakeSettingsArgs;@ResourceType(type="aws:lakeformation/resource:Resource")
public class Resource extends com.pulumi.resources.CustomResource {
public Resource(String name, ResourceArgs args);
public Output<String> arn();
public Output<String> roleArn();
public Output<Optional<String>> hybridAccessEnabled();
public Output<Optional<Boolean>> useServiceLinkedRole();
}
public class ResourceArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder();
public static final class Builder {
public Builder arn(Output<String> arn);
public Builder roleArn(Output<String> roleArn);
public Builder hybridAccessEnabled(Output<Boolean> hybridAccessEnabled);
public Builder useServiceLinkedRole(Output<Boolean> useServiceLinkedRole);
public ResourceArgs build();
}
}import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.aws.athena.*;
import java.util.Map;
public class AthenaExample {
public static void main(String[] args) {
Pulumi.run(AthenaExample::stack);
}
public static void stack(Context ctx) {
var database = new Database("analyticsDb", DatabaseArgs.builder()
.name("analytics_database")
.bucket("s3://my-athena-results/")
.build());
var workgroup = new Workgroup("analyticsWg", WorkgroupArgs.builder()
.name("analytics-workgroup")
.configuration(WorkgroupConfigurationArgs.builder()
.resultConfiguration(WorkgroupConfigurationResultConfigurationArgs.builder()
.outputLocation("s3://my-athena-results/")
.encryptionConfiguration(WorkgroupConfigurationResultConfigurationEncryptionConfigurationArgs.builder()
.encryptionOption("SSE_S3")
.build())
.build())
.build())
.tags(Map.of("Name", "analytics-workgroup"))
.build());
ctx.export("databaseName", database.name());
ctx.export("workgroupName", workgroup.name());
}
}import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.aws.emr.*;
import java.util.List;
import java.util.Map;
public class EmrExample {
public static void main(String[] args) {
Pulumi.run(EmrExample::stack);
}
public static void stack(Context ctx) {
var cluster = new Cluster("sparkCluster", ClusterArgs.builder()
.name("spark-processing-cluster")
.releaseLabel("emr-6.10.0")
.applications(List.of("Spark", "Hadoop"))
.serviceRole("EMR_DefaultRole")
.ec2Attributes(ClusterEc2AttributesArgs.builder()
.instanceProfile("EMR_EC2_DefaultRole")
.subnetId("subnet-12345678")
.emrManagedMasterSecurityGroup("sg-master")
.emrManagedSlaveSecurityGroup("sg-slave")
.build())
.masterInstanceGroup(ClusterMasterInstanceGroupArgs.builder()
.instanceType("m5.xlarge")
.build())
.coreInstanceGroup(ClusterCoreInstanceGroupArgs.builder()
.instanceType("m5.xlarge")
.instanceCount(2)
.build())
.tags(Map.of("Name", "spark-cluster"))
.build());
ctx.export("clusterId", cluster.id());
}
}import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.aws.glue.*;
import java.util.Map;
public class GlueExample {
public static void main(String[] args) {
Pulumi.run(GlueExample::stack);
}
public static void stack(Context ctx) {
var database = new CatalogDatabase("etlDb", CatalogDatabaseArgs.builder()
.name("etl_database")
.description("ETL data catalog database")
.build());
var job = new Job("etlJob", JobArgs.builder()
.name("data-transformation-job")
.roleArn("arn:aws:iam::123456789012:role/GlueServiceRole")
.command(JobCommandArgs.builder()
.scriptLocation("s3://my-bucket/scripts/transform.py")
.pythonVersion("3")
.name("glueetl")
.build())
.defaultArguments(Map.of(
"--job-language", "python",
"--TempDir", "s3://my-bucket/temp/"
))
.glueVersion("4.0")
.maxRetries(1)
.timeout(60)
.tags(Map.of("Name", "etl-job"))
.build());
ctx.export("databaseName", database.name());
ctx.export("jobName", job.name());
}
}import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.aws.kinesis.*;
import java.util.Map;
public class KinesisExample {
public static void main(String[] args) {
Pulumi.run(KinesisExample::stack);
}
public static void stack(Context ctx) {
var stream = new Stream("dataStream", StreamArgs.builder()
.name("application-events")
.streamModeDetails(StreamStreamModeDetailsArgs.builder()
.streamMode("ON_DEMAND")
.build())
.retentionPeriod(24)
.encryptionType("KMS")
.kmsKeyId("alias/aws/kinesis")
.tags(Map.of("Name", "event-stream"))
.build());
ctx.export("streamName", stream.name());
ctx.export("streamArn", stream.arn());
}
}