ClusterArgs

data class ClusterArgs(val allowVersionUpgrade: Output<Boolean>? = null, val applyImmediately: Output<Boolean>? = null, val aquaConfigurationStatus: Output<String>? = null, val automatedSnapshotRetentionPeriod: Output<Int>? = null, val availabilityZone: Output<String>? = null, val availabilityZoneRelocationEnabled: Output<Boolean>? = null, val clusterIdentifier: Output<String>? = null, val clusterParameterGroupName: Output<String>? = null, val clusterPublicKey: Output<String>? = null, val clusterRevisionNumber: Output<String>? = null, val clusterSecurityGroups: Output<List<String>>? = null, val clusterSubnetGroupName: Output<String>? = null, val clusterType: Output<String>? = null, val clusterVersion: Output<String>? = null, val databaseName: Output<String>? = null, val defaultIamRoleArn: Output<String>? = null, val elasticIp: Output<String>? = null, val encrypted: Output<Boolean>? = null, val endpoint: Output<String>? = null, val enhancedVpcRouting: Output<Boolean>? = null, val finalSnapshotIdentifier: Output<String>? = null, val iamRoles: Output<List<String>>? = null, val kmsKeyId: Output<String>? = null, val logging: Output<ClusterLoggingArgs>? = null, val maintenanceTrackName: Output<String>? = null, val manualSnapshotRetentionPeriod: Output<Int>? = null, val masterPassword: Output<String>? = null, val masterUsername: Output<String>? = null, val nodeType: Output<String>? = null, val numberOfNodes: Output<Int>? = null, val ownerAccount: Output<String>? = null, val port: Output<Int>? = null, val preferredMaintenanceWindow: Output<String>? = null, val publiclyAccessible: Output<Boolean>? = null, val skipFinalSnapshot: Output<Boolean>? = null, val snapshotClusterIdentifier: Output<String>? = null, val snapshotCopy: Output<ClusterSnapshotCopyArgs>? = null, val snapshotIdentifier: Output<String>? = null, val tags: Output<Map<String, String>>? = null, val vpcSecurityGroupIds: Output<List<String>>? = null) : ConvertibleToJava<ClusterArgs>

Provides a Redshift Cluster Resource.

NOTE: A Redshift cluster's default IAM role can be managed both by this resource's default_iam_role_arn argument and the aws.redshift.ClusterIamRoles resource's default_iam_role_arn argument. Do not configure different values for both arguments. Doing so will cause a conflict of default IAM roles.

Example Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.redshift.Cluster;
import com.pulumi.aws.redshift.ClusterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new Cluster("example", ClusterArgs.builder()
.clusterIdentifier("tf-redshift-cluster")
.clusterType("single-node")
.databaseName("mydb")
.masterPassword("Mustbe8characters")
.masterUsername("exampleuser")
.nodeType("dc1.large")
.build());
}
}

Import

Redshift Clusters can be imported using the cluster_identifier, e.g.,

$ pulumi import aws:redshift/cluster:Cluster myprodcluster tf-redshift-cluster-12345

Constructors

Link copied to clipboard
constructor(allowVersionUpgrade: Output<Boolean>? = null, applyImmediately: Output<Boolean>? = null, aquaConfigurationStatus: Output<String>? = null, automatedSnapshotRetentionPeriod: Output<Int>? = null, availabilityZone: Output<String>? = null, availabilityZoneRelocationEnabled: Output<Boolean>? = null, clusterIdentifier: Output<String>? = null, clusterParameterGroupName: Output<String>? = null, clusterPublicKey: Output<String>? = null, clusterRevisionNumber: Output<String>? = null, clusterSecurityGroups: Output<List<String>>? = null, clusterSubnetGroupName: Output<String>? = null, clusterType: Output<String>? = null, clusterVersion: Output<String>? = null, databaseName: Output<String>? = null, defaultIamRoleArn: Output<String>? = null, elasticIp: Output<String>? = null, encrypted: Output<Boolean>? = null, endpoint: Output<String>? = null, enhancedVpcRouting: Output<Boolean>? = null, finalSnapshotIdentifier: Output<String>? = null, iamRoles: Output<List<String>>? = null, kmsKeyId: Output<String>? = null, logging: Output<ClusterLoggingArgs>? = null, maintenanceTrackName: Output<String>? = null, manualSnapshotRetentionPeriod: Output<Int>? = null, masterPassword: Output<String>? = null, masterUsername: Output<String>? = null, nodeType: Output<String>? = null, numberOfNodes: Output<Int>? = null, ownerAccount: Output<String>? = null, port: Output<Int>? = null, preferredMaintenanceWindow: Output<String>? = null, publiclyAccessible: Output<Boolean>? = null, skipFinalSnapshot: Output<Boolean>? = null, snapshotClusterIdentifier: Output<String>? = null, snapshotCopy: Output<ClusterSnapshotCopyArgs>? = null, snapshotIdentifier: Output<String>? = null, tags: Output<Map<String, String>>? = null, vpcSecurityGroupIds: Output<List<String>>? = null)

Properties

Link copied to clipboard
val allowVersionUpgrade: Output<Boolean>? = null

If true , major version upgrades can be applied during the maintenance window to the Amazon Redshift engine that is running on the cluster. Default is true.

Link copied to clipboard
val applyImmediately: Output<Boolean>? = null

Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is false.

Link copied to clipboard
val aquaConfigurationStatus: Output<String>? = null

The value represents how the cluster is configured to use AQUA (Advanced Query Accelerator) after the cluster is restored. Possible values are enabled, disabled, and auto. Requires Cluster reboot.

Link copied to clipboard

The number of days that automated snapshots are retained. If the value is 0, automated snapshots are disabled. Even if automated snapshots are disabled, you can still create manual snapshots when you want with create-cluster-snapshot. Default is 1.

Link copied to clipboard
val availabilityZone: Output<String>? = null

The EC2 Availability Zone (AZ) in which you want Amazon Redshift to provision the cluster. For example, if you have several EC2 instances running in a specific Availability Zone, then you might want the cluster to be provisioned in the same zone in order to decrease network latency. Can only be changed if availability_zone_relocation_enabled is true.

Link copied to clipboard

If true, the cluster can be relocated to another availabity zone, either automatically by AWS or when requested. Default is false. Available for use on clusters from the RA3 instance family.

Link copied to clipboard
val clusterIdentifier: Output<String>? = null

The Cluster Identifier. Must be a lower case string.

Link copied to clipboard
val clusterParameterGroupName: Output<String>? = null

The name of the parameter group to be associated with this cluster.

Link copied to clipboard
val clusterPublicKey: Output<String>? = null

The public key for the cluster

Link copied to clipboard
val clusterRevisionNumber: Output<String>? = null

The specific revision number of the database in the cluster

Link copied to clipboard
val clusterSecurityGroups: Output<List<String>>? = null

A list of security groups to be associated with this cluster.

Link copied to clipboard
val clusterSubnetGroupName: Output<String>? = null

The name of a cluster subnet group to be associated with this cluster. If this parameter is not provided the resulting cluster will be deployed outside virtual private cloud (VPC).

Link copied to clipboard
val clusterType: Output<String>? = null

The cluster type to use. Either single-node or multi-node.

Link copied to clipboard
val clusterVersion: Output<String>? = null

The version of the Amazon Redshift engine software that you want to deploy on the cluster. The version selected runs on all the nodes in the cluster.

Link copied to clipboard
val databaseName: Output<String>? = null

The name of the first database to be created when the cluster is created. If you do not provide a name, Amazon Redshift will create a default database called dev.

Link copied to clipboard
val defaultIamRoleArn: Output<String>? = null

The Amazon Resource Name (ARN) for the IAM role that was set as default for the cluster when the cluster was created.

Link copied to clipboard
val elasticIp: Output<String>? = null

The Elastic IP (EIP) address for the cluster.

Link copied to clipboard
val encrypted: Output<Boolean>? = null

If true , the data in the cluster is encrypted at rest.

Link copied to clipboard
val endpoint: Output<String>? = null

The connection endpoint

Link copied to clipboard
val enhancedVpcRouting: Output<Boolean>? = null

If true , enhanced VPC routing is enabled.

Link copied to clipboard
val finalSnapshotIdentifier: Output<String>? = null

The identifier of the final snapshot that is to be created immediately before deleting the cluster. If this parameter is provided, skip_final_snapshot must be false.

Link copied to clipboard
val iamRoles: Output<List<String>>? = null

A list of IAM Role ARNs to associate with the cluster. A Maximum of 10 can be associated to the cluster at any time.

Link copied to clipboard
val kmsKeyId: Output<String>? = null

The ARN for the KMS encryption key. When specifying kms_key_id, encrypted needs to be set to true.

Link copied to clipboard
val logging: Output<ClusterLoggingArgs>? = null

Logging, documented below.

Link copied to clipboard
val maintenanceTrackName: Output<String>? = null

The name of the maintenance track for the restored cluster. When you take a snapshot, the snapshot inherits the MaintenanceTrack value from the cluster. The snapshot might be on a different track than the cluster that was the source for the snapshot. For example, suppose that you take a snapshot of a cluster that is on the current track and then change the cluster to be on the trailing track. In this case, the snapshot and the source cluster are on different tracks. Default value is current.

Link copied to clipboard
val manualSnapshotRetentionPeriod: Output<Int>? = null

The default number of days to retain a manual snapshot. If the value is -1, the snapshot is retained indefinitely. This setting doesn't change the retention period of existing snapshots. Valid values are between -1 and 3653. Default value is -1.

Link copied to clipboard
val masterPassword: Output<String>? = null

Password for the master DB user. Note that this may show up in logs, and it will be stored in the state file. Password must contain at least 8 chars and contain at least one uppercase letter, one lowercase letter, and one number.

Link copied to clipboard
val masterUsername: Output<String>? = null

Username for the master DB user.

Link copied to clipboard
val nodeType: Output<String>? = null

The node type to be provisioned for the cluster.

Link copied to clipboard
val numberOfNodes: Output<Int>? = null

The number of compute nodes in the cluster. This parameter is required when the ClusterType parameter is specified as multi-node. Default is 1.

Link copied to clipboard
val ownerAccount: Output<String>? = null

The AWS customer account used to create or copy the snapshot. Required if you are restoring a snapshot you do not own, optional if you own the snapshot.

Link copied to clipboard
val port: Output<Int>? = null

The port number on which the cluster accepts incoming connections. Valid values are between 1115 and 65535. The cluster is accessible only via the JDBC and ODBC connection strings. Part of the connection string requires the port on which the cluster will listen for incoming connections. Default port is 5439.

Link copied to clipboard
val preferredMaintenanceWindow: Output<String>? = null

The weekly time range (in UTC) during which automated cluster maintenance can occur. Format: ddd:hh24:mi-ddd:hh24:mi

Link copied to clipboard
val publiclyAccessible: Output<Boolean>? = null

If true, the cluster can be accessed from a public network. Default is true.

Link copied to clipboard
val skipFinalSnapshot: Output<Boolean>? = null

Determines whether a final snapshot of the cluster is created before Amazon Redshift deletes the cluster. If true , a final cluster snapshot is not created. If false , a final cluster snapshot is created before the cluster is deleted. Default is false.

Link copied to clipboard
val snapshotClusterIdentifier: Output<String>? = null

The name of the cluster the source snapshot was created from.

Link copied to clipboard

Configuration of automatic copy of snapshots from one region to another. Documented below.

Link copied to clipboard
val snapshotIdentifier: Output<String>? = null

The name of the snapshot from which to create the new cluster.

Link copied to clipboard
val tags: Output<Map<String, String>>? = null

A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

Link copied to clipboard
val vpcSecurityGroupIds: Output<List<String>>? = null

A list of Virtual Private Cloud (VPC) security groups to be associated with the cluster.

Functions

Link copied to clipboard
open override fun toJava(): ClusterArgs