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.
Amazon Redshift provides data warehousing service.
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;@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> databaseName();
public Output<String> masterUsername();
public Output<String> nodeType();
public Output<Integer> numberOfNodes();
public Output<String> endpoint();
public Output<Integer> port();
}
public class ClusterArgs extends com.pulumi.resources.ResourceArgs {
public static Builder builder() { return new Builder(); }
public static final class Builder {
public Builder clusterIdentifier(Output<String> clusterIdentifier);
public Builder databaseName(Output<String> databaseName);
public Builder masterUsername(Output<String> masterUsername);
public Builder masterPassword(Output<String> masterPassword);
public Builder nodeType(Output<String> nodeType);
public Builder numberOfNodes(Output<Integer> numberOfNodes);
public Builder clusterType(Output<String> clusterType);
public Builder clusterSubnetGroupName(Output<String> clusterSubnetGroupName);
public Builder vpcSecurityGroupIds(Output<List<String>> vpcSecurityGroupIds);
public Builder encrypted(Output<Boolean> encrypted);
public Builder kmsKeyId(Output<String> kmsKeyId);
public Builder publiclyAccessible(Output<Boolean> publiclyAccessible);
public Builder tags(Output<Map<String, String>> tags);
public ClusterArgs build();
}
}import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.aws.redshift.*;
import java.util.Map;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
// Create subnet group
var subnetGroup = new SubnetGroup("redshift-subnet-group",
SubnetGroupArgs.builder()
.name("my-redshift-subnet-group")
.subnetIds(privateSubnetIds)
.build());
// Create Redshift cluster
var cluster = new Cluster("data-warehouse", ClusterArgs.builder()
.clusterIdentifier("my-data-warehouse")
.databaseName("analytics")
.masterUsername("admin")
.masterPassword(dbPassword)
.nodeType("ra3.xlplus")
.numberOfNodes(2)
.clusterType("multi-node")
.clusterSubnetGroupName(subnetGroup.name())
.vpcSecurityGroupIds(redshiftSecurityGroup.id().applyValue(List::of))
.encrypted(true)
.publiclyAccessible(false)
.tags(Map.of("Environment", "Production"))
.build());
ctx.export("redshiftEndpoint", cluster.endpoint());
}
}