github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/redshift/getCluster.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package redshift
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // Provides details about a specific redshift cluster.
    15  func LookupCluster(ctx *pulumi.Context, args *LookupClusterArgs, opts ...pulumi.InvokeOption) (*LookupClusterResult, error) {
    16  	opts = internal.PkgInvokeDefaultOpts(opts)
    17  	var rv LookupClusterResult
    18  	err := ctx.Invoke("aws:redshift/getCluster:getCluster", args, &rv, opts...)
    19  	if err != nil {
    20  		return nil, err
    21  	}
    22  	return &rv, nil
    23  }
    24  
    25  // A collection of arguments for invoking getCluster.
    26  type LookupClusterArgs struct {
    27  	// Cluster identifier
    28  	ClusterIdentifier string `pulumi:"clusterIdentifier"`
    29  	// Tags associated to the cluster
    30  	Tags map[string]string `pulumi:"tags"`
    31  }
    32  
    33  // A collection of values returned by getCluster.
    34  type LookupClusterResult struct {
    35  	// Whether major version upgrades can be applied during maintenance period
    36  	AllowVersionUpgrade bool `pulumi:"allowVersionUpgrade"`
    37  	// The value represents how the cluster is configured to use AQUA.
    38  	AquaConfigurationStatus string `pulumi:"aquaConfigurationStatus"`
    39  	// ARN of cluster.
    40  	Arn string `pulumi:"arn"`
    41  	// The backup retention period
    42  	AutomatedSnapshotRetentionPeriod int `pulumi:"automatedSnapshotRetentionPeriod"`
    43  	// Availability zone of the cluster
    44  	AvailabilityZone string `pulumi:"availabilityZone"`
    45  	// Indicates whether the cluster is able to be relocated to another availability zone.
    46  	AvailabilityZoneRelocationEnabled bool `pulumi:"availabilityZoneRelocationEnabled"`
    47  	// Name of the S3 bucket where the log files are to be stored
    48  	BucketName string `pulumi:"bucketName"`
    49  	// Cluster identifier
    50  	ClusterIdentifier string `pulumi:"clusterIdentifier"`
    51  	// The namespace Amazon Resource Name (ARN) of the cluster
    52  	ClusterNamespaceArn string `pulumi:"clusterNamespaceArn"`
    53  	// Nodes in the cluster. Cluster node blocks are documented below
    54  	ClusterNodes []GetClusterClusterNode `pulumi:"clusterNodes"`
    55  	// The name of the parameter group to be associated with this cluster
    56  	ClusterParameterGroupName string `pulumi:"clusterParameterGroupName"`
    57  	// Public key for the cluster
    58  	ClusterPublicKey string `pulumi:"clusterPublicKey"`
    59  	// The cluster revision number
    60  	ClusterRevisionNumber string `pulumi:"clusterRevisionNumber"`
    61  	// The name of a cluster subnet group to be associated with this cluster
    62  	ClusterSubnetGroupName string `pulumi:"clusterSubnetGroupName"`
    63  	// Cluster type
    64  	ClusterType    string `pulumi:"clusterType"`
    65  	ClusterVersion string `pulumi:"clusterVersion"`
    66  	// Name of the default database in the cluster
    67  	DatabaseName string `pulumi:"databaseName"`
    68  	// The ARN for the IAM role that was set as default for the cluster when the cluster was created.
    69  	DefaultIamRoleArn string `pulumi:"defaultIamRoleArn"`
    70  	// Elastic IP of the cluster
    71  	ElasticIp string `pulumi:"elasticIp"`
    72  	// Whether cluster logging is enabled
    73  	EnableLogging bool `pulumi:"enableLogging"`
    74  	// Whether the cluster data is encrypted
    75  	Encrypted bool `pulumi:"encrypted"`
    76  	// Cluster endpoint
    77  	Endpoint string `pulumi:"endpoint"`
    78  	// Whether enhanced VPC routing is enabled
    79  	EnhancedVpcRouting bool `pulumi:"enhancedVpcRouting"`
    80  	// IAM roles associated to the cluster
    81  	IamRoles []string `pulumi:"iamRoles"`
    82  	// The provider-assigned unique ID for this managed resource.
    83  	Id string `pulumi:"id"`
    84  	// KMS encryption key associated to the cluster
    85  	KmsKeyId string `pulumi:"kmsKeyId"`
    86  	// The log destination type.
    87  	LogDestinationType string `pulumi:"logDestinationType"`
    88  	// Collection of exported log types. Log types include the connection log, user log and user activity log.
    89  	LogExports []string `pulumi:"logExports"`
    90  	// The name of the maintenance track for the restored cluster.
    91  	MaintenanceTrackName string `pulumi:"maintenanceTrackName"`
    92  	// (Optional)  The default number of days to retain a manual snapshot.
    93  	ManualSnapshotRetentionPeriod int `pulumi:"manualSnapshotRetentionPeriod"`
    94  	// Username for the master DB user
    95  	MasterUsername string `pulumi:"masterUsername"`
    96  	// If the cluster is a Multi-AZ deployment
    97  	MultiAz bool `pulumi:"multiAz"`
    98  	// Cluster node type
    99  	NodeType string `pulumi:"nodeType"`
   100  	// Number of nodes in the cluster
   101  	NumberOfNodes int `pulumi:"numberOfNodes"`
   102  	// Port the cluster responds on
   103  	Port int `pulumi:"port"`
   104  	// The maintenance window
   105  	PreferredMaintenanceWindow string `pulumi:"preferredMaintenanceWindow"`
   106  	// Whether the cluster is publicly accessible
   107  	PubliclyAccessible bool `pulumi:"publiclyAccessible"`
   108  	// Folder inside the S3 bucket where the log files are stored
   109  	S3KeyPrefix string `pulumi:"s3KeyPrefix"`
   110  	// Tags associated to the cluster
   111  	Tags map[string]string `pulumi:"tags"`
   112  	// VPC Id associated with the cluster
   113  	VpcId string `pulumi:"vpcId"`
   114  	// The VPC security group Ids associated with the cluster
   115  	VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"`
   116  }
   117  
   118  func LookupClusterOutput(ctx *pulumi.Context, args LookupClusterOutputArgs, opts ...pulumi.InvokeOption) LookupClusterResultOutput {
   119  	return pulumi.ToOutputWithContext(context.Background(), args).
   120  		ApplyT(func(v interface{}) (LookupClusterResult, error) {
   121  			args := v.(LookupClusterArgs)
   122  			r, err := LookupCluster(ctx, &args, opts...)
   123  			var s LookupClusterResult
   124  			if r != nil {
   125  				s = *r
   126  			}
   127  			return s, err
   128  		}).(LookupClusterResultOutput)
   129  }
   130  
   131  // A collection of arguments for invoking getCluster.
   132  type LookupClusterOutputArgs struct {
   133  	// Cluster identifier
   134  	ClusterIdentifier pulumi.StringInput `pulumi:"clusterIdentifier"`
   135  	// Tags associated to the cluster
   136  	Tags pulumi.StringMapInput `pulumi:"tags"`
   137  }
   138  
   139  func (LookupClusterOutputArgs) ElementType() reflect.Type {
   140  	return reflect.TypeOf((*LookupClusterArgs)(nil)).Elem()
   141  }
   142  
   143  // A collection of values returned by getCluster.
   144  type LookupClusterResultOutput struct{ *pulumi.OutputState }
   145  
   146  func (LookupClusterResultOutput) ElementType() reflect.Type {
   147  	return reflect.TypeOf((*LookupClusterResult)(nil)).Elem()
   148  }
   149  
   150  func (o LookupClusterResultOutput) ToLookupClusterResultOutput() LookupClusterResultOutput {
   151  	return o
   152  }
   153  
   154  func (o LookupClusterResultOutput) ToLookupClusterResultOutputWithContext(ctx context.Context) LookupClusterResultOutput {
   155  	return o
   156  }
   157  
   158  // Whether major version upgrades can be applied during maintenance period
   159  func (o LookupClusterResultOutput) AllowVersionUpgrade() pulumi.BoolOutput {
   160  	return o.ApplyT(func(v LookupClusterResult) bool { return v.AllowVersionUpgrade }).(pulumi.BoolOutput)
   161  }
   162  
   163  // The value represents how the cluster is configured to use AQUA.
   164  func (o LookupClusterResultOutput) AquaConfigurationStatus() pulumi.StringOutput {
   165  	return o.ApplyT(func(v LookupClusterResult) string { return v.AquaConfigurationStatus }).(pulumi.StringOutput)
   166  }
   167  
   168  // ARN of cluster.
   169  func (o LookupClusterResultOutput) Arn() pulumi.StringOutput {
   170  	return o.ApplyT(func(v LookupClusterResult) string { return v.Arn }).(pulumi.StringOutput)
   171  }
   172  
   173  // The backup retention period
   174  func (o LookupClusterResultOutput) AutomatedSnapshotRetentionPeriod() pulumi.IntOutput {
   175  	return o.ApplyT(func(v LookupClusterResult) int { return v.AutomatedSnapshotRetentionPeriod }).(pulumi.IntOutput)
   176  }
   177  
   178  // Availability zone of the cluster
   179  func (o LookupClusterResultOutput) AvailabilityZone() pulumi.StringOutput {
   180  	return o.ApplyT(func(v LookupClusterResult) string { return v.AvailabilityZone }).(pulumi.StringOutput)
   181  }
   182  
   183  // Indicates whether the cluster is able to be relocated to another availability zone.
   184  func (o LookupClusterResultOutput) AvailabilityZoneRelocationEnabled() pulumi.BoolOutput {
   185  	return o.ApplyT(func(v LookupClusterResult) bool { return v.AvailabilityZoneRelocationEnabled }).(pulumi.BoolOutput)
   186  }
   187  
   188  // Name of the S3 bucket where the log files are to be stored
   189  func (o LookupClusterResultOutput) BucketName() pulumi.StringOutput {
   190  	return o.ApplyT(func(v LookupClusterResult) string { return v.BucketName }).(pulumi.StringOutput)
   191  }
   192  
   193  // Cluster identifier
   194  func (o LookupClusterResultOutput) ClusterIdentifier() pulumi.StringOutput {
   195  	return o.ApplyT(func(v LookupClusterResult) string { return v.ClusterIdentifier }).(pulumi.StringOutput)
   196  }
   197  
   198  // The namespace Amazon Resource Name (ARN) of the cluster
   199  func (o LookupClusterResultOutput) ClusterNamespaceArn() pulumi.StringOutput {
   200  	return o.ApplyT(func(v LookupClusterResult) string { return v.ClusterNamespaceArn }).(pulumi.StringOutput)
   201  }
   202  
   203  // Nodes in the cluster. Cluster node blocks are documented below
   204  func (o LookupClusterResultOutput) ClusterNodes() GetClusterClusterNodeArrayOutput {
   205  	return o.ApplyT(func(v LookupClusterResult) []GetClusterClusterNode { return v.ClusterNodes }).(GetClusterClusterNodeArrayOutput)
   206  }
   207  
   208  // The name of the parameter group to be associated with this cluster
   209  func (o LookupClusterResultOutput) ClusterParameterGroupName() pulumi.StringOutput {
   210  	return o.ApplyT(func(v LookupClusterResult) string { return v.ClusterParameterGroupName }).(pulumi.StringOutput)
   211  }
   212  
   213  // Public key for the cluster
   214  func (o LookupClusterResultOutput) ClusterPublicKey() pulumi.StringOutput {
   215  	return o.ApplyT(func(v LookupClusterResult) string { return v.ClusterPublicKey }).(pulumi.StringOutput)
   216  }
   217  
   218  // The cluster revision number
   219  func (o LookupClusterResultOutput) ClusterRevisionNumber() pulumi.StringOutput {
   220  	return o.ApplyT(func(v LookupClusterResult) string { return v.ClusterRevisionNumber }).(pulumi.StringOutput)
   221  }
   222  
   223  // The name of a cluster subnet group to be associated with this cluster
   224  func (o LookupClusterResultOutput) ClusterSubnetGroupName() pulumi.StringOutput {
   225  	return o.ApplyT(func(v LookupClusterResult) string { return v.ClusterSubnetGroupName }).(pulumi.StringOutput)
   226  }
   227  
   228  // Cluster type
   229  func (o LookupClusterResultOutput) ClusterType() pulumi.StringOutput {
   230  	return o.ApplyT(func(v LookupClusterResult) string { return v.ClusterType }).(pulumi.StringOutput)
   231  }
   232  
   233  func (o LookupClusterResultOutput) ClusterVersion() pulumi.StringOutput {
   234  	return o.ApplyT(func(v LookupClusterResult) string { return v.ClusterVersion }).(pulumi.StringOutput)
   235  }
   236  
   237  // Name of the default database in the cluster
   238  func (o LookupClusterResultOutput) DatabaseName() pulumi.StringOutput {
   239  	return o.ApplyT(func(v LookupClusterResult) string { return v.DatabaseName }).(pulumi.StringOutput)
   240  }
   241  
   242  // The ARN for the IAM role that was set as default for the cluster when the cluster was created.
   243  func (o LookupClusterResultOutput) DefaultIamRoleArn() pulumi.StringOutput {
   244  	return o.ApplyT(func(v LookupClusterResult) string { return v.DefaultIamRoleArn }).(pulumi.StringOutput)
   245  }
   246  
   247  // Elastic IP of the cluster
   248  func (o LookupClusterResultOutput) ElasticIp() pulumi.StringOutput {
   249  	return o.ApplyT(func(v LookupClusterResult) string { return v.ElasticIp }).(pulumi.StringOutput)
   250  }
   251  
   252  // Whether cluster logging is enabled
   253  func (o LookupClusterResultOutput) EnableLogging() pulumi.BoolOutput {
   254  	return o.ApplyT(func(v LookupClusterResult) bool { return v.EnableLogging }).(pulumi.BoolOutput)
   255  }
   256  
   257  // Whether the cluster data is encrypted
   258  func (o LookupClusterResultOutput) Encrypted() pulumi.BoolOutput {
   259  	return o.ApplyT(func(v LookupClusterResult) bool { return v.Encrypted }).(pulumi.BoolOutput)
   260  }
   261  
   262  // Cluster endpoint
   263  func (o LookupClusterResultOutput) Endpoint() pulumi.StringOutput {
   264  	return o.ApplyT(func(v LookupClusterResult) string { return v.Endpoint }).(pulumi.StringOutput)
   265  }
   266  
   267  // Whether enhanced VPC routing is enabled
   268  func (o LookupClusterResultOutput) EnhancedVpcRouting() pulumi.BoolOutput {
   269  	return o.ApplyT(func(v LookupClusterResult) bool { return v.EnhancedVpcRouting }).(pulumi.BoolOutput)
   270  }
   271  
   272  // IAM roles associated to the cluster
   273  func (o LookupClusterResultOutput) IamRoles() pulumi.StringArrayOutput {
   274  	return o.ApplyT(func(v LookupClusterResult) []string { return v.IamRoles }).(pulumi.StringArrayOutput)
   275  }
   276  
   277  // The provider-assigned unique ID for this managed resource.
   278  func (o LookupClusterResultOutput) Id() pulumi.StringOutput {
   279  	return o.ApplyT(func(v LookupClusterResult) string { return v.Id }).(pulumi.StringOutput)
   280  }
   281  
   282  // KMS encryption key associated to the cluster
   283  func (o LookupClusterResultOutput) KmsKeyId() pulumi.StringOutput {
   284  	return o.ApplyT(func(v LookupClusterResult) string { return v.KmsKeyId }).(pulumi.StringOutput)
   285  }
   286  
   287  // The log destination type.
   288  func (o LookupClusterResultOutput) LogDestinationType() pulumi.StringOutput {
   289  	return o.ApplyT(func(v LookupClusterResult) string { return v.LogDestinationType }).(pulumi.StringOutput)
   290  }
   291  
   292  // Collection of exported log types. Log types include the connection log, user log and user activity log.
   293  func (o LookupClusterResultOutput) LogExports() pulumi.StringArrayOutput {
   294  	return o.ApplyT(func(v LookupClusterResult) []string { return v.LogExports }).(pulumi.StringArrayOutput)
   295  }
   296  
   297  // The name of the maintenance track for the restored cluster.
   298  func (o LookupClusterResultOutput) MaintenanceTrackName() pulumi.StringOutput {
   299  	return o.ApplyT(func(v LookupClusterResult) string { return v.MaintenanceTrackName }).(pulumi.StringOutput)
   300  }
   301  
   302  // (Optional)  The default number of days to retain a manual snapshot.
   303  func (o LookupClusterResultOutput) ManualSnapshotRetentionPeriod() pulumi.IntOutput {
   304  	return o.ApplyT(func(v LookupClusterResult) int { return v.ManualSnapshotRetentionPeriod }).(pulumi.IntOutput)
   305  }
   306  
   307  // Username for the master DB user
   308  func (o LookupClusterResultOutput) MasterUsername() pulumi.StringOutput {
   309  	return o.ApplyT(func(v LookupClusterResult) string { return v.MasterUsername }).(pulumi.StringOutput)
   310  }
   311  
   312  // If the cluster is a Multi-AZ deployment
   313  func (o LookupClusterResultOutput) MultiAz() pulumi.BoolOutput {
   314  	return o.ApplyT(func(v LookupClusterResult) bool { return v.MultiAz }).(pulumi.BoolOutput)
   315  }
   316  
   317  // Cluster node type
   318  func (o LookupClusterResultOutput) NodeType() pulumi.StringOutput {
   319  	return o.ApplyT(func(v LookupClusterResult) string { return v.NodeType }).(pulumi.StringOutput)
   320  }
   321  
   322  // Number of nodes in the cluster
   323  func (o LookupClusterResultOutput) NumberOfNodes() pulumi.IntOutput {
   324  	return o.ApplyT(func(v LookupClusterResult) int { return v.NumberOfNodes }).(pulumi.IntOutput)
   325  }
   326  
   327  // Port the cluster responds on
   328  func (o LookupClusterResultOutput) Port() pulumi.IntOutput {
   329  	return o.ApplyT(func(v LookupClusterResult) int { return v.Port }).(pulumi.IntOutput)
   330  }
   331  
   332  // The maintenance window
   333  func (o LookupClusterResultOutput) PreferredMaintenanceWindow() pulumi.StringOutput {
   334  	return o.ApplyT(func(v LookupClusterResult) string { return v.PreferredMaintenanceWindow }).(pulumi.StringOutput)
   335  }
   336  
   337  // Whether the cluster is publicly accessible
   338  func (o LookupClusterResultOutput) PubliclyAccessible() pulumi.BoolOutput {
   339  	return o.ApplyT(func(v LookupClusterResult) bool { return v.PubliclyAccessible }).(pulumi.BoolOutput)
   340  }
   341  
   342  // Folder inside the S3 bucket where the log files are stored
   343  func (o LookupClusterResultOutput) S3KeyPrefix() pulumi.StringOutput {
   344  	return o.ApplyT(func(v LookupClusterResult) string { return v.S3KeyPrefix }).(pulumi.StringOutput)
   345  }
   346  
   347  // Tags associated to the cluster
   348  func (o LookupClusterResultOutput) Tags() pulumi.StringMapOutput {
   349  	return o.ApplyT(func(v LookupClusterResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput)
   350  }
   351  
   352  // VPC Id associated with the cluster
   353  func (o LookupClusterResultOutput) VpcId() pulumi.StringOutput {
   354  	return o.ApplyT(func(v LookupClusterResult) string { return v.VpcId }).(pulumi.StringOutput)
   355  }
   356  
   357  // The VPC security group Ids associated with the cluster
   358  func (o LookupClusterResultOutput) VpcSecurityGroupIds() pulumi.StringArrayOutput {
   359  	return o.ApplyT(func(v LookupClusterResult) []string { return v.VpcSecurityGroupIds }).(pulumi.StringArrayOutput)
   360  }
   361  
   362  func init() {
   363  	pulumi.RegisterOutputType(LookupClusterResultOutput{})
   364  }