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.

analytics.mddocs/services/

AWS Analytics Services

This document covers Pulumi AWS Java SDK analytics services for data processing, analysis, and business intelligence.

Services Covered

  • Athena: Interactive SQL query service
  • EMR: Elastic MapReduce for big data processing (Cluster, InstanceGroup)
  • EMR Containers: Run Spark on EKS
  • EMR Serverless: Serverless Spark and Hive
  • Glue: ETL and data catalog (Database, Table, Crawler, Job)
  • Kinesis: Real-time data streaming (Stream, Analytics, Firehose)
  • Redshift: Data warehousing (Cluster, Serverless)
  • Redshift Data: Query data warehouse
  • QuickSight: Business intelligence and visualization
  • Data Pipeline: Data workflow orchestration
  • DataSync: Data transfer service
  • Lake Formation: Data lake management
  • DataZone: Data management and governance
  • Data Exchange: Data marketplace

Athena

Amazon Athena provides interactive SQL queries for S3 data.

Core Imports

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;

Database Resource

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

Workgroup Resource

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

EMR (Elastic MapReduce)

Amazon EMR provides managed Hadoop and Spark clusters.

Core Imports

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;

Cluster Resource

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

Glue

AWS Glue provides ETL and data catalog services.

Core Imports

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;

CatalogDatabase Resource

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

Job Resource

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

Kinesis

Amazon Kinesis provides real-time data streaming.

Core Imports

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;

Stream Resource

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

Redshift

Amazon Redshift provides data warehousing.

Core Imports

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;

Cluster Resource

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

QuickSight

Amazon QuickSight provides business intelligence and visualization.

Core Imports

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;

DataSource Resource

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

Lake Formation

AWS Lake Formation provides data lake management.

Core Imports

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;

Resource Resource

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

Usage Examples

Athena Workgroup

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

EMR Cluster

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

Glue Job

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

Kinesis Stream

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