github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/docdb/elasticCluster.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  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Manages an AWS DocDB (DocumentDB) Elastic Cluster.
    16  //
    17  // ## Example Usage
    18  //
    19  // ### Basic Usage
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/docdb"
    28  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    29  //
    30  // )
    31  //
    32  //	func main() {
    33  //		pulumi.Run(func(ctx *pulumi.Context) error {
    34  //			_, err := docdb.NewElasticCluster(ctx, "example", &docdb.ElasticClusterArgs{
    35  //				Name:              pulumi.String("my-docdb-cluster"),
    36  //				AdminUserName:     pulumi.String("foo"),
    37  //				AdminUserPassword: pulumi.String("mustbeeightchars"),
    38  //				AuthType:          pulumi.String("PLAIN_TEXT"),
    39  //				ShardCapacity:     pulumi.Int(2),
    40  //				ShardCount:        pulumi.Int(1),
    41  //			})
    42  //			if err != nil {
    43  //				return err
    44  //			}
    45  //			return nil
    46  //		})
    47  //	}
    48  //
    49  // ```
    50  // <!--End PulumiCodeChooser -->
    51  //
    52  // ## Import
    53  //
    54  // Using `pulumi import`, import DocDB (DocumentDB) Elastic Cluster using the `arn` argument. For example,
    55  //
    56  // ```sh
    57  // $ pulumi import aws:docdb/elasticCluster:ElasticCluster example arn:aws:docdb-elastic:us-east-1:000011112222:cluster/12345678-7abc-def0-1234-56789abcdef
    58  // ```
    59  type ElasticCluster struct {
    60  	pulumi.CustomResourceState
    61  
    62  	// Name of the Elastic DocumentDB cluster administrator
    63  	AdminUserName pulumi.StringOutput `pulumi:"adminUserName"`
    64  	// Password for the Elastic DocumentDB cluster administrator. Can contain any printable ASCII characters. Must be at least 8 characters
    65  	AdminUserPassword pulumi.StringOutput `pulumi:"adminUserPassword"`
    66  	// ARN of the DocumentDB Elastic Cluster
    67  	Arn pulumi.StringOutput `pulumi:"arn"`
    68  	// Authentication type for the Elastic DocumentDB cluster. Valid values are `PLAIN_TEXT` and `SECRET_ARN`
    69  	AuthType pulumi.StringOutput `pulumi:"authType"`
    70  	// The DNS address of the DocDB instance
    71  	Endpoint pulumi.StringOutput `pulumi:"endpoint"`
    72  	// ARN of a KMS key that is used to encrypt the Elastic DocumentDB cluster. If not specified, the default encryption key that KMS creates for your account is used.
    73  	KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"`
    74  	// Name of the Elastic DocumentDB cluster
    75  	Name pulumi.StringOutput `pulumi:"name"`
    76  	// Weekly time range during which system maintenance can occur in UTC. Format: `ddd:hh24:mi-ddd:hh24:mi`. If not specified, AWS will choose a random 30-minute window on a random day of the week.
    77  	PreferredMaintenanceWindow pulumi.StringOutput `pulumi:"preferredMaintenanceWindow"`
    78  	// Number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64
    79  	ShardCapacity pulumi.IntOutput `pulumi:"shardCapacity"`
    80  	// Number of shards assigned to the elastic cluster. Maximum is 32
    81  	//
    82  	// The following arguments are optional:
    83  	ShardCount pulumi.IntOutput `pulumi:"shardCount"`
    84  	// IDs of subnets in which the Elastic DocumentDB Cluster operates.
    85  	SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"`
    86  	// A map of tags to assign to the collection. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    87  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    88  	// Deprecated: Please use `tags` instead.
    89  	TagsAll  pulumi.StringMapOutput          `pulumi:"tagsAll"`
    90  	Timeouts ElasticClusterTimeoutsPtrOutput `pulumi:"timeouts"`
    91  	// List of VPC security groups to associate with the Elastic DocumentDB Cluster
    92  	VpcSecurityGroupIds pulumi.StringArrayOutput `pulumi:"vpcSecurityGroupIds"`
    93  }
    94  
    95  // NewElasticCluster registers a new resource with the given unique name, arguments, and options.
    96  func NewElasticCluster(ctx *pulumi.Context,
    97  	name string, args *ElasticClusterArgs, opts ...pulumi.ResourceOption) (*ElasticCluster, error) {
    98  	if args == nil {
    99  		return nil, errors.New("missing one or more required arguments")
   100  	}
   101  
   102  	if args.AdminUserName == nil {
   103  		return nil, errors.New("invalid value for required argument 'AdminUserName'")
   104  	}
   105  	if args.AdminUserPassword == nil {
   106  		return nil, errors.New("invalid value for required argument 'AdminUserPassword'")
   107  	}
   108  	if args.AuthType == nil {
   109  		return nil, errors.New("invalid value for required argument 'AuthType'")
   110  	}
   111  	if args.ShardCapacity == nil {
   112  		return nil, errors.New("invalid value for required argument 'ShardCapacity'")
   113  	}
   114  	if args.ShardCount == nil {
   115  		return nil, errors.New("invalid value for required argument 'ShardCount'")
   116  	}
   117  	if args.AdminUserPassword != nil {
   118  		args.AdminUserPassword = pulumi.ToSecret(args.AdminUserPassword).(pulumi.StringInput)
   119  	}
   120  	secrets := pulumi.AdditionalSecretOutputs([]string{
   121  		"adminUserPassword",
   122  	})
   123  	opts = append(opts, secrets)
   124  	opts = internal.PkgResourceDefaultOpts(opts)
   125  	var resource ElasticCluster
   126  	err := ctx.RegisterResource("aws:docdb/elasticCluster:ElasticCluster", name, args, &resource, opts...)
   127  	if err != nil {
   128  		return nil, err
   129  	}
   130  	return &resource, nil
   131  }
   132  
   133  // GetElasticCluster gets an existing ElasticCluster resource's state with the given name, ID, and optional
   134  // state properties that are used to uniquely qualify the lookup (nil if not required).
   135  func GetElasticCluster(ctx *pulumi.Context,
   136  	name string, id pulumi.IDInput, state *ElasticClusterState, opts ...pulumi.ResourceOption) (*ElasticCluster, error) {
   137  	var resource ElasticCluster
   138  	err := ctx.ReadResource("aws:docdb/elasticCluster:ElasticCluster", name, id, state, &resource, opts...)
   139  	if err != nil {
   140  		return nil, err
   141  	}
   142  	return &resource, nil
   143  }
   144  
   145  // Input properties used for looking up and filtering ElasticCluster resources.
   146  type elasticClusterState struct {
   147  	// Name of the Elastic DocumentDB cluster administrator
   148  	AdminUserName *string `pulumi:"adminUserName"`
   149  	// Password for the Elastic DocumentDB cluster administrator. Can contain any printable ASCII characters. Must be at least 8 characters
   150  	AdminUserPassword *string `pulumi:"adminUserPassword"`
   151  	// ARN of the DocumentDB Elastic Cluster
   152  	Arn *string `pulumi:"arn"`
   153  	// Authentication type for the Elastic DocumentDB cluster. Valid values are `PLAIN_TEXT` and `SECRET_ARN`
   154  	AuthType *string `pulumi:"authType"`
   155  	// The DNS address of the DocDB instance
   156  	Endpoint *string `pulumi:"endpoint"`
   157  	// ARN of a KMS key that is used to encrypt the Elastic DocumentDB cluster. If not specified, the default encryption key that KMS creates for your account is used.
   158  	KmsKeyId *string `pulumi:"kmsKeyId"`
   159  	// Name of the Elastic DocumentDB cluster
   160  	Name *string `pulumi:"name"`
   161  	// Weekly time range during which system maintenance can occur in UTC. Format: `ddd:hh24:mi-ddd:hh24:mi`. If not specified, AWS will choose a random 30-minute window on a random day of the week.
   162  	PreferredMaintenanceWindow *string `pulumi:"preferredMaintenanceWindow"`
   163  	// Number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64
   164  	ShardCapacity *int `pulumi:"shardCapacity"`
   165  	// Number of shards assigned to the elastic cluster. Maximum is 32
   166  	//
   167  	// The following arguments are optional:
   168  	ShardCount *int `pulumi:"shardCount"`
   169  	// IDs of subnets in which the Elastic DocumentDB Cluster operates.
   170  	SubnetIds []string `pulumi:"subnetIds"`
   171  	// A map of tags to assign to the collection. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   172  	Tags map[string]string `pulumi:"tags"`
   173  	// Deprecated: Please use `tags` instead.
   174  	TagsAll  map[string]string       `pulumi:"tagsAll"`
   175  	Timeouts *ElasticClusterTimeouts `pulumi:"timeouts"`
   176  	// List of VPC security groups to associate with the Elastic DocumentDB Cluster
   177  	VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"`
   178  }
   179  
   180  type ElasticClusterState struct {
   181  	// Name of the Elastic DocumentDB cluster administrator
   182  	AdminUserName pulumi.StringPtrInput
   183  	// Password for the Elastic DocumentDB cluster administrator. Can contain any printable ASCII characters. Must be at least 8 characters
   184  	AdminUserPassword pulumi.StringPtrInput
   185  	// ARN of the DocumentDB Elastic Cluster
   186  	Arn pulumi.StringPtrInput
   187  	// Authentication type for the Elastic DocumentDB cluster. Valid values are `PLAIN_TEXT` and `SECRET_ARN`
   188  	AuthType pulumi.StringPtrInput
   189  	// The DNS address of the DocDB instance
   190  	Endpoint pulumi.StringPtrInput
   191  	// ARN of a KMS key that is used to encrypt the Elastic DocumentDB cluster. If not specified, the default encryption key that KMS creates for your account is used.
   192  	KmsKeyId pulumi.StringPtrInput
   193  	// Name of the Elastic DocumentDB cluster
   194  	Name pulumi.StringPtrInput
   195  	// Weekly time range during which system maintenance can occur in UTC. Format: `ddd:hh24:mi-ddd:hh24:mi`. If not specified, AWS will choose a random 30-minute window on a random day of the week.
   196  	PreferredMaintenanceWindow pulumi.StringPtrInput
   197  	// Number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64
   198  	ShardCapacity pulumi.IntPtrInput
   199  	// Number of shards assigned to the elastic cluster. Maximum is 32
   200  	//
   201  	// The following arguments are optional:
   202  	ShardCount pulumi.IntPtrInput
   203  	// IDs of subnets in which the Elastic DocumentDB Cluster operates.
   204  	SubnetIds pulumi.StringArrayInput
   205  	// A map of tags to assign to the collection. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   206  	Tags pulumi.StringMapInput
   207  	// Deprecated: Please use `tags` instead.
   208  	TagsAll  pulumi.StringMapInput
   209  	Timeouts ElasticClusterTimeoutsPtrInput
   210  	// List of VPC security groups to associate with the Elastic DocumentDB Cluster
   211  	VpcSecurityGroupIds pulumi.StringArrayInput
   212  }
   213  
   214  func (ElasticClusterState) ElementType() reflect.Type {
   215  	return reflect.TypeOf((*elasticClusterState)(nil)).Elem()
   216  }
   217  
   218  type elasticClusterArgs struct {
   219  	// Name of the Elastic DocumentDB cluster administrator
   220  	AdminUserName string `pulumi:"adminUserName"`
   221  	// Password for the Elastic DocumentDB cluster administrator. Can contain any printable ASCII characters. Must be at least 8 characters
   222  	AdminUserPassword string `pulumi:"adminUserPassword"`
   223  	// Authentication type for the Elastic DocumentDB cluster. Valid values are `PLAIN_TEXT` and `SECRET_ARN`
   224  	AuthType string `pulumi:"authType"`
   225  	// ARN of a KMS key that is used to encrypt the Elastic DocumentDB cluster. If not specified, the default encryption key that KMS creates for your account is used.
   226  	KmsKeyId *string `pulumi:"kmsKeyId"`
   227  	// Name of the Elastic DocumentDB cluster
   228  	Name *string `pulumi:"name"`
   229  	// Weekly time range during which system maintenance can occur in UTC. Format: `ddd:hh24:mi-ddd:hh24:mi`. If not specified, AWS will choose a random 30-minute window on a random day of the week.
   230  	PreferredMaintenanceWindow *string `pulumi:"preferredMaintenanceWindow"`
   231  	// Number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64
   232  	ShardCapacity int `pulumi:"shardCapacity"`
   233  	// Number of shards assigned to the elastic cluster. Maximum is 32
   234  	//
   235  	// The following arguments are optional:
   236  	ShardCount int `pulumi:"shardCount"`
   237  	// IDs of subnets in which the Elastic DocumentDB Cluster operates.
   238  	SubnetIds []string `pulumi:"subnetIds"`
   239  	// A map of tags to assign to the collection. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   240  	Tags     map[string]string       `pulumi:"tags"`
   241  	Timeouts *ElasticClusterTimeouts `pulumi:"timeouts"`
   242  	// List of VPC security groups to associate with the Elastic DocumentDB Cluster
   243  	VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"`
   244  }
   245  
   246  // The set of arguments for constructing a ElasticCluster resource.
   247  type ElasticClusterArgs struct {
   248  	// Name of the Elastic DocumentDB cluster administrator
   249  	AdminUserName pulumi.StringInput
   250  	// Password for the Elastic DocumentDB cluster administrator. Can contain any printable ASCII characters. Must be at least 8 characters
   251  	AdminUserPassword pulumi.StringInput
   252  	// Authentication type for the Elastic DocumentDB cluster. Valid values are `PLAIN_TEXT` and `SECRET_ARN`
   253  	AuthType pulumi.StringInput
   254  	// ARN of a KMS key that is used to encrypt the Elastic DocumentDB cluster. If not specified, the default encryption key that KMS creates for your account is used.
   255  	KmsKeyId pulumi.StringPtrInput
   256  	// Name of the Elastic DocumentDB cluster
   257  	Name pulumi.StringPtrInput
   258  	// Weekly time range during which system maintenance can occur in UTC. Format: `ddd:hh24:mi-ddd:hh24:mi`. If not specified, AWS will choose a random 30-minute window on a random day of the week.
   259  	PreferredMaintenanceWindow pulumi.StringPtrInput
   260  	// Number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64
   261  	ShardCapacity pulumi.IntInput
   262  	// Number of shards assigned to the elastic cluster. Maximum is 32
   263  	//
   264  	// The following arguments are optional:
   265  	ShardCount pulumi.IntInput
   266  	// IDs of subnets in which the Elastic DocumentDB Cluster operates.
   267  	SubnetIds pulumi.StringArrayInput
   268  	// A map of tags to assign to the collection. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   269  	Tags     pulumi.StringMapInput
   270  	Timeouts ElasticClusterTimeoutsPtrInput
   271  	// List of VPC security groups to associate with the Elastic DocumentDB Cluster
   272  	VpcSecurityGroupIds pulumi.StringArrayInput
   273  }
   274  
   275  func (ElasticClusterArgs) ElementType() reflect.Type {
   276  	return reflect.TypeOf((*elasticClusterArgs)(nil)).Elem()
   277  }
   278  
   279  type ElasticClusterInput interface {
   280  	pulumi.Input
   281  
   282  	ToElasticClusterOutput() ElasticClusterOutput
   283  	ToElasticClusterOutputWithContext(ctx context.Context) ElasticClusterOutput
   284  }
   285  
   286  func (*ElasticCluster) ElementType() reflect.Type {
   287  	return reflect.TypeOf((**ElasticCluster)(nil)).Elem()
   288  }
   289  
   290  func (i *ElasticCluster) ToElasticClusterOutput() ElasticClusterOutput {
   291  	return i.ToElasticClusterOutputWithContext(context.Background())
   292  }
   293  
   294  func (i *ElasticCluster) ToElasticClusterOutputWithContext(ctx context.Context) ElasticClusterOutput {
   295  	return pulumi.ToOutputWithContext(ctx, i).(ElasticClusterOutput)
   296  }
   297  
   298  // ElasticClusterArrayInput is an input type that accepts ElasticClusterArray and ElasticClusterArrayOutput values.
   299  // You can construct a concrete instance of `ElasticClusterArrayInput` via:
   300  //
   301  //	ElasticClusterArray{ ElasticClusterArgs{...} }
   302  type ElasticClusterArrayInput interface {
   303  	pulumi.Input
   304  
   305  	ToElasticClusterArrayOutput() ElasticClusterArrayOutput
   306  	ToElasticClusterArrayOutputWithContext(context.Context) ElasticClusterArrayOutput
   307  }
   308  
   309  type ElasticClusterArray []ElasticClusterInput
   310  
   311  func (ElasticClusterArray) ElementType() reflect.Type {
   312  	return reflect.TypeOf((*[]*ElasticCluster)(nil)).Elem()
   313  }
   314  
   315  func (i ElasticClusterArray) ToElasticClusterArrayOutput() ElasticClusterArrayOutput {
   316  	return i.ToElasticClusterArrayOutputWithContext(context.Background())
   317  }
   318  
   319  func (i ElasticClusterArray) ToElasticClusterArrayOutputWithContext(ctx context.Context) ElasticClusterArrayOutput {
   320  	return pulumi.ToOutputWithContext(ctx, i).(ElasticClusterArrayOutput)
   321  }
   322  
   323  // ElasticClusterMapInput is an input type that accepts ElasticClusterMap and ElasticClusterMapOutput values.
   324  // You can construct a concrete instance of `ElasticClusterMapInput` via:
   325  //
   326  //	ElasticClusterMap{ "key": ElasticClusterArgs{...} }
   327  type ElasticClusterMapInput interface {
   328  	pulumi.Input
   329  
   330  	ToElasticClusterMapOutput() ElasticClusterMapOutput
   331  	ToElasticClusterMapOutputWithContext(context.Context) ElasticClusterMapOutput
   332  }
   333  
   334  type ElasticClusterMap map[string]ElasticClusterInput
   335  
   336  func (ElasticClusterMap) ElementType() reflect.Type {
   337  	return reflect.TypeOf((*map[string]*ElasticCluster)(nil)).Elem()
   338  }
   339  
   340  func (i ElasticClusterMap) ToElasticClusterMapOutput() ElasticClusterMapOutput {
   341  	return i.ToElasticClusterMapOutputWithContext(context.Background())
   342  }
   343  
   344  func (i ElasticClusterMap) ToElasticClusterMapOutputWithContext(ctx context.Context) ElasticClusterMapOutput {
   345  	return pulumi.ToOutputWithContext(ctx, i).(ElasticClusterMapOutput)
   346  }
   347  
   348  type ElasticClusterOutput struct{ *pulumi.OutputState }
   349  
   350  func (ElasticClusterOutput) ElementType() reflect.Type {
   351  	return reflect.TypeOf((**ElasticCluster)(nil)).Elem()
   352  }
   353  
   354  func (o ElasticClusterOutput) ToElasticClusterOutput() ElasticClusterOutput {
   355  	return o
   356  }
   357  
   358  func (o ElasticClusterOutput) ToElasticClusterOutputWithContext(ctx context.Context) ElasticClusterOutput {
   359  	return o
   360  }
   361  
   362  // Name of the Elastic DocumentDB cluster administrator
   363  func (o ElasticClusterOutput) AdminUserName() pulumi.StringOutput {
   364  	return o.ApplyT(func(v *ElasticCluster) pulumi.StringOutput { return v.AdminUserName }).(pulumi.StringOutput)
   365  }
   366  
   367  // Password for the Elastic DocumentDB cluster administrator. Can contain any printable ASCII characters. Must be at least 8 characters
   368  func (o ElasticClusterOutput) AdminUserPassword() pulumi.StringOutput {
   369  	return o.ApplyT(func(v *ElasticCluster) pulumi.StringOutput { return v.AdminUserPassword }).(pulumi.StringOutput)
   370  }
   371  
   372  // ARN of the DocumentDB Elastic Cluster
   373  func (o ElasticClusterOutput) Arn() pulumi.StringOutput {
   374  	return o.ApplyT(func(v *ElasticCluster) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   375  }
   376  
   377  // Authentication type for the Elastic DocumentDB cluster. Valid values are `PLAIN_TEXT` and `SECRET_ARN`
   378  func (o ElasticClusterOutput) AuthType() pulumi.StringOutput {
   379  	return o.ApplyT(func(v *ElasticCluster) pulumi.StringOutput { return v.AuthType }).(pulumi.StringOutput)
   380  }
   381  
   382  // The DNS address of the DocDB instance
   383  func (o ElasticClusterOutput) Endpoint() pulumi.StringOutput {
   384  	return o.ApplyT(func(v *ElasticCluster) pulumi.StringOutput { return v.Endpoint }).(pulumi.StringOutput)
   385  }
   386  
   387  // ARN of a KMS key that is used to encrypt the Elastic DocumentDB cluster. If not specified, the default encryption key that KMS creates for your account is used.
   388  func (o ElasticClusterOutput) KmsKeyId() pulumi.StringOutput {
   389  	return o.ApplyT(func(v *ElasticCluster) pulumi.StringOutput { return v.KmsKeyId }).(pulumi.StringOutput)
   390  }
   391  
   392  // Name of the Elastic DocumentDB cluster
   393  func (o ElasticClusterOutput) Name() pulumi.StringOutput {
   394  	return o.ApplyT(func(v *ElasticCluster) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   395  }
   396  
   397  // Weekly time range during which system maintenance can occur in UTC. Format: `ddd:hh24:mi-ddd:hh24:mi`. If not specified, AWS will choose a random 30-minute window on a random day of the week.
   398  func (o ElasticClusterOutput) PreferredMaintenanceWindow() pulumi.StringOutput {
   399  	return o.ApplyT(func(v *ElasticCluster) pulumi.StringOutput { return v.PreferredMaintenanceWindow }).(pulumi.StringOutput)
   400  }
   401  
   402  // Number of vCPUs assigned to each elastic cluster shard. Maximum is 64. Allowed values are 2, 4, 8, 16, 32, 64
   403  func (o ElasticClusterOutput) ShardCapacity() pulumi.IntOutput {
   404  	return o.ApplyT(func(v *ElasticCluster) pulumi.IntOutput { return v.ShardCapacity }).(pulumi.IntOutput)
   405  }
   406  
   407  // Number of shards assigned to the elastic cluster. Maximum is 32
   408  //
   409  // The following arguments are optional:
   410  func (o ElasticClusterOutput) ShardCount() pulumi.IntOutput {
   411  	return o.ApplyT(func(v *ElasticCluster) pulumi.IntOutput { return v.ShardCount }).(pulumi.IntOutput)
   412  }
   413  
   414  // IDs of subnets in which the Elastic DocumentDB Cluster operates.
   415  func (o ElasticClusterOutput) SubnetIds() pulumi.StringArrayOutput {
   416  	return o.ApplyT(func(v *ElasticCluster) pulumi.StringArrayOutput { return v.SubnetIds }).(pulumi.StringArrayOutput)
   417  }
   418  
   419  // A map of tags to assign to the collection. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   420  func (o ElasticClusterOutput) Tags() pulumi.StringMapOutput {
   421  	return o.ApplyT(func(v *ElasticCluster) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   422  }
   423  
   424  // Deprecated: Please use `tags` instead.
   425  func (o ElasticClusterOutput) TagsAll() pulumi.StringMapOutput {
   426  	return o.ApplyT(func(v *ElasticCluster) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   427  }
   428  
   429  func (o ElasticClusterOutput) Timeouts() ElasticClusterTimeoutsPtrOutput {
   430  	return o.ApplyT(func(v *ElasticCluster) ElasticClusterTimeoutsPtrOutput { return v.Timeouts }).(ElasticClusterTimeoutsPtrOutput)
   431  }
   432  
   433  // List of VPC security groups to associate with the Elastic DocumentDB Cluster
   434  func (o ElasticClusterOutput) VpcSecurityGroupIds() pulumi.StringArrayOutput {
   435  	return o.ApplyT(func(v *ElasticCluster) pulumi.StringArrayOutput { return v.VpcSecurityGroupIds }).(pulumi.StringArrayOutput)
   436  }
   437  
   438  type ElasticClusterArrayOutput struct{ *pulumi.OutputState }
   439  
   440  func (ElasticClusterArrayOutput) ElementType() reflect.Type {
   441  	return reflect.TypeOf((*[]*ElasticCluster)(nil)).Elem()
   442  }
   443  
   444  func (o ElasticClusterArrayOutput) ToElasticClusterArrayOutput() ElasticClusterArrayOutput {
   445  	return o
   446  }
   447  
   448  func (o ElasticClusterArrayOutput) ToElasticClusterArrayOutputWithContext(ctx context.Context) ElasticClusterArrayOutput {
   449  	return o
   450  }
   451  
   452  func (o ElasticClusterArrayOutput) Index(i pulumi.IntInput) ElasticClusterOutput {
   453  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ElasticCluster {
   454  		return vs[0].([]*ElasticCluster)[vs[1].(int)]
   455  	}).(ElasticClusterOutput)
   456  }
   457  
   458  type ElasticClusterMapOutput struct{ *pulumi.OutputState }
   459  
   460  func (ElasticClusterMapOutput) ElementType() reflect.Type {
   461  	return reflect.TypeOf((*map[string]*ElasticCluster)(nil)).Elem()
   462  }
   463  
   464  func (o ElasticClusterMapOutput) ToElasticClusterMapOutput() ElasticClusterMapOutput {
   465  	return o
   466  }
   467  
   468  func (o ElasticClusterMapOutput) ToElasticClusterMapOutputWithContext(ctx context.Context) ElasticClusterMapOutput {
   469  	return o
   470  }
   471  
   472  func (o ElasticClusterMapOutput) MapIndex(k pulumi.StringInput) ElasticClusterOutput {
   473  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ElasticCluster {
   474  		return vs[0].(map[string]*ElasticCluster)[vs[1].(string)]
   475  	}).(ElasticClusterOutput)
   476  }
   477  
   478  func init() {
   479  	pulumi.RegisterInputType(reflect.TypeOf((*ElasticClusterInput)(nil)).Elem(), &ElasticCluster{})
   480  	pulumi.RegisterInputType(reflect.TypeOf((*ElasticClusterArrayInput)(nil)).Elem(), ElasticClusterArray{})
   481  	pulumi.RegisterInputType(reflect.TypeOf((*ElasticClusterMapInput)(nil)).Elem(), ElasticClusterMap{})
   482  	pulumi.RegisterOutputType(ElasticClusterOutput{})
   483  	pulumi.RegisterOutputType(ElasticClusterArrayOutput{})
   484  	pulumi.RegisterOutputType(ElasticClusterMapOutput{})
   485  }