github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/docdb/cluster.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 docdb
     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  // Manages a DocumentDB Cluster.
    15  //
    16  // Changes to a DocumentDB Cluster can occur when you manually change a
    17  // parameter, such as `port`, and are reflected in the next maintenance
    18  // window. Because of this, this provider may report a difference in its planning
    19  // phase because a modification has not yet taken place. You can use the
    20  // `applyImmediately` flag to instruct the service to apply the change immediately
    21  // (see documentation below).
    22  //
    23  // > **Note:** using `applyImmediately` can result in a brief downtime as the server reboots.
    24  //
    25  // ## Example Usage
    26  //
    27  // <!--Start PulumiCodeChooser -->
    28  // ```go
    29  // package main
    30  //
    31  // import (
    32  //
    33  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/docdb"
    34  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    35  //
    36  // )
    37  //
    38  //	func main() {
    39  //		pulumi.Run(func(ctx *pulumi.Context) error {
    40  //			_, err := docdb.NewCluster(ctx, "docdb", &docdb.ClusterArgs{
    41  //				ClusterIdentifier:     pulumi.String("my-docdb-cluster"),
    42  //				Engine:                pulumi.String("docdb"),
    43  //				MasterUsername:        pulumi.String("foo"),
    44  //				MasterPassword:        pulumi.String("mustbeeightchars"),
    45  //				BackupRetentionPeriod: pulumi.Int(5),
    46  //				PreferredBackupWindow: pulumi.String("07:00-09:00"),
    47  //				SkipFinalSnapshot:     pulumi.Bool(true),
    48  //			})
    49  //			if err != nil {
    50  //				return err
    51  //			}
    52  //			return nil
    53  //		})
    54  //	}
    55  //
    56  // ```
    57  // <!--End PulumiCodeChooser -->
    58  //
    59  // ## Import
    60  //
    61  // Using `pulumi import`, import DocumentDB Clusters using the `cluster_identifier`. For example:
    62  //
    63  // ```sh
    64  // $ pulumi import aws:docdb/cluster:Cluster docdb_cluster docdb-prod-cluster
    65  // ```
    66  type Cluster struct {
    67  	pulumi.CustomResourceState
    68  
    69  	// A value that indicates whether major version upgrades are allowed. Constraints: You must allow major version upgrades when specifying a value for the EngineVersion parameter that is a different major version than the DB cluster's current version.
    70  	AllowMajorVersionUpgrade pulumi.BoolPtrOutput `pulumi:"allowMajorVersionUpgrade"`
    71  	// Specifies whether any cluster modifications
    72  	// are applied immediately, or during the next maintenance window. Default is
    73  	// `false`.
    74  	ApplyImmediately pulumi.BoolPtrOutput `pulumi:"applyImmediately"`
    75  	// Amazon Resource Name (ARN) of cluster
    76  	Arn pulumi.StringOutput `pulumi:"arn"`
    77  	// A list of EC2 Availability Zones that
    78  	// instances in the DB cluster can be created in.
    79  	AvailabilityZones pulumi.StringArrayOutput `pulumi:"availabilityZones"`
    80  	// The days to retain backups for. Default `1`
    81  	BackupRetentionPeriod pulumi.IntPtrOutput `pulumi:"backupRetentionPeriod"`
    82  	// The cluster identifier. If omitted, the provider will assign a random, unique identifier.
    83  	ClusterIdentifier pulumi.StringOutput `pulumi:"clusterIdentifier"`
    84  	// Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
    85  	ClusterIdentifierPrefix pulumi.StringOutput `pulumi:"clusterIdentifierPrefix"`
    86  	// List of DocumentDB Instances that are a part of this cluster
    87  	ClusterMembers pulumi.StringArrayOutput `pulumi:"clusterMembers"`
    88  	// The DocumentDB Cluster Resource ID
    89  	ClusterResourceId pulumi.StringOutput `pulumi:"clusterResourceId"`
    90  	// A cluster parameter group to associate with the cluster.
    91  	DbClusterParameterGroupName pulumi.StringOutput `pulumi:"dbClusterParameterGroupName"`
    92  	// A DB subnet group to associate with this DB instance.
    93  	DbSubnetGroupName pulumi.StringOutput `pulumi:"dbSubnetGroupName"`
    94  	// A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.
    95  	DeletionProtection pulumi.BoolPtrOutput `pulumi:"deletionProtection"`
    96  	// List of log types to export to cloudwatch. If omitted, no logs will be exported.
    97  	// The following log types are supported: `audit`, `profiler`.
    98  	EnabledCloudwatchLogsExports pulumi.StringArrayOutput `pulumi:"enabledCloudwatchLogsExports"`
    99  	// The DNS address of the DocumentDB instance
   100  	Endpoint pulumi.StringOutput `pulumi:"endpoint"`
   101  	// The name of the database engine to be used for this DB cluster. Defaults to `docdb`. Valid values: `docdb`.
   102  	Engine pulumi.StringPtrOutput `pulumi:"engine"`
   103  	// The database engine version. Updating this argument results in an outage.
   104  	EngineVersion pulumi.StringOutput `pulumi:"engineVersion"`
   105  	// The name of your final DB snapshot
   106  	// when this DB cluster is deleted. If omitted, no final snapshot will be
   107  	// made.
   108  	FinalSnapshotIdentifier pulumi.StringPtrOutput `pulumi:"finalSnapshotIdentifier"`
   109  	// The global cluster identifier specified on `docdb.GlobalCluster`.
   110  	GlobalClusterIdentifier pulumi.StringPtrOutput `pulumi:"globalClusterIdentifier"`
   111  	// The Route53 Hosted Zone ID of the endpoint
   112  	HostedZoneId pulumi.StringOutput `pulumi:"hostedZoneId"`
   113  	// The ARN for the KMS encryption key. When specifying `kmsKeyId`, `storageEncrypted` needs to be set to true.
   114  	KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"`
   115  	// Password for the master DB user. Note that this may
   116  	// show up in logs, and it will be stored in the state file. Please refer to the DocumentDB Naming Constraints.
   117  	MasterPassword pulumi.StringPtrOutput `pulumi:"masterPassword"`
   118  	// Username for the master DB user.
   119  	MasterUsername pulumi.StringOutput `pulumi:"masterUsername"`
   120  	// The port on which the DB accepts connections
   121  	Port pulumi.IntPtrOutput `pulumi:"port"`
   122  	// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC
   123  	// Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
   124  	PreferredBackupWindow pulumi.StringOutput `pulumi:"preferredBackupWindow"`
   125  	// The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
   126  	PreferredMaintenanceWindow pulumi.StringOutput `pulumi:"preferredMaintenanceWindow"`
   127  	// A read-only endpoint for the DocumentDB cluster, automatically load-balanced across replicas
   128  	ReaderEndpoint pulumi.StringOutput `pulumi:"readerEndpoint"`
   129  	// Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from `finalSnapshotIdentifier`. Default is `false`.
   130  	SkipFinalSnapshot pulumi.BoolPtrOutput `pulumi:"skipFinalSnapshot"`
   131  	// Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Automated snapshots **should not** be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced.
   132  	SnapshotIdentifier pulumi.StringPtrOutput `pulumi:"snapshotIdentifier"`
   133  	// Specifies whether the DB cluster is encrypted. The default is `false`.
   134  	StorageEncrypted pulumi.BoolPtrOutput `pulumi:"storageEncrypted"`
   135  	// The storage type to associate with the DB cluster. Valid values: `standard`, `iopt1`.
   136  	StorageType pulumi.StringPtrOutput `pulumi:"storageType"`
   137  	// A map of tags to assign to the DB cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   138  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   139  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   140  	//
   141  	// Deprecated: Please use `tags` instead.
   142  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   143  	// List of VPC security groups to associate
   144  	// with the Cluster
   145  	VpcSecurityGroupIds pulumi.StringArrayOutput `pulumi:"vpcSecurityGroupIds"`
   146  }
   147  
   148  // NewCluster registers a new resource with the given unique name, arguments, and options.
   149  func NewCluster(ctx *pulumi.Context,
   150  	name string, args *ClusterArgs, opts ...pulumi.ResourceOption) (*Cluster, error) {
   151  	if args == nil {
   152  		args = &ClusterArgs{}
   153  	}
   154  
   155  	if args.MasterPassword != nil {
   156  		args.MasterPassword = pulumi.ToSecret(args.MasterPassword).(pulumi.StringPtrInput)
   157  	}
   158  	secrets := pulumi.AdditionalSecretOutputs([]string{
   159  		"masterPassword",
   160  	})
   161  	opts = append(opts, secrets)
   162  	opts = internal.PkgResourceDefaultOpts(opts)
   163  	var resource Cluster
   164  	err := ctx.RegisterResource("aws:docdb/cluster:Cluster", name, args, &resource, opts...)
   165  	if err != nil {
   166  		return nil, err
   167  	}
   168  	return &resource, nil
   169  }
   170  
   171  // GetCluster gets an existing Cluster resource's state with the given name, ID, and optional
   172  // state properties that are used to uniquely qualify the lookup (nil if not required).
   173  func GetCluster(ctx *pulumi.Context,
   174  	name string, id pulumi.IDInput, state *ClusterState, opts ...pulumi.ResourceOption) (*Cluster, error) {
   175  	var resource Cluster
   176  	err := ctx.ReadResource("aws:docdb/cluster:Cluster", name, id, state, &resource, opts...)
   177  	if err != nil {
   178  		return nil, err
   179  	}
   180  	return &resource, nil
   181  }
   182  
   183  // Input properties used for looking up and filtering Cluster resources.
   184  type clusterState struct {
   185  	// A value that indicates whether major version upgrades are allowed. Constraints: You must allow major version upgrades when specifying a value for the EngineVersion parameter that is a different major version than the DB cluster's current version.
   186  	AllowMajorVersionUpgrade *bool `pulumi:"allowMajorVersionUpgrade"`
   187  	// Specifies whether any cluster modifications
   188  	// are applied immediately, or during the next maintenance window. Default is
   189  	// `false`.
   190  	ApplyImmediately *bool `pulumi:"applyImmediately"`
   191  	// Amazon Resource Name (ARN) of cluster
   192  	Arn *string `pulumi:"arn"`
   193  	// A list of EC2 Availability Zones that
   194  	// instances in the DB cluster can be created in.
   195  	AvailabilityZones []string `pulumi:"availabilityZones"`
   196  	// The days to retain backups for. Default `1`
   197  	BackupRetentionPeriod *int `pulumi:"backupRetentionPeriod"`
   198  	// The cluster identifier. If omitted, the provider will assign a random, unique identifier.
   199  	ClusterIdentifier *string `pulumi:"clusterIdentifier"`
   200  	// Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
   201  	ClusterIdentifierPrefix *string `pulumi:"clusterIdentifierPrefix"`
   202  	// List of DocumentDB Instances that are a part of this cluster
   203  	ClusterMembers []string `pulumi:"clusterMembers"`
   204  	// The DocumentDB Cluster Resource ID
   205  	ClusterResourceId *string `pulumi:"clusterResourceId"`
   206  	// A cluster parameter group to associate with the cluster.
   207  	DbClusterParameterGroupName *string `pulumi:"dbClusterParameterGroupName"`
   208  	// A DB subnet group to associate with this DB instance.
   209  	DbSubnetGroupName *string `pulumi:"dbSubnetGroupName"`
   210  	// A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.
   211  	DeletionProtection *bool `pulumi:"deletionProtection"`
   212  	// List of log types to export to cloudwatch. If omitted, no logs will be exported.
   213  	// The following log types are supported: `audit`, `profiler`.
   214  	EnabledCloudwatchLogsExports []string `pulumi:"enabledCloudwatchLogsExports"`
   215  	// The DNS address of the DocumentDB instance
   216  	Endpoint *string `pulumi:"endpoint"`
   217  	// The name of the database engine to be used for this DB cluster. Defaults to `docdb`. Valid values: `docdb`.
   218  	Engine *string `pulumi:"engine"`
   219  	// The database engine version. Updating this argument results in an outage.
   220  	EngineVersion *string `pulumi:"engineVersion"`
   221  	// The name of your final DB snapshot
   222  	// when this DB cluster is deleted. If omitted, no final snapshot will be
   223  	// made.
   224  	FinalSnapshotIdentifier *string `pulumi:"finalSnapshotIdentifier"`
   225  	// The global cluster identifier specified on `docdb.GlobalCluster`.
   226  	GlobalClusterIdentifier *string `pulumi:"globalClusterIdentifier"`
   227  	// The Route53 Hosted Zone ID of the endpoint
   228  	HostedZoneId *string `pulumi:"hostedZoneId"`
   229  	// The ARN for the KMS encryption key. When specifying `kmsKeyId`, `storageEncrypted` needs to be set to true.
   230  	KmsKeyId *string `pulumi:"kmsKeyId"`
   231  	// Password for the master DB user. Note that this may
   232  	// show up in logs, and it will be stored in the state file. Please refer to the DocumentDB Naming Constraints.
   233  	MasterPassword *string `pulumi:"masterPassword"`
   234  	// Username for the master DB user.
   235  	MasterUsername *string `pulumi:"masterUsername"`
   236  	// The port on which the DB accepts connections
   237  	Port *int `pulumi:"port"`
   238  	// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC
   239  	// Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
   240  	PreferredBackupWindow *string `pulumi:"preferredBackupWindow"`
   241  	// The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
   242  	PreferredMaintenanceWindow *string `pulumi:"preferredMaintenanceWindow"`
   243  	// A read-only endpoint for the DocumentDB cluster, automatically load-balanced across replicas
   244  	ReaderEndpoint *string `pulumi:"readerEndpoint"`
   245  	// Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from `finalSnapshotIdentifier`. Default is `false`.
   246  	SkipFinalSnapshot *bool `pulumi:"skipFinalSnapshot"`
   247  	// Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Automated snapshots **should not** be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced.
   248  	SnapshotIdentifier *string `pulumi:"snapshotIdentifier"`
   249  	// Specifies whether the DB cluster is encrypted. The default is `false`.
   250  	StorageEncrypted *bool `pulumi:"storageEncrypted"`
   251  	// The storage type to associate with the DB cluster. Valid values: `standard`, `iopt1`.
   252  	StorageType *string `pulumi:"storageType"`
   253  	// A map of tags to assign to the DB cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   254  	Tags map[string]string `pulumi:"tags"`
   255  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   256  	//
   257  	// Deprecated: Please use `tags` instead.
   258  	TagsAll map[string]string `pulumi:"tagsAll"`
   259  	// List of VPC security groups to associate
   260  	// with the Cluster
   261  	VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"`
   262  }
   263  
   264  type ClusterState struct {
   265  	// A value that indicates whether major version upgrades are allowed. Constraints: You must allow major version upgrades when specifying a value for the EngineVersion parameter that is a different major version than the DB cluster's current version.
   266  	AllowMajorVersionUpgrade pulumi.BoolPtrInput
   267  	// Specifies whether any cluster modifications
   268  	// are applied immediately, or during the next maintenance window. Default is
   269  	// `false`.
   270  	ApplyImmediately pulumi.BoolPtrInput
   271  	// Amazon Resource Name (ARN) of cluster
   272  	Arn pulumi.StringPtrInput
   273  	// A list of EC2 Availability Zones that
   274  	// instances in the DB cluster can be created in.
   275  	AvailabilityZones pulumi.StringArrayInput
   276  	// The days to retain backups for. Default `1`
   277  	BackupRetentionPeriod pulumi.IntPtrInput
   278  	// The cluster identifier. If omitted, the provider will assign a random, unique identifier.
   279  	ClusterIdentifier pulumi.StringPtrInput
   280  	// Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
   281  	ClusterIdentifierPrefix pulumi.StringPtrInput
   282  	// List of DocumentDB Instances that are a part of this cluster
   283  	ClusterMembers pulumi.StringArrayInput
   284  	// The DocumentDB Cluster Resource ID
   285  	ClusterResourceId pulumi.StringPtrInput
   286  	// A cluster parameter group to associate with the cluster.
   287  	DbClusterParameterGroupName pulumi.StringPtrInput
   288  	// A DB subnet group to associate with this DB instance.
   289  	DbSubnetGroupName pulumi.StringPtrInput
   290  	// A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.
   291  	DeletionProtection pulumi.BoolPtrInput
   292  	// List of log types to export to cloudwatch. If omitted, no logs will be exported.
   293  	// The following log types are supported: `audit`, `profiler`.
   294  	EnabledCloudwatchLogsExports pulumi.StringArrayInput
   295  	// The DNS address of the DocumentDB instance
   296  	Endpoint pulumi.StringPtrInput
   297  	// The name of the database engine to be used for this DB cluster. Defaults to `docdb`. Valid values: `docdb`.
   298  	Engine pulumi.StringPtrInput
   299  	// The database engine version. Updating this argument results in an outage.
   300  	EngineVersion pulumi.StringPtrInput
   301  	// The name of your final DB snapshot
   302  	// when this DB cluster is deleted. If omitted, no final snapshot will be
   303  	// made.
   304  	FinalSnapshotIdentifier pulumi.StringPtrInput
   305  	// The global cluster identifier specified on `docdb.GlobalCluster`.
   306  	GlobalClusterIdentifier pulumi.StringPtrInput
   307  	// The Route53 Hosted Zone ID of the endpoint
   308  	HostedZoneId pulumi.StringPtrInput
   309  	// The ARN for the KMS encryption key. When specifying `kmsKeyId`, `storageEncrypted` needs to be set to true.
   310  	KmsKeyId pulumi.StringPtrInput
   311  	// Password for the master DB user. Note that this may
   312  	// show up in logs, and it will be stored in the state file. Please refer to the DocumentDB Naming Constraints.
   313  	MasterPassword pulumi.StringPtrInput
   314  	// Username for the master DB user.
   315  	MasterUsername pulumi.StringPtrInput
   316  	// The port on which the DB accepts connections
   317  	Port pulumi.IntPtrInput
   318  	// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC
   319  	// Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
   320  	PreferredBackupWindow pulumi.StringPtrInput
   321  	// The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
   322  	PreferredMaintenanceWindow pulumi.StringPtrInput
   323  	// A read-only endpoint for the DocumentDB cluster, automatically load-balanced across replicas
   324  	ReaderEndpoint pulumi.StringPtrInput
   325  	// Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from `finalSnapshotIdentifier`. Default is `false`.
   326  	SkipFinalSnapshot pulumi.BoolPtrInput
   327  	// Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Automated snapshots **should not** be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced.
   328  	SnapshotIdentifier pulumi.StringPtrInput
   329  	// Specifies whether the DB cluster is encrypted. The default is `false`.
   330  	StorageEncrypted pulumi.BoolPtrInput
   331  	// The storage type to associate with the DB cluster. Valid values: `standard`, `iopt1`.
   332  	StorageType pulumi.StringPtrInput
   333  	// A map of tags to assign to the DB cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   334  	Tags pulumi.StringMapInput
   335  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   336  	//
   337  	// Deprecated: Please use `tags` instead.
   338  	TagsAll pulumi.StringMapInput
   339  	// List of VPC security groups to associate
   340  	// with the Cluster
   341  	VpcSecurityGroupIds pulumi.StringArrayInput
   342  }
   343  
   344  func (ClusterState) ElementType() reflect.Type {
   345  	return reflect.TypeOf((*clusterState)(nil)).Elem()
   346  }
   347  
   348  type clusterArgs struct {
   349  	// A value that indicates whether major version upgrades are allowed. Constraints: You must allow major version upgrades when specifying a value for the EngineVersion parameter that is a different major version than the DB cluster's current version.
   350  	AllowMajorVersionUpgrade *bool `pulumi:"allowMajorVersionUpgrade"`
   351  	// Specifies whether any cluster modifications
   352  	// are applied immediately, or during the next maintenance window. Default is
   353  	// `false`.
   354  	ApplyImmediately *bool `pulumi:"applyImmediately"`
   355  	// A list of EC2 Availability Zones that
   356  	// instances in the DB cluster can be created in.
   357  	AvailabilityZones []string `pulumi:"availabilityZones"`
   358  	// The days to retain backups for. Default `1`
   359  	BackupRetentionPeriod *int `pulumi:"backupRetentionPeriod"`
   360  	// The cluster identifier. If omitted, the provider will assign a random, unique identifier.
   361  	ClusterIdentifier *string `pulumi:"clusterIdentifier"`
   362  	// Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
   363  	ClusterIdentifierPrefix *string `pulumi:"clusterIdentifierPrefix"`
   364  	// List of DocumentDB Instances that are a part of this cluster
   365  	ClusterMembers []string `pulumi:"clusterMembers"`
   366  	// A cluster parameter group to associate with the cluster.
   367  	DbClusterParameterGroupName *string `pulumi:"dbClusterParameterGroupName"`
   368  	// A DB subnet group to associate with this DB instance.
   369  	DbSubnetGroupName *string `pulumi:"dbSubnetGroupName"`
   370  	// A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.
   371  	DeletionProtection *bool `pulumi:"deletionProtection"`
   372  	// List of log types to export to cloudwatch. If omitted, no logs will be exported.
   373  	// The following log types are supported: `audit`, `profiler`.
   374  	EnabledCloudwatchLogsExports []string `pulumi:"enabledCloudwatchLogsExports"`
   375  	// The name of the database engine to be used for this DB cluster. Defaults to `docdb`. Valid values: `docdb`.
   376  	Engine *string `pulumi:"engine"`
   377  	// The database engine version. Updating this argument results in an outage.
   378  	EngineVersion *string `pulumi:"engineVersion"`
   379  	// The name of your final DB snapshot
   380  	// when this DB cluster is deleted. If omitted, no final snapshot will be
   381  	// made.
   382  	FinalSnapshotIdentifier *string `pulumi:"finalSnapshotIdentifier"`
   383  	// The global cluster identifier specified on `docdb.GlobalCluster`.
   384  	GlobalClusterIdentifier *string `pulumi:"globalClusterIdentifier"`
   385  	// The ARN for the KMS encryption key. When specifying `kmsKeyId`, `storageEncrypted` needs to be set to true.
   386  	KmsKeyId *string `pulumi:"kmsKeyId"`
   387  	// Password for the master DB user. Note that this may
   388  	// show up in logs, and it will be stored in the state file. Please refer to the DocumentDB Naming Constraints.
   389  	MasterPassword *string `pulumi:"masterPassword"`
   390  	// Username for the master DB user.
   391  	MasterUsername *string `pulumi:"masterUsername"`
   392  	// The port on which the DB accepts connections
   393  	Port *int `pulumi:"port"`
   394  	// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC
   395  	// Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
   396  	PreferredBackupWindow *string `pulumi:"preferredBackupWindow"`
   397  	// The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
   398  	PreferredMaintenanceWindow *string `pulumi:"preferredMaintenanceWindow"`
   399  	// Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from `finalSnapshotIdentifier`. Default is `false`.
   400  	SkipFinalSnapshot *bool `pulumi:"skipFinalSnapshot"`
   401  	// Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Automated snapshots **should not** be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced.
   402  	SnapshotIdentifier *string `pulumi:"snapshotIdentifier"`
   403  	// Specifies whether the DB cluster is encrypted. The default is `false`.
   404  	StorageEncrypted *bool `pulumi:"storageEncrypted"`
   405  	// The storage type to associate with the DB cluster. Valid values: `standard`, `iopt1`.
   406  	StorageType *string `pulumi:"storageType"`
   407  	// A map of tags to assign to the DB cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   408  	Tags map[string]string `pulumi:"tags"`
   409  	// List of VPC security groups to associate
   410  	// with the Cluster
   411  	VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"`
   412  }
   413  
   414  // The set of arguments for constructing a Cluster resource.
   415  type ClusterArgs struct {
   416  	// A value that indicates whether major version upgrades are allowed. Constraints: You must allow major version upgrades when specifying a value for the EngineVersion parameter that is a different major version than the DB cluster's current version.
   417  	AllowMajorVersionUpgrade pulumi.BoolPtrInput
   418  	// Specifies whether any cluster modifications
   419  	// are applied immediately, or during the next maintenance window. Default is
   420  	// `false`.
   421  	ApplyImmediately pulumi.BoolPtrInput
   422  	// A list of EC2 Availability Zones that
   423  	// instances in the DB cluster can be created in.
   424  	AvailabilityZones pulumi.StringArrayInput
   425  	// The days to retain backups for. Default `1`
   426  	BackupRetentionPeriod pulumi.IntPtrInput
   427  	// The cluster identifier. If omitted, the provider will assign a random, unique identifier.
   428  	ClusterIdentifier pulumi.StringPtrInput
   429  	// Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
   430  	ClusterIdentifierPrefix pulumi.StringPtrInput
   431  	// List of DocumentDB Instances that are a part of this cluster
   432  	ClusterMembers pulumi.StringArrayInput
   433  	// A cluster parameter group to associate with the cluster.
   434  	DbClusterParameterGroupName pulumi.StringPtrInput
   435  	// A DB subnet group to associate with this DB instance.
   436  	DbSubnetGroupName pulumi.StringPtrInput
   437  	// A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.
   438  	DeletionProtection pulumi.BoolPtrInput
   439  	// List of log types to export to cloudwatch. If omitted, no logs will be exported.
   440  	// The following log types are supported: `audit`, `profiler`.
   441  	EnabledCloudwatchLogsExports pulumi.StringArrayInput
   442  	// The name of the database engine to be used for this DB cluster. Defaults to `docdb`. Valid values: `docdb`.
   443  	Engine pulumi.StringPtrInput
   444  	// The database engine version. Updating this argument results in an outage.
   445  	EngineVersion pulumi.StringPtrInput
   446  	// The name of your final DB snapshot
   447  	// when this DB cluster is deleted. If omitted, no final snapshot will be
   448  	// made.
   449  	FinalSnapshotIdentifier pulumi.StringPtrInput
   450  	// The global cluster identifier specified on `docdb.GlobalCluster`.
   451  	GlobalClusterIdentifier pulumi.StringPtrInput
   452  	// The ARN for the KMS encryption key. When specifying `kmsKeyId`, `storageEncrypted` needs to be set to true.
   453  	KmsKeyId pulumi.StringPtrInput
   454  	// Password for the master DB user. Note that this may
   455  	// show up in logs, and it will be stored in the state file. Please refer to the DocumentDB Naming Constraints.
   456  	MasterPassword pulumi.StringPtrInput
   457  	// Username for the master DB user.
   458  	MasterUsername pulumi.StringPtrInput
   459  	// The port on which the DB accepts connections
   460  	Port pulumi.IntPtrInput
   461  	// The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC
   462  	// Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
   463  	PreferredBackupWindow pulumi.StringPtrInput
   464  	// The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
   465  	PreferredMaintenanceWindow pulumi.StringPtrInput
   466  	// Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from `finalSnapshotIdentifier`. Default is `false`.
   467  	SkipFinalSnapshot pulumi.BoolPtrInput
   468  	// Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Automated snapshots **should not** be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced.
   469  	SnapshotIdentifier pulumi.StringPtrInput
   470  	// Specifies whether the DB cluster is encrypted. The default is `false`.
   471  	StorageEncrypted pulumi.BoolPtrInput
   472  	// The storage type to associate with the DB cluster. Valid values: `standard`, `iopt1`.
   473  	StorageType pulumi.StringPtrInput
   474  	// A map of tags to assign to the DB cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   475  	Tags pulumi.StringMapInput
   476  	// List of VPC security groups to associate
   477  	// with the Cluster
   478  	VpcSecurityGroupIds pulumi.StringArrayInput
   479  }
   480  
   481  func (ClusterArgs) ElementType() reflect.Type {
   482  	return reflect.TypeOf((*clusterArgs)(nil)).Elem()
   483  }
   484  
   485  type ClusterInput interface {
   486  	pulumi.Input
   487  
   488  	ToClusterOutput() ClusterOutput
   489  	ToClusterOutputWithContext(ctx context.Context) ClusterOutput
   490  }
   491  
   492  func (*Cluster) ElementType() reflect.Type {
   493  	return reflect.TypeOf((**Cluster)(nil)).Elem()
   494  }
   495  
   496  func (i *Cluster) ToClusterOutput() ClusterOutput {
   497  	return i.ToClusterOutputWithContext(context.Background())
   498  }
   499  
   500  func (i *Cluster) ToClusterOutputWithContext(ctx context.Context) ClusterOutput {
   501  	return pulumi.ToOutputWithContext(ctx, i).(ClusterOutput)
   502  }
   503  
   504  // ClusterArrayInput is an input type that accepts ClusterArray and ClusterArrayOutput values.
   505  // You can construct a concrete instance of `ClusterArrayInput` via:
   506  //
   507  //	ClusterArray{ ClusterArgs{...} }
   508  type ClusterArrayInput interface {
   509  	pulumi.Input
   510  
   511  	ToClusterArrayOutput() ClusterArrayOutput
   512  	ToClusterArrayOutputWithContext(context.Context) ClusterArrayOutput
   513  }
   514  
   515  type ClusterArray []ClusterInput
   516  
   517  func (ClusterArray) ElementType() reflect.Type {
   518  	return reflect.TypeOf((*[]*Cluster)(nil)).Elem()
   519  }
   520  
   521  func (i ClusterArray) ToClusterArrayOutput() ClusterArrayOutput {
   522  	return i.ToClusterArrayOutputWithContext(context.Background())
   523  }
   524  
   525  func (i ClusterArray) ToClusterArrayOutputWithContext(ctx context.Context) ClusterArrayOutput {
   526  	return pulumi.ToOutputWithContext(ctx, i).(ClusterArrayOutput)
   527  }
   528  
   529  // ClusterMapInput is an input type that accepts ClusterMap and ClusterMapOutput values.
   530  // You can construct a concrete instance of `ClusterMapInput` via:
   531  //
   532  //	ClusterMap{ "key": ClusterArgs{...} }
   533  type ClusterMapInput interface {
   534  	pulumi.Input
   535  
   536  	ToClusterMapOutput() ClusterMapOutput
   537  	ToClusterMapOutputWithContext(context.Context) ClusterMapOutput
   538  }
   539  
   540  type ClusterMap map[string]ClusterInput
   541  
   542  func (ClusterMap) ElementType() reflect.Type {
   543  	return reflect.TypeOf((*map[string]*Cluster)(nil)).Elem()
   544  }
   545  
   546  func (i ClusterMap) ToClusterMapOutput() ClusterMapOutput {
   547  	return i.ToClusterMapOutputWithContext(context.Background())
   548  }
   549  
   550  func (i ClusterMap) ToClusterMapOutputWithContext(ctx context.Context) ClusterMapOutput {
   551  	return pulumi.ToOutputWithContext(ctx, i).(ClusterMapOutput)
   552  }
   553  
   554  type ClusterOutput struct{ *pulumi.OutputState }
   555  
   556  func (ClusterOutput) ElementType() reflect.Type {
   557  	return reflect.TypeOf((**Cluster)(nil)).Elem()
   558  }
   559  
   560  func (o ClusterOutput) ToClusterOutput() ClusterOutput {
   561  	return o
   562  }
   563  
   564  func (o ClusterOutput) ToClusterOutputWithContext(ctx context.Context) ClusterOutput {
   565  	return o
   566  }
   567  
   568  // A value that indicates whether major version upgrades are allowed. Constraints: You must allow major version upgrades when specifying a value for the EngineVersion parameter that is a different major version than the DB cluster's current version.
   569  func (o ClusterOutput) AllowMajorVersionUpgrade() pulumi.BoolPtrOutput {
   570  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.AllowMajorVersionUpgrade }).(pulumi.BoolPtrOutput)
   571  }
   572  
   573  // Specifies whether any cluster modifications
   574  // are applied immediately, or during the next maintenance window. Default is
   575  // `false`.
   576  func (o ClusterOutput) ApplyImmediately() pulumi.BoolPtrOutput {
   577  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.ApplyImmediately }).(pulumi.BoolPtrOutput)
   578  }
   579  
   580  // Amazon Resource Name (ARN) of cluster
   581  func (o ClusterOutput) Arn() pulumi.StringOutput {
   582  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   583  }
   584  
   585  // A list of EC2 Availability Zones that
   586  // instances in the DB cluster can be created in.
   587  func (o ClusterOutput) AvailabilityZones() pulumi.StringArrayOutput {
   588  	return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.AvailabilityZones }).(pulumi.StringArrayOutput)
   589  }
   590  
   591  // The days to retain backups for. Default `1`
   592  func (o ClusterOutput) BackupRetentionPeriod() pulumi.IntPtrOutput {
   593  	return o.ApplyT(func(v *Cluster) pulumi.IntPtrOutput { return v.BackupRetentionPeriod }).(pulumi.IntPtrOutput)
   594  }
   595  
   596  // The cluster identifier. If omitted, the provider will assign a random, unique identifier.
   597  func (o ClusterOutput) ClusterIdentifier() pulumi.StringOutput {
   598  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ClusterIdentifier }).(pulumi.StringOutput)
   599  }
   600  
   601  // Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
   602  func (o ClusterOutput) ClusterIdentifierPrefix() pulumi.StringOutput {
   603  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ClusterIdentifierPrefix }).(pulumi.StringOutput)
   604  }
   605  
   606  // List of DocumentDB Instances that are a part of this cluster
   607  func (o ClusterOutput) ClusterMembers() pulumi.StringArrayOutput {
   608  	return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.ClusterMembers }).(pulumi.StringArrayOutput)
   609  }
   610  
   611  // The DocumentDB Cluster Resource ID
   612  func (o ClusterOutput) ClusterResourceId() pulumi.StringOutput {
   613  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ClusterResourceId }).(pulumi.StringOutput)
   614  }
   615  
   616  // A cluster parameter group to associate with the cluster.
   617  func (o ClusterOutput) DbClusterParameterGroupName() pulumi.StringOutput {
   618  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.DbClusterParameterGroupName }).(pulumi.StringOutput)
   619  }
   620  
   621  // A DB subnet group to associate with this DB instance.
   622  func (o ClusterOutput) DbSubnetGroupName() pulumi.StringOutput {
   623  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.DbSubnetGroupName }).(pulumi.StringOutput)
   624  }
   625  
   626  // A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.
   627  func (o ClusterOutput) DeletionProtection() pulumi.BoolPtrOutput {
   628  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.DeletionProtection }).(pulumi.BoolPtrOutput)
   629  }
   630  
   631  // List of log types to export to cloudwatch. If omitted, no logs will be exported.
   632  // The following log types are supported: `audit`, `profiler`.
   633  func (o ClusterOutput) EnabledCloudwatchLogsExports() pulumi.StringArrayOutput {
   634  	return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.EnabledCloudwatchLogsExports }).(pulumi.StringArrayOutput)
   635  }
   636  
   637  // The DNS address of the DocumentDB instance
   638  func (o ClusterOutput) Endpoint() pulumi.StringOutput {
   639  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Endpoint }).(pulumi.StringOutput)
   640  }
   641  
   642  // The name of the database engine to be used for this DB cluster. Defaults to `docdb`. Valid values: `docdb`.
   643  func (o ClusterOutput) Engine() pulumi.StringPtrOutput {
   644  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.Engine }).(pulumi.StringPtrOutput)
   645  }
   646  
   647  // The database engine version. Updating this argument results in an outage.
   648  func (o ClusterOutput) EngineVersion() pulumi.StringOutput {
   649  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.EngineVersion }).(pulumi.StringOutput)
   650  }
   651  
   652  // The name of your final DB snapshot
   653  // when this DB cluster is deleted. If omitted, no final snapshot will be
   654  // made.
   655  func (o ClusterOutput) FinalSnapshotIdentifier() pulumi.StringPtrOutput {
   656  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.FinalSnapshotIdentifier }).(pulumi.StringPtrOutput)
   657  }
   658  
   659  // The global cluster identifier specified on `docdb.GlobalCluster`.
   660  func (o ClusterOutput) GlobalClusterIdentifier() pulumi.StringPtrOutput {
   661  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.GlobalClusterIdentifier }).(pulumi.StringPtrOutput)
   662  }
   663  
   664  // The Route53 Hosted Zone ID of the endpoint
   665  func (o ClusterOutput) HostedZoneId() pulumi.StringOutput {
   666  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.HostedZoneId }).(pulumi.StringOutput)
   667  }
   668  
   669  // The ARN for the KMS encryption key. When specifying `kmsKeyId`, `storageEncrypted` needs to be set to true.
   670  func (o ClusterOutput) KmsKeyId() pulumi.StringOutput {
   671  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.KmsKeyId }).(pulumi.StringOutput)
   672  }
   673  
   674  // Password for the master DB user. Note that this may
   675  // show up in logs, and it will be stored in the state file. Please refer to the DocumentDB Naming Constraints.
   676  func (o ClusterOutput) MasterPassword() pulumi.StringPtrOutput {
   677  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.MasterPassword }).(pulumi.StringPtrOutput)
   678  }
   679  
   680  // Username for the master DB user.
   681  func (o ClusterOutput) MasterUsername() pulumi.StringOutput {
   682  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.MasterUsername }).(pulumi.StringOutput)
   683  }
   684  
   685  // The port on which the DB accepts connections
   686  func (o ClusterOutput) Port() pulumi.IntPtrOutput {
   687  	return o.ApplyT(func(v *Cluster) pulumi.IntPtrOutput { return v.Port }).(pulumi.IntPtrOutput)
   688  }
   689  
   690  // The daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC
   691  // Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
   692  func (o ClusterOutput) PreferredBackupWindow() pulumi.StringOutput {
   693  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.PreferredBackupWindow }).(pulumi.StringOutput)
   694  }
   695  
   696  // The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
   697  func (o ClusterOutput) PreferredMaintenanceWindow() pulumi.StringOutput {
   698  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.PreferredMaintenanceWindow }).(pulumi.StringOutput)
   699  }
   700  
   701  // A read-only endpoint for the DocumentDB cluster, automatically load-balanced across replicas
   702  func (o ClusterOutput) ReaderEndpoint() pulumi.StringOutput {
   703  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ReaderEndpoint }).(pulumi.StringOutput)
   704  }
   705  
   706  // Determines whether a final DB snapshot is created before the DB cluster is deleted. If true is specified, no DB snapshot is created. If false is specified, a DB snapshot is created before the DB cluster is deleted, using the value from `finalSnapshotIdentifier`. Default is `false`.
   707  func (o ClusterOutput) SkipFinalSnapshot() pulumi.BoolPtrOutput {
   708  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.SkipFinalSnapshot }).(pulumi.BoolPtrOutput)
   709  }
   710  
   711  // Specifies whether or not to create this cluster from a snapshot. You can use either the name or ARN when specifying a DB cluster snapshot, or the ARN when specifying a DB snapshot. Automated snapshots **should not** be used for this attribute, unless from a different cluster. Automated snapshots are deleted as part of cluster destruction when the resource is replaced.
   712  func (o ClusterOutput) SnapshotIdentifier() pulumi.StringPtrOutput {
   713  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.SnapshotIdentifier }).(pulumi.StringPtrOutput)
   714  }
   715  
   716  // Specifies whether the DB cluster is encrypted. The default is `false`.
   717  func (o ClusterOutput) StorageEncrypted() pulumi.BoolPtrOutput {
   718  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.StorageEncrypted }).(pulumi.BoolPtrOutput)
   719  }
   720  
   721  // The storage type to associate with the DB cluster. Valid values: `standard`, `iopt1`.
   722  func (o ClusterOutput) StorageType() pulumi.StringPtrOutput {
   723  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.StorageType }).(pulumi.StringPtrOutput)
   724  }
   725  
   726  // A map of tags to assign to the DB cluster. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   727  func (o ClusterOutput) Tags() pulumi.StringMapOutput {
   728  	return o.ApplyT(func(v *Cluster) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   729  }
   730  
   731  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   732  //
   733  // Deprecated: Please use `tags` instead.
   734  func (o ClusterOutput) TagsAll() pulumi.StringMapOutput {
   735  	return o.ApplyT(func(v *Cluster) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   736  }
   737  
   738  // List of VPC security groups to associate
   739  // with the Cluster
   740  func (o ClusterOutput) VpcSecurityGroupIds() pulumi.StringArrayOutput {
   741  	return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.VpcSecurityGroupIds }).(pulumi.StringArrayOutput)
   742  }
   743  
   744  type ClusterArrayOutput struct{ *pulumi.OutputState }
   745  
   746  func (ClusterArrayOutput) ElementType() reflect.Type {
   747  	return reflect.TypeOf((*[]*Cluster)(nil)).Elem()
   748  }
   749  
   750  func (o ClusterArrayOutput) ToClusterArrayOutput() ClusterArrayOutput {
   751  	return o
   752  }
   753  
   754  func (o ClusterArrayOutput) ToClusterArrayOutputWithContext(ctx context.Context) ClusterArrayOutput {
   755  	return o
   756  }
   757  
   758  func (o ClusterArrayOutput) Index(i pulumi.IntInput) ClusterOutput {
   759  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Cluster {
   760  		return vs[0].([]*Cluster)[vs[1].(int)]
   761  	}).(ClusterOutput)
   762  }
   763  
   764  type ClusterMapOutput struct{ *pulumi.OutputState }
   765  
   766  func (ClusterMapOutput) ElementType() reflect.Type {
   767  	return reflect.TypeOf((*map[string]*Cluster)(nil)).Elem()
   768  }
   769  
   770  func (o ClusterMapOutput) ToClusterMapOutput() ClusterMapOutput {
   771  	return o
   772  }
   773  
   774  func (o ClusterMapOutput) ToClusterMapOutputWithContext(ctx context.Context) ClusterMapOutput {
   775  	return o
   776  }
   777  
   778  func (o ClusterMapOutput) MapIndex(k pulumi.StringInput) ClusterOutput {
   779  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Cluster {
   780  		return vs[0].(map[string]*Cluster)[vs[1].(string)]
   781  	}).(ClusterOutput)
   782  }
   783  
   784  func init() {
   785  	pulumi.RegisterInputType(reflect.TypeOf((*ClusterInput)(nil)).Elem(), &Cluster{})
   786  	pulumi.RegisterInputType(reflect.TypeOf((*ClusterArrayInput)(nil)).Elem(), ClusterArray{})
   787  	pulumi.RegisterInputType(reflect.TypeOf((*ClusterMapInput)(nil)).Elem(), ClusterMap{})
   788  	pulumi.RegisterOutputType(ClusterOutput{})
   789  	pulumi.RegisterOutputType(ClusterArrayOutput{})
   790  	pulumi.RegisterOutputType(ClusterMapOutput{})
   791  }