github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/rds/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 rds
     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 a [RDS Aurora Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Aurora.html) or a [RDS Multi-AZ DB Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html). To manage cluster instances that inherit configuration from the cluster (when not running the cluster in `serverless` engine mode), see the `rds.ClusterInstance` resource. To manage non-Aurora DB instances (e.g., MySQL, PostgreSQL, SQL Server, etc.), see the `rds.Instance` resource.
    16  //
    17  // For information on the difference between the available Aurora MySQL engines see [Comparison between Aurora MySQL 1 and Aurora MySQL 2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html) in the Amazon RDS User Guide.
    18  //
    19  // Changes to an RDS Cluster can occur when you manually change a parameter, such as `port`, and are reflected in the next maintenance window. Because of this, this provider may report a difference in its planning phase because a modification has not yet taken place. You can use the `applyImmediately` flag to instruct the service to apply the change immediately (see documentation below).
    20  //
    21  // > **Note:** Multi-AZ DB clusters are supported only for the MySQL and PostgreSQL DB engines.
    22  //
    23  // > **Note:** using `applyImmediately` can result in a brief downtime as the server reboots. See the AWS Docs on [RDS Maintenance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html) for more information.
    24  //
    25  // > **Note:** All arguments including the username and password will be stored in the raw state as plain-text.
    26  // **NOTE on RDS Clusters and RDS Cluster Role Associations:** Pulumi provides both a standalone RDS Cluster Role Association - (an association between an RDS Cluster and a single IAM Role) and an RDS Cluster resource with `iamRoles` attributes. Use one resource or the other to associate IAM Roles and RDS Clusters. Not doing so will cause a conflict of associations and will result in the association being overwritten.
    27  //
    28  // ## Example Usage
    29  //
    30  // ### Aurora MySQL 2.x (MySQL 5.7)
    31  //
    32  // <!--Start PulumiCodeChooser -->
    33  // ```go
    34  // package main
    35  //
    36  // import (
    37  //
    38  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
    39  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    40  //
    41  // )
    42  //
    43  //	func main() {
    44  //		pulumi.Run(func(ctx *pulumi.Context) error {
    45  //			_, err := rds.NewCluster(ctx, "default", &rds.ClusterArgs{
    46  //				ClusterIdentifier: pulumi.String("aurora-cluster-demo"),
    47  //				Engine:            pulumi.String(rds.EngineTypeAuroraMysql),
    48  //				EngineVersion:     pulumi.String("5.7.mysql_aurora.2.03.2"),
    49  //				AvailabilityZones: pulumi.StringArray{
    50  //					pulumi.String("us-west-2a"),
    51  //					pulumi.String("us-west-2b"),
    52  //					pulumi.String("us-west-2c"),
    53  //				},
    54  //				DatabaseName:          pulumi.String("mydb"),
    55  //				MasterUsername:        pulumi.String("foo"),
    56  //				MasterPassword:        pulumi.String("bar"),
    57  //				BackupRetentionPeriod: pulumi.Int(5),
    58  //				PreferredBackupWindow: pulumi.String("07:00-09:00"),
    59  //			})
    60  //			if err != nil {
    61  //				return err
    62  //			}
    63  //			return nil
    64  //		})
    65  //	}
    66  //
    67  // ```
    68  // <!--End PulumiCodeChooser -->
    69  //
    70  // ### Aurora MySQL 1.x (MySQL 5.6)
    71  //
    72  // <!--Start PulumiCodeChooser -->
    73  // ```go
    74  // package main
    75  //
    76  // import (
    77  //
    78  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
    79  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    80  //
    81  // )
    82  //
    83  //	func main() {
    84  //		pulumi.Run(func(ctx *pulumi.Context) error {
    85  //			_, err := rds.NewCluster(ctx, "default", &rds.ClusterArgs{
    86  //				ClusterIdentifier: pulumi.String("aurora-cluster-demo"),
    87  //				AvailabilityZones: pulumi.StringArray{
    88  //					pulumi.String("us-west-2a"),
    89  //					pulumi.String("us-west-2b"),
    90  //					pulumi.String("us-west-2c"),
    91  //				},
    92  //				DatabaseName:          pulumi.String("mydb"),
    93  //				MasterUsername:        pulumi.String("foo"),
    94  //				MasterPassword:        pulumi.String("bar"),
    95  //				BackupRetentionPeriod: pulumi.Int(5),
    96  //				PreferredBackupWindow: pulumi.String("07:00-09:00"),
    97  //			})
    98  //			if err != nil {
    99  //				return err
   100  //			}
   101  //			return nil
   102  //		})
   103  //	}
   104  //
   105  // ```
   106  // <!--End PulumiCodeChooser -->
   107  //
   108  // ### Aurora with PostgreSQL engine
   109  //
   110  // <!--Start PulumiCodeChooser -->
   111  // ```go
   112  // package main
   113  //
   114  // import (
   115  //
   116  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
   117  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   118  //
   119  // )
   120  //
   121  //	func main() {
   122  //		pulumi.Run(func(ctx *pulumi.Context) error {
   123  //			_, err := rds.NewCluster(ctx, "postgresql", &rds.ClusterArgs{
   124  //				ClusterIdentifier: pulumi.String("aurora-cluster-demo"),
   125  //				Engine:            pulumi.String(rds.EngineTypeAuroraPostgresql),
   126  //				AvailabilityZones: pulumi.StringArray{
   127  //					pulumi.String("us-west-2a"),
   128  //					pulumi.String("us-west-2b"),
   129  //					pulumi.String("us-west-2c"),
   130  //				},
   131  //				DatabaseName:          pulumi.String("mydb"),
   132  //				MasterUsername:        pulumi.String("foo"),
   133  //				MasterPassword:        pulumi.String("bar"),
   134  //				BackupRetentionPeriod: pulumi.Int(5),
   135  //				PreferredBackupWindow: pulumi.String("07:00-09:00"),
   136  //			})
   137  //			if err != nil {
   138  //				return err
   139  //			}
   140  //			return nil
   141  //		})
   142  //	}
   143  //
   144  // ```
   145  // <!--End PulumiCodeChooser -->
   146  //
   147  // ### RDS Multi-AZ Cluster
   148  //
   149  // > More information about RDS Multi-AZ Clusters can be found in the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html).
   150  //
   151  // To create a Multi-AZ RDS cluster, you must additionally specify the `engine`, `storageType`, `allocatedStorage`, `iops` and `dbClusterInstanceClass` attributes.
   152  //
   153  // <!--Start PulumiCodeChooser -->
   154  // ```go
   155  // package main
   156  //
   157  // import (
   158  //
   159  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
   160  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   161  //
   162  // )
   163  //
   164  //	func main() {
   165  //		pulumi.Run(func(ctx *pulumi.Context) error {
   166  //			_, err := rds.NewCluster(ctx, "example", &rds.ClusterArgs{
   167  //				ClusterIdentifier: pulumi.String("example"),
   168  //				AvailabilityZones: pulumi.StringArray{
   169  //					pulumi.String("us-west-2a"),
   170  //					pulumi.String("us-west-2b"),
   171  //					pulumi.String("us-west-2c"),
   172  //				},
   173  //				Engine:                 pulumi.String("mysql"),
   174  //				DbClusterInstanceClass: pulumi.String("db.r6gd.xlarge"),
   175  //				StorageType:            pulumi.String("io1"),
   176  //				AllocatedStorage:       pulumi.Int(100),
   177  //				Iops:                   pulumi.Int(1000),
   178  //				MasterUsername:         pulumi.String("test"),
   179  //				MasterPassword:         pulumi.String("mustbeeightcharaters"),
   180  //			})
   181  //			if err != nil {
   182  //				return err
   183  //			}
   184  //			return nil
   185  //		})
   186  //	}
   187  //
   188  // ```
   189  // <!--End PulumiCodeChooser -->
   190  //
   191  // ### RDS Serverless v2 Cluster
   192  //
   193  // > More information about RDS Serverless v2 Clusters can be found in the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html).
   194  //
   195  // > **Note:** Unlike Serverless v1, in Serverless v2 the `storageEncrypted` value is set to `false` by default.
   196  // This is because Serverless v1 uses the `serverless` `engineMode`, but Serverless v2 uses the `provisioned` `engineMode`.
   197  //
   198  // To create a Serverless v2 RDS cluster, you must additionally specify the `engineMode` and `serverlessv2ScalingConfiguration` attributes. An `rds.ClusterInstance` resource must also be added to the cluster with the `instanceClass` attribute specified.
   199  //
   200  // <!--Start PulumiCodeChooser -->
   201  // ```go
   202  // package main
   203  //
   204  // import (
   205  //
   206  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
   207  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   208  //
   209  // )
   210  //
   211  //	func main() {
   212  //		pulumi.Run(func(ctx *pulumi.Context) error {
   213  //			example, err := rds.NewCluster(ctx, "example", &rds.ClusterArgs{
   214  //				ClusterIdentifier: pulumi.String("example"),
   215  //				Engine:            pulumi.String(rds.EngineTypeAuroraPostgresql),
   216  //				EngineMode:        pulumi.String(rds.EngineModeProvisioned),
   217  //				EngineVersion:     pulumi.String("13.6"),
   218  //				DatabaseName:      pulumi.String("test"),
   219  //				MasterUsername:    pulumi.String("test"),
   220  //				MasterPassword:    pulumi.String("must_be_eight_characters"),
   221  //				StorageEncrypted:  pulumi.Bool(true),
   222  //				Serverlessv2ScalingConfiguration: &rds.ClusterServerlessv2ScalingConfigurationArgs{
   223  //					MaxCapacity: pulumi.Float64(1),
   224  //					MinCapacity: pulumi.Float64(0.5),
   225  //				},
   226  //			})
   227  //			if err != nil {
   228  //				return err
   229  //			}
   230  //			_, err = rds.NewClusterInstance(ctx, "example", &rds.ClusterInstanceArgs{
   231  //				ClusterIdentifier: example.ID(),
   232  //				InstanceClass:     pulumi.String("db.serverless"),
   233  //				Engine:            example.Engine,
   234  //				EngineVersion:     example.EngineVersion,
   235  //			})
   236  //			if err != nil {
   237  //				return err
   238  //			}
   239  //			return nil
   240  //		})
   241  //	}
   242  //
   243  // ```
   244  // <!--End PulumiCodeChooser -->
   245  //
   246  // ### RDS/Aurora Managed Master Passwords via Secrets Manager, default KMS Key
   247  //
   248  // > More information about RDS/Aurora Aurora integrates with Secrets Manager to manage master user passwords for your DB clusters can be found in the [RDS User Guide](https://aws.amazon.com/about-aws/whats-new/2022/12/amazon-rds-integration-aws-secrets-manager/) and [Aurora User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html).
   249  //
   250  // You can specify the `manageMasterUserPassword` attribute to enable managing the master password with Secrets Manager. You can also update an existing cluster to use Secrets Manager by specify the `manageMasterUserPassword` attribute and removing the `masterPassword` attribute (removal is required).
   251  //
   252  // <!--Start PulumiCodeChooser -->
   253  // ```go
   254  // package main
   255  //
   256  // import (
   257  //
   258  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
   259  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   260  //
   261  // )
   262  //
   263  //	func main() {
   264  //		pulumi.Run(func(ctx *pulumi.Context) error {
   265  //			_, err := rds.NewCluster(ctx, "test", &rds.ClusterArgs{
   266  //				ClusterIdentifier:        pulumi.String("example"),
   267  //				DatabaseName:             pulumi.String("test"),
   268  //				ManageMasterUserPassword: pulumi.Bool(true),
   269  //				MasterUsername:           pulumi.String("test"),
   270  //			})
   271  //			if err != nil {
   272  //				return err
   273  //			}
   274  //			return nil
   275  //		})
   276  //	}
   277  //
   278  // ```
   279  // <!--End PulumiCodeChooser -->
   280  //
   281  // ### RDS/Aurora Managed Master Passwords via Secrets Manager, specific KMS Key
   282  //
   283  // > More information about RDS/Aurora Aurora integrates with Secrets Manager to manage master user passwords for your DB clusters can be found in the [RDS User Guide](https://aws.amazon.com/about-aws/whats-new/2022/12/amazon-rds-integration-aws-secrets-manager/) and [Aurora User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html).
   284  //
   285  // You can specify the `masterUserSecretKmsKeyId` attribute to specify a specific KMS Key.
   286  //
   287  // <!--Start PulumiCodeChooser -->
   288  // ```go
   289  // package main
   290  //
   291  // import (
   292  //
   293  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms"
   294  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
   295  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   296  //
   297  // )
   298  //
   299  //	func main() {
   300  //		pulumi.Run(func(ctx *pulumi.Context) error {
   301  //			example, err := kms.NewKey(ctx, "example", &kms.KeyArgs{
   302  //				Description: pulumi.String("Example KMS Key"),
   303  //			})
   304  //			if err != nil {
   305  //				return err
   306  //			}
   307  //			_, err = rds.NewCluster(ctx, "test", &rds.ClusterArgs{
   308  //				ClusterIdentifier:        pulumi.String("example"),
   309  //				DatabaseName:             pulumi.String("test"),
   310  //				ManageMasterUserPassword: pulumi.Bool(true),
   311  //				MasterUsername:           pulumi.String("test"),
   312  //				MasterUserSecretKmsKeyId: example.KeyId,
   313  //			})
   314  //			if err != nil {
   315  //				return err
   316  //			}
   317  //			return nil
   318  //		})
   319  //	}
   320  //
   321  // ```
   322  // <!--End PulumiCodeChooser -->
   323  //
   324  // ### Global Cluster Restored From Snapshot
   325  //
   326  // <!--Start PulumiCodeChooser -->
   327  // ```go
   328  // package main
   329  //
   330  // import (
   331  //
   332  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
   333  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   334  //
   335  // )
   336  //
   337  //	func main() {
   338  //		pulumi.Run(func(ctx *pulumi.Context) error {
   339  //			example, err := rds.LookupClusterSnapshot(ctx, &rds.LookupClusterSnapshotArgs{
   340  //				DbClusterIdentifier: pulumi.StringRef("example-original-cluster"),
   341  //				MostRecent:          pulumi.BoolRef(true),
   342  //			}, nil)
   343  //			if err != nil {
   344  //				return err
   345  //			}
   346  //			exampleCluster, err := rds.NewCluster(ctx, "example", &rds.ClusterArgs{
   347  //				Engine:             pulumi.String(rds.EngineTypeAurora),
   348  //				EngineVersion:      pulumi.String("5.6.mysql_aurora.1.22.4"),
   349  //				ClusterIdentifier:  pulumi.String("example"),
   350  //				SnapshotIdentifier: pulumi.String(example.Id),
   351  //			})
   352  //			if err != nil {
   353  //				return err
   354  //			}
   355  //			_, err = rds.NewGlobalCluster(ctx, "example", &rds.GlobalClusterArgs{
   356  //				GlobalClusterIdentifier:   pulumi.String("example"),
   357  //				SourceDbClusterIdentifier: exampleCluster.Arn,
   358  //				ForceDestroy:              pulumi.Bool(true),
   359  //			})
   360  //			if err != nil {
   361  //				return err
   362  //			}
   363  //			return nil
   364  //		})
   365  //	}
   366  //
   367  // ```
   368  // <!--End PulumiCodeChooser -->
   369  //
   370  // ## Import
   371  //
   372  // Using `pulumi import`, import RDS Clusters using the `cluster_identifier`. For example:
   373  //
   374  // ```sh
   375  // $ pulumi import aws:rds/cluster:Cluster aurora_cluster aurora-prod-cluster
   376  // ```
   377  type Cluster struct {
   378  	pulumi.CustomResourceState
   379  
   380  	// The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.
   381  	AllocatedStorage pulumi.IntOutput `pulumi:"allocatedStorage"`
   382  	// Enable to allow major engine version upgrades when changing engine versions. Defaults to `false`.
   383  	AllowMajorVersionUpgrade pulumi.BoolPtrOutput `pulumi:"allowMajorVersionUpgrade"`
   384  	// Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is `false`. See [Amazon RDS Documentation for more information.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html)
   385  	ApplyImmediately pulumi.BoolOutput `pulumi:"applyImmediately"`
   386  	// Amazon Resource Name (ARN) of cluster
   387  	Arn pulumi.StringOutput `pulumi:"arn"`
   388  	// List of EC2 Availability Zones for the DB cluster storage where DB cluster instances can be created.
   389  	// RDS automatically assigns 3 AZs if less than 3 AZs are configured, which will show as a difference requiring resource recreation next pulumi up.
   390  	// We recommend specifying 3 AZs or using the `lifecycle` configuration block `ignoreChanges` argument if necessary.
   391  	// A maximum of 3 AZs can be configured.
   392  	AvailabilityZones pulumi.StringArrayOutput `pulumi:"availabilityZones"`
   393  	// Target backtrack window, in seconds. Only available for `aurora` and `aurora-mysql` engines currently. To disable backtracking, set this value to `0`. Defaults to `0`. Must be between `0` and `259200` (72 hours)
   394  	BacktrackWindow pulumi.IntPtrOutput `pulumi:"backtrackWindow"`
   395  	// Days to retain backups for. Default `1`
   396  	BackupRetentionPeriod pulumi.IntOutput `pulumi:"backupRetentionPeriod"`
   397  	// The cluster identifier. If omitted, this provider will assign a random, unique identifier.
   398  	ClusterIdentifier pulumi.StringOutput `pulumi:"clusterIdentifier"`
   399  	// Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
   400  	ClusterIdentifierPrefix pulumi.StringOutput `pulumi:"clusterIdentifierPrefix"`
   401  	// List of RDS Instances that are a part of this cluster
   402  	ClusterMembers pulumi.StringArrayOutput `pulumi:"clusterMembers"`
   403  	// RDS Cluster Resource ID
   404  	ClusterResourceId pulumi.StringOutput `pulumi:"clusterResourceId"`
   405  	// Copy all Cluster `tags` to snapshots. Default is `false`.
   406  	CopyTagsToSnapshot pulumi.BoolPtrOutput `pulumi:"copyTagsToSnapshot"`
   407  	// Name for an automatically created database on cluster creation. There are different naming restrictions per database engine: [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints)
   408  	DatabaseName pulumi.StringOutput `pulumi:"databaseName"`
   409  	// The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example `db.m6g.xlarge`. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes and availability for your engine, see [DB instance class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) in the Amazon RDS User Guide.
   410  	DbClusterInstanceClass pulumi.StringPtrOutput `pulumi:"dbClusterInstanceClass"`
   411  	// A cluster parameter group to associate with the cluster.
   412  	DbClusterParameterGroupName pulumi.StringOutput `pulumi:"dbClusterParameterGroupName"`
   413  	// Instance parameter group to associate with all instances of the DB cluster. The `dbInstanceParameterGroupName` parameter is only valid in combination with the `allowMajorVersionUpgrade` parameter.
   414  	DbInstanceParameterGroupName pulumi.StringPtrOutput `pulumi:"dbInstanceParameterGroupName"`
   415  	// DB subnet group to associate with this DB cluster.
   416  	// **NOTE:** This must match the `dbSubnetGroupName` specified on every `rds.ClusterInstance` in the cluster.
   417  	DbSubnetGroupName pulumi.StringOutput `pulumi:"dbSubnetGroupName"`
   418  	// For use with RDS Custom.
   419  	DbSystemId pulumi.StringOutput `pulumi:"dbSystemId"`
   420  	// Specifies whether to remove automated backups immediately after the DB cluster is deleted. Default is `true`.
   421  	DeleteAutomatedBackups pulumi.BoolPtrOutput `pulumi:"deleteAutomatedBackups"`
   422  	// If the DB cluster should have deletion protection enabled.
   423  	// The database can't be deleted when this value is set to `true`.
   424  	// The default is `false`.
   425  	DeletionProtection pulumi.BoolPtrOutput `pulumi:"deletionProtection"`
   426  	// The ID of the Directory Service Active Directory domain to create the cluster in.
   427  	Domain pulumi.StringPtrOutput `pulumi:"domain"`
   428  	// The name of the IAM role to be used when making API calls to the Directory Service.
   429  	DomainIamRoleName pulumi.StringPtrOutput `pulumi:"domainIamRoleName"`
   430  	// Whether cluster should forward writes to an associated global cluster. Applied to secondary clusters to enable them to forward writes to an `rds.GlobalCluster`'s primary cluster. See the [User Guide for Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-write-forwarding.html) for more information.
   431  	EnableGlobalWriteForwarding pulumi.BoolPtrOutput `pulumi:"enableGlobalWriteForwarding"`
   432  	// Enable HTTP endpoint (data API). Only valid when `engineMode` is set to `serverless`.
   433  	EnableHttpEndpoint pulumi.BoolPtrOutput `pulumi:"enableHttpEndpoint"`
   434  	// Whether read replicas can forward write operations to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.. See the [User Guide for Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-write-forwarding.html) for more information. **NOTE:** Local write forwarding requires Aurora MySQL version 3.04 or higher.
   435  	EnableLocalWriteForwarding pulumi.BoolPtrOutput `pulumi:"enableLocalWriteForwarding"`
   436  	// Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: `audit`, `error`, `general`, `slowquery`, `postgresql` (PostgreSQL).
   437  	EnabledCloudwatchLogsExports pulumi.StringArrayOutput `pulumi:"enabledCloudwatchLogsExports"`
   438  	// DNS address of the RDS instance
   439  	Endpoint pulumi.StringOutput `pulumi:"endpoint"`
   440  	// Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters).
   441  	Engine pulumi.StringOutput `pulumi:"engine"`
   442  	// Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`.
   443  	EngineMode pulumi.StringPtrOutput `pulumi:"engineMode"`
   444  	// Database engine version. Updating this argument results in an outage. See the [Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) and [Aurora Postgres](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.html) documentation for your configured engine to determine this value, or by running `aws rds describe-db-engine-versions`. For example with Aurora MySQL 2, a potential value for this argument is `5.7.mysql_aurora.2.03.2`. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute `engineVersionActual`, , see Attribute Reference below.
   445  	EngineVersion pulumi.StringOutput `pulumi:"engineVersion"`
   446  	// Running version of the database.
   447  	EngineVersionActual pulumi.StringOutput `pulumi:"engineVersionActual"`
   448  	// Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made.
   449  	FinalSnapshotIdentifier pulumi.StringPtrOutput `pulumi:"finalSnapshotIdentifier"`
   450  	// Global cluster identifier specified on `rds.GlobalCluster`.
   451  	GlobalClusterIdentifier pulumi.StringPtrOutput `pulumi:"globalClusterIdentifier"`
   452  	// Route53 Hosted Zone ID of the endpoint
   453  	HostedZoneId pulumi.StringOutput `pulumi:"hostedZoneId"`
   454  	// Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) for availability and limitations.
   455  	IamDatabaseAuthenticationEnabled pulumi.BoolPtrOutput `pulumi:"iamDatabaseAuthenticationEnabled"`
   456  	// List of ARNs for the IAM roles to associate to the RDS Cluster.
   457  	IamRoles pulumi.StringArrayOutput `pulumi:"iamRoles"`
   458  	// Amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster. For information about valid Iops values, see [Amazon RDS Provisioned IOPS storage to improve performance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). Must be a multiple between .5 and 50 of the storage amount for the DB cluster.
   459  	Iops pulumi.IntPtrOutput `pulumi:"iops"`
   460  	// ARN for the KMS encryption key. When specifying `kmsKeyId`, `storageEncrypted` needs to be set to true.
   461  	KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"`
   462  	// Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if `masterPassword` is provided.
   463  	ManageMasterUserPassword pulumi.BoolPtrOutput `pulumi:"manageMasterUserPassword"`
   464  	// Password for the master DB user. Note that this may show up in logs, and it will be stored in the state file. Please refer to the [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints). Cannot be set if `manageMasterUserPassword` is set to `true`.
   465  	MasterPassword pulumi.StringPtrOutput `pulumi:"masterPassword"`
   466  	// Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used.
   467  	MasterUserSecretKmsKeyId pulumi.StringOutput `pulumi:"masterUserSecretKmsKeyId"`
   468  	// Block that specifies the master user secret. Only available when `manageMasterUserPassword` is set to true. Documented below.
   469  	MasterUserSecrets ClusterMasterUserSecretArrayOutput `pulumi:"masterUserSecrets"`
   470  	// Username for the master DB user. Please refer to the [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints). This argument does not support in-place updates and cannot be changed during a restore from snapshot.
   471  	MasterUsername pulumi.StringOutput `pulumi:"masterUsername"`
   472  	// Network type of the cluster. Valid values: `IPV4`, `DUAL`.
   473  	NetworkType pulumi.StringOutput `pulumi:"networkType"`
   474  	// Port on which the DB accepts connections
   475  	Port pulumi.IntOutput `pulumi:"port"`
   476  	// Daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
   477  	PreferredBackupWindow pulumi.StringOutput `pulumi:"preferredBackupWindow"`
   478  	// Weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
   479  	PreferredMaintenanceWindow pulumi.StringOutput `pulumi:"preferredMaintenanceWindow"`
   480  	// Read-only endpoint for the Aurora cluster, automatically
   481  	// load-balanced across replicas
   482  	ReaderEndpoint pulumi.StringOutput `pulumi:"readerEndpoint"`
   483  	// ARN of a source DB cluster or DB instance if this DB cluster is to be created as a Read Replica. If DB Cluster is part of a Global Cluster, use the `lifecycle` configuration block `ignoreChanges` argument to prevent this provider from showing differences for this argument instead of configuring this value.
   484  	ReplicationSourceIdentifier pulumi.StringPtrOutput `pulumi:"replicationSourceIdentifier"`
   485  	// Nested attribute for [point in time restore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-pitr.html). More details below.
   486  	RestoreToPointInTime ClusterRestoreToPointInTimePtrOutput `pulumi:"restoreToPointInTime"`
   487  	S3Import             ClusterS3ImportPtrOutput             `pulumi:"s3Import"`
   488  	// Nested attribute with scaling properties. Only valid when `engineMode` is set to `serverless`. More details below.
   489  	ScalingConfiguration ClusterScalingConfigurationPtrOutput `pulumi:"scalingConfiguration"`
   490  	// Nested attribute with scaling properties for ServerlessV2. Only valid when `engineMode` is set to `provisioned`. More details below.
   491  	Serverlessv2ScalingConfiguration ClusterServerlessv2ScalingConfigurationPtrOutput `pulumi:"serverlessv2ScalingConfiguration"`
   492  	// 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`.
   493  	SkipFinalSnapshot pulumi.BoolPtrOutput `pulumi:"skipFinalSnapshot"`
   494  	// 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. Conflicts with `globalClusterIdentifier`. Clusters cannot be restored from snapshot **and** joined to an existing global cluster in a single operation. See the [AWS documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-getting-started.html#aurora-global-database.use-snapshot) or the Global Cluster Restored From Snapshot example for instructions on building a global cluster starting with a snapshot.
   495  	SnapshotIdentifier pulumi.StringPtrOutput `pulumi:"snapshotIdentifier"`
   496  	// The source region for an encrypted replica DB cluster.
   497  	SourceRegion pulumi.StringPtrOutput `pulumi:"sourceRegion"`
   498  	// Specifies whether the DB cluster is encrypted. The default is `false` for `provisioned` `engineMode` and `true` for `serverless` `engineMode`. When restoring an unencrypted `snapshotIdentifier`, the `kmsKeyId` argument must be provided to encrypt the restored cluster. The provider will only perform drift detection if a configuration value is provided.
   499  	StorageEncrypted pulumi.BoolOutput `pulumi:"storageEncrypted"`
   500  	// (Forces new for Multi-AZ DB clusters) Specifies the storage type to be associated with the DB cluster. For Aurora DB clusters, `storageType` modifications can be done in-place. For Multi-AZ DB Clusters, the `iops` argument must also be set. Valid values are: `""`, `aurora-iopt1` (Aurora DB Clusters); `io1`, `io2` (Multi-AZ DB Clusters). Default: `""` (Aurora DB Clusters); `io1` (Multi-AZ DB Clusters).
   501  	StorageType pulumi.StringOutput `pulumi:"storageType"`
   502  	// 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.
   503  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   504  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   505  	//
   506  	// Deprecated: Please use `tags` instead.
   507  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   508  	// List of VPC security groups to associate with the Cluster
   509  	VpcSecurityGroupIds pulumi.StringArrayOutput `pulumi:"vpcSecurityGroupIds"`
   510  }
   511  
   512  // NewCluster registers a new resource with the given unique name, arguments, and options.
   513  func NewCluster(ctx *pulumi.Context,
   514  	name string, args *ClusterArgs, opts ...pulumi.ResourceOption) (*Cluster, error) {
   515  	if args == nil {
   516  		return nil, errors.New("missing one or more required arguments")
   517  	}
   518  
   519  	if args.Engine == nil {
   520  		return nil, errors.New("invalid value for required argument 'Engine'")
   521  	}
   522  	if args.MasterPassword != nil {
   523  		args.MasterPassword = pulumi.ToSecret(args.MasterPassword).(pulumi.StringPtrInput)
   524  	}
   525  	secrets := pulumi.AdditionalSecretOutputs([]string{
   526  		"masterPassword",
   527  	})
   528  	opts = append(opts, secrets)
   529  	opts = internal.PkgResourceDefaultOpts(opts)
   530  	var resource Cluster
   531  	err := ctx.RegisterResource("aws:rds/cluster:Cluster", name, args, &resource, opts...)
   532  	if err != nil {
   533  		return nil, err
   534  	}
   535  	return &resource, nil
   536  }
   537  
   538  // GetCluster gets an existing Cluster resource's state with the given name, ID, and optional
   539  // state properties that are used to uniquely qualify the lookup (nil if not required).
   540  func GetCluster(ctx *pulumi.Context,
   541  	name string, id pulumi.IDInput, state *ClusterState, opts ...pulumi.ResourceOption) (*Cluster, error) {
   542  	var resource Cluster
   543  	err := ctx.ReadResource("aws:rds/cluster:Cluster", name, id, state, &resource, opts...)
   544  	if err != nil {
   545  		return nil, err
   546  	}
   547  	return &resource, nil
   548  }
   549  
   550  // Input properties used for looking up and filtering Cluster resources.
   551  type clusterState struct {
   552  	// The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.
   553  	AllocatedStorage *int `pulumi:"allocatedStorage"`
   554  	// Enable to allow major engine version upgrades when changing engine versions. Defaults to `false`.
   555  	AllowMajorVersionUpgrade *bool `pulumi:"allowMajorVersionUpgrade"`
   556  	// Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is `false`. See [Amazon RDS Documentation for more information.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html)
   557  	ApplyImmediately *bool `pulumi:"applyImmediately"`
   558  	// Amazon Resource Name (ARN) of cluster
   559  	Arn *string `pulumi:"arn"`
   560  	// List of EC2 Availability Zones for the DB cluster storage where DB cluster instances can be created.
   561  	// RDS automatically assigns 3 AZs if less than 3 AZs are configured, which will show as a difference requiring resource recreation next pulumi up.
   562  	// We recommend specifying 3 AZs or using the `lifecycle` configuration block `ignoreChanges` argument if necessary.
   563  	// A maximum of 3 AZs can be configured.
   564  	AvailabilityZones []string `pulumi:"availabilityZones"`
   565  	// Target backtrack window, in seconds. Only available for `aurora` and `aurora-mysql` engines currently. To disable backtracking, set this value to `0`. Defaults to `0`. Must be between `0` and `259200` (72 hours)
   566  	BacktrackWindow *int `pulumi:"backtrackWindow"`
   567  	// Days to retain backups for. Default `1`
   568  	BackupRetentionPeriod *int `pulumi:"backupRetentionPeriod"`
   569  	// The cluster identifier. If omitted, this provider will assign a random, unique identifier.
   570  	ClusterIdentifier *string `pulumi:"clusterIdentifier"`
   571  	// Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
   572  	ClusterIdentifierPrefix *string `pulumi:"clusterIdentifierPrefix"`
   573  	// List of RDS Instances that are a part of this cluster
   574  	ClusterMembers []string `pulumi:"clusterMembers"`
   575  	// RDS Cluster Resource ID
   576  	ClusterResourceId *string `pulumi:"clusterResourceId"`
   577  	// Copy all Cluster `tags` to snapshots. Default is `false`.
   578  	CopyTagsToSnapshot *bool `pulumi:"copyTagsToSnapshot"`
   579  	// Name for an automatically created database on cluster creation. There are different naming restrictions per database engine: [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints)
   580  	DatabaseName *string `pulumi:"databaseName"`
   581  	// The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example `db.m6g.xlarge`. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes and availability for your engine, see [DB instance class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) in the Amazon RDS User Guide.
   582  	DbClusterInstanceClass *string `pulumi:"dbClusterInstanceClass"`
   583  	// A cluster parameter group to associate with the cluster.
   584  	DbClusterParameterGroupName *string `pulumi:"dbClusterParameterGroupName"`
   585  	// Instance parameter group to associate with all instances of the DB cluster. The `dbInstanceParameterGroupName` parameter is only valid in combination with the `allowMajorVersionUpgrade` parameter.
   586  	DbInstanceParameterGroupName *string `pulumi:"dbInstanceParameterGroupName"`
   587  	// DB subnet group to associate with this DB cluster.
   588  	// **NOTE:** This must match the `dbSubnetGroupName` specified on every `rds.ClusterInstance` in the cluster.
   589  	DbSubnetGroupName *string `pulumi:"dbSubnetGroupName"`
   590  	// For use with RDS Custom.
   591  	DbSystemId *string `pulumi:"dbSystemId"`
   592  	// Specifies whether to remove automated backups immediately after the DB cluster is deleted. Default is `true`.
   593  	DeleteAutomatedBackups *bool `pulumi:"deleteAutomatedBackups"`
   594  	// If the DB cluster should have deletion protection enabled.
   595  	// The database can't be deleted when this value is set to `true`.
   596  	// The default is `false`.
   597  	DeletionProtection *bool `pulumi:"deletionProtection"`
   598  	// The ID of the Directory Service Active Directory domain to create the cluster in.
   599  	Domain *string `pulumi:"domain"`
   600  	// The name of the IAM role to be used when making API calls to the Directory Service.
   601  	DomainIamRoleName *string `pulumi:"domainIamRoleName"`
   602  	// Whether cluster should forward writes to an associated global cluster. Applied to secondary clusters to enable them to forward writes to an `rds.GlobalCluster`'s primary cluster. See the [User Guide for Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-write-forwarding.html) for more information.
   603  	EnableGlobalWriteForwarding *bool `pulumi:"enableGlobalWriteForwarding"`
   604  	// Enable HTTP endpoint (data API). Only valid when `engineMode` is set to `serverless`.
   605  	EnableHttpEndpoint *bool `pulumi:"enableHttpEndpoint"`
   606  	// Whether read replicas can forward write operations to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.. See the [User Guide for Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-write-forwarding.html) for more information. **NOTE:** Local write forwarding requires Aurora MySQL version 3.04 or higher.
   607  	EnableLocalWriteForwarding *bool `pulumi:"enableLocalWriteForwarding"`
   608  	// Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: `audit`, `error`, `general`, `slowquery`, `postgresql` (PostgreSQL).
   609  	EnabledCloudwatchLogsExports []string `pulumi:"enabledCloudwatchLogsExports"`
   610  	// DNS address of the RDS instance
   611  	Endpoint *string `pulumi:"endpoint"`
   612  	// Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters).
   613  	Engine *string `pulumi:"engine"`
   614  	// Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`.
   615  	EngineMode *string `pulumi:"engineMode"`
   616  	// Database engine version. Updating this argument results in an outage. See the [Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) and [Aurora Postgres](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.html) documentation for your configured engine to determine this value, or by running `aws rds describe-db-engine-versions`. For example with Aurora MySQL 2, a potential value for this argument is `5.7.mysql_aurora.2.03.2`. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute `engineVersionActual`, , see Attribute Reference below.
   617  	EngineVersion *string `pulumi:"engineVersion"`
   618  	// Running version of the database.
   619  	EngineVersionActual *string `pulumi:"engineVersionActual"`
   620  	// Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made.
   621  	FinalSnapshotIdentifier *string `pulumi:"finalSnapshotIdentifier"`
   622  	// Global cluster identifier specified on `rds.GlobalCluster`.
   623  	GlobalClusterIdentifier *string `pulumi:"globalClusterIdentifier"`
   624  	// Route53 Hosted Zone ID of the endpoint
   625  	HostedZoneId *string `pulumi:"hostedZoneId"`
   626  	// Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) for availability and limitations.
   627  	IamDatabaseAuthenticationEnabled *bool `pulumi:"iamDatabaseAuthenticationEnabled"`
   628  	// List of ARNs for the IAM roles to associate to the RDS Cluster.
   629  	IamRoles []string `pulumi:"iamRoles"`
   630  	// Amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster. For information about valid Iops values, see [Amazon RDS Provisioned IOPS storage to improve performance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). Must be a multiple between .5 and 50 of the storage amount for the DB cluster.
   631  	Iops *int `pulumi:"iops"`
   632  	// ARN for the KMS encryption key. When specifying `kmsKeyId`, `storageEncrypted` needs to be set to true.
   633  	KmsKeyId *string `pulumi:"kmsKeyId"`
   634  	// Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if `masterPassword` is provided.
   635  	ManageMasterUserPassword *bool `pulumi:"manageMasterUserPassword"`
   636  	// Password for the master DB user. Note that this may show up in logs, and it will be stored in the state file. Please refer to the [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints). Cannot be set if `manageMasterUserPassword` is set to `true`.
   637  	MasterPassword *string `pulumi:"masterPassword"`
   638  	// Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used.
   639  	MasterUserSecretKmsKeyId *string `pulumi:"masterUserSecretKmsKeyId"`
   640  	// Block that specifies the master user secret. Only available when `manageMasterUserPassword` is set to true. Documented below.
   641  	MasterUserSecrets []ClusterMasterUserSecret `pulumi:"masterUserSecrets"`
   642  	// Username for the master DB user. Please refer to the [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints). This argument does not support in-place updates and cannot be changed during a restore from snapshot.
   643  	MasterUsername *string `pulumi:"masterUsername"`
   644  	// Network type of the cluster. Valid values: `IPV4`, `DUAL`.
   645  	NetworkType *string `pulumi:"networkType"`
   646  	// Port on which the DB accepts connections
   647  	Port *int `pulumi:"port"`
   648  	// Daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
   649  	PreferredBackupWindow *string `pulumi:"preferredBackupWindow"`
   650  	// Weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
   651  	PreferredMaintenanceWindow *string `pulumi:"preferredMaintenanceWindow"`
   652  	// Read-only endpoint for the Aurora cluster, automatically
   653  	// load-balanced across replicas
   654  	ReaderEndpoint *string `pulumi:"readerEndpoint"`
   655  	// ARN of a source DB cluster or DB instance if this DB cluster is to be created as a Read Replica. If DB Cluster is part of a Global Cluster, use the `lifecycle` configuration block `ignoreChanges` argument to prevent this provider from showing differences for this argument instead of configuring this value.
   656  	ReplicationSourceIdentifier *string `pulumi:"replicationSourceIdentifier"`
   657  	// Nested attribute for [point in time restore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-pitr.html). More details below.
   658  	RestoreToPointInTime *ClusterRestoreToPointInTime `pulumi:"restoreToPointInTime"`
   659  	S3Import             *ClusterS3Import             `pulumi:"s3Import"`
   660  	// Nested attribute with scaling properties. Only valid when `engineMode` is set to `serverless`. More details below.
   661  	ScalingConfiguration *ClusterScalingConfiguration `pulumi:"scalingConfiguration"`
   662  	// Nested attribute with scaling properties for ServerlessV2. Only valid when `engineMode` is set to `provisioned`. More details below.
   663  	Serverlessv2ScalingConfiguration *ClusterServerlessv2ScalingConfiguration `pulumi:"serverlessv2ScalingConfiguration"`
   664  	// 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`.
   665  	SkipFinalSnapshot *bool `pulumi:"skipFinalSnapshot"`
   666  	// 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. Conflicts with `globalClusterIdentifier`. Clusters cannot be restored from snapshot **and** joined to an existing global cluster in a single operation. See the [AWS documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-getting-started.html#aurora-global-database.use-snapshot) or the Global Cluster Restored From Snapshot example for instructions on building a global cluster starting with a snapshot.
   667  	SnapshotIdentifier *string `pulumi:"snapshotIdentifier"`
   668  	// The source region for an encrypted replica DB cluster.
   669  	SourceRegion *string `pulumi:"sourceRegion"`
   670  	// Specifies whether the DB cluster is encrypted. The default is `false` for `provisioned` `engineMode` and `true` for `serverless` `engineMode`. When restoring an unencrypted `snapshotIdentifier`, the `kmsKeyId` argument must be provided to encrypt the restored cluster. The provider will only perform drift detection if a configuration value is provided.
   671  	StorageEncrypted *bool `pulumi:"storageEncrypted"`
   672  	// (Forces new for Multi-AZ DB clusters) Specifies the storage type to be associated with the DB cluster. For Aurora DB clusters, `storageType` modifications can be done in-place. For Multi-AZ DB Clusters, the `iops` argument must also be set. Valid values are: `""`, `aurora-iopt1` (Aurora DB Clusters); `io1`, `io2` (Multi-AZ DB Clusters). Default: `""` (Aurora DB Clusters); `io1` (Multi-AZ DB Clusters).
   673  	StorageType *string `pulumi:"storageType"`
   674  	// 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.
   675  	Tags map[string]string `pulumi:"tags"`
   676  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   677  	//
   678  	// Deprecated: Please use `tags` instead.
   679  	TagsAll map[string]string `pulumi:"tagsAll"`
   680  	// List of VPC security groups to associate with the Cluster
   681  	VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"`
   682  }
   683  
   684  type ClusterState struct {
   685  	// The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.
   686  	AllocatedStorage pulumi.IntPtrInput
   687  	// Enable to allow major engine version upgrades when changing engine versions. Defaults to `false`.
   688  	AllowMajorVersionUpgrade pulumi.BoolPtrInput
   689  	// Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is `false`. See [Amazon RDS Documentation for more information.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html)
   690  	ApplyImmediately pulumi.BoolPtrInput
   691  	// Amazon Resource Name (ARN) of cluster
   692  	Arn pulumi.StringPtrInput
   693  	// List of EC2 Availability Zones for the DB cluster storage where DB cluster instances can be created.
   694  	// RDS automatically assigns 3 AZs if less than 3 AZs are configured, which will show as a difference requiring resource recreation next pulumi up.
   695  	// We recommend specifying 3 AZs or using the `lifecycle` configuration block `ignoreChanges` argument if necessary.
   696  	// A maximum of 3 AZs can be configured.
   697  	AvailabilityZones pulumi.StringArrayInput
   698  	// Target backtrack window, in seconds. Only available for `aurora` and `aurora-mysql` engines currently. To disable backtracking, set this value to `0`. Defaults to `0`. Must be between `0` and `259200` (72 hours)
   699  	BacktrackWindow pulumi.IntPtrInput
   700  	// Days to retain backups for. Default `1`
   701  	BackupRetentionPeriod pulumi.IntPtrInput
   702  	// The cluster identifier. If omitted, this provider will assign a random, unique identifier.
   703  	ClusterIdentifier pulumi.StringPtrInput
   704  	// Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
   705  	ClusterIdentifierPrefix pulumi.StringPtrInput
   706  	// List of RDS Instances that are a part of this cluster
   707  	ClusterMembers pulumi.StringArrayInput
   708  	// RDS Cluster Resource ID
   709  	ClusterResourceId pulumi.StringPtrInput
   710  	// Copy all Cluster `tags` to snapshots. Default is `false`.
   711  	CopyTagsToSnapshot pulumi.BoolPtrInput
   712  	// Name for an automatically created database on cluster creation. There are different naming restrictions per database engine: [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints)
   713  	DatabaseName pulumi.StringPtrInput
   714  	// The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example `db.m6g.xlarge`. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes and availability for your engine, see [DB instance class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) in the Amazon RDS User Guide.
   715  	DbClusterInstanceClass pulumi.StringPtrInput
   716  	// A cluster parameter group to associate with the cluster.
   717  	DbClusterParameterGroupName pulumi.StringPtrInput
   718  	// Instance parameter group to associate with all instances of the DB cluster. The `dbInstanceParameterGroupName` parameter is only valid in combination with the `allowMajorVersionUpgrade` parameter.
   719  	DbInstanceParameterGroupName pulumi.StringPtrInput
   720  	// DB subnet group to associate with this DB cluster.
   721  	// **NOTE:** This must match the `dbSubnetGroupName` specified on every `rds.ClusterInstance` in the cluster.
   722  	DbSubnetGroupName pulumi.StringPtrInput
   723  	// For use with RDS Custom.
   724  	DbSystemId pulumi.StringPtrInput
   725  	// Specifies whether to remove automated backups immediately after the DB cluster is deleted. Default is `true`.
   726  	DeleteAutomatedBackups pulumi.BoolPtrInput
   727  	// If the DB cluster should have deletion protection enabled.
   728  	// The database can't be deleted when this value is set to `true`.
   729  	// The default is `false`.
   730  	DeletionProtection pulumi.BoolPtrInput
   731  	// The ID of the Directory Service Active Directory domain to create the cluster in.
   732  	Domain pulumi.StringPtrInput
   733  	// The name of the IAM role to be used when making API calls to the Directory Service.
   734  	DomainIamRoleName pulumi.StringPtrInput
   735  	// Whether cluster should forward writes to an associated global cluster. Applied to secondary clusters to enable them to forward writes to an `rds.GlobalCluster`'s primary cluster. See the [User Guide for Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-write-forwarding.html) for more information.
   736  	EnableGlobalWriteForwarding pulumi.BoolPtrInput
   737  	// Enable HTTP endpoint (data API). Only valid when `engineMode` is set to `serverless`.
   738  	EnableHttpEndpoint pulumi.BoolPtrInput
   739  	// Whether read replicas can forward write operations to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.. See the [User Guide for Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-write-forwarding.html) for more information. **NOTE:** Local write forwarding requires Aurora MySQL version 3.04 or higher.
   740  	EnableLocalWriteForwarding pulumi.BoolPtrInput
   741  	// Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: `audit`, `error`, `general`, `slowquery`, `postgresql` (PostgreSQL).
   742  	EnabledCloudwatchLogsExports pulumi.StringArrayInput
   743  	// DNS address of the RDS instance
   744  	Endpoint pulumi.StringPtrInput
   745  	// Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters).
   746  	Engine pulumi.StringPtrInput
   747  	// Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`.
   748  	EngineMode pulumi.StringPtrInput
   749  	// Database engine version. Updating this argument results in an outage. See the [Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) and [Aurora Postgres](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.html) documentation for your configured engine to determine this value, or by running `aws rds describe-db-engine-versions`. For example with Aurora MySQL 2, a potential value for this argument is `5.7.mysql_aurora.2.03.2`. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute `engineVersionActual`, , see Attribute Reference below.
   750  	EngineVersion pulumi.StringPtrInput
   751  	// Running version of the database.
   752  	EngineVersionActual pulumi.StringPtrInput
   753  	// Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made.
   754  	FinalSnapshotIdentifier pulumi.StringPtrInput
   755  	// Global cluster identifier specified on `rds.GlobalCluster`.
   756  	GlobalClusterIdentifier pulumi.StringPtrInput
   757  	// Route53 Hosted Zone ID of the endpoint
   758  	HostedZoneId pulumi.StringPtrInput
   759  	// Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) for availability and limitations.
   760  	IamDatabaseAuthenticationEnabled pulumi.BoolPtrInput
   761  	// List of ARNs for the IAM roles to associate to the RDS Cluster.
   762  	IamRoles pulumi.StringArrayInput
   763  	// Amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster. For information about valid Iops values, see [Amazon RDS Provisioned IOPS storage to improve performance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). Must be a multiple between .5 and 50 of the storage amount for the DB cluster.
   764  	Iops pulumi.IntPtrInput
   765  	// ARN for the KMS encryption key. When specifying `kmsKeyId`, `storageEncrypted` needs to be set to true.
   766  	KmsKeyId pulumi.StringPtrInput
   767  	// Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if `masterPassword` is provided.
   768  	ManageMasterUserPassword pulumi.BoolPtrInput
   769  	// Password for the master DB user. Note that this may show up in logs, and it will be stored in the state file. Please refer to the [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints). Cannot be set if `manageMasterUserPassword` is set to `true`.
   770  	MasterPassword pulumi.StringPtrInput
   771  	// Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used.
   772  	MasterUserSecretKmsKeyId pulumi.StringPtrInput
   773  	// Block that specifies the master user secret. Only available when `manageMasterUserPassword` is set to true. Documented below.
   774  	MasterUserSecrets ClusterMasterUserSecretArrayInput
   775  	// Username for the master DB user. Please refer to the [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints). This argument does not support in-place updates and cannot be changed during a restore from snapshot.
   776  	MasterUsername pulumi.StringPtrInput
   777  	// Network type of the cluster. Valid values: `IPV4`, `DUAL`.
   778  	NetworkType pulumi.StringPtrInput
   779  	// Port on which the DB accepts connections
   780  	Port pulumi.IntPtrInput
   781  	// Daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
   782  	PreferredBackupWindow pulumi.StringPtrInput
   783  	// Weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
   784  	PreferredMaintenanceWindow pulumi.StringPtrInput
   785  	// Read-only endpoint for the Aurora cluster, automatically
   786  	// load-balanced across replicas
   787  	ReaderEndpoint pulumi.StringPtrInput
   788  	// ARN of a source DB cluster or DB instance if this DB cluster is to be created as a Read Replica. If DB Cluster is part of a Global Cluster, use the `lifecycle` configuration block `ignoreChanges` argument to prevent this provider from showing differences for this argument instead of configuring this value.
   789  	ReplicationSourceIdentifier pulumi.StringPtrInput
   790  	// Nested attribute for [point in time restore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-pitr.html). More details below.
   791  	RestoreToPointInTime ClusterRestoreToPointInTimePtrInput
   792  	S3Import             ClusterS3ImportPtrInput
   793  	// Nested attribute with scaling properties. Only valid when `engineMode` is set to `serverless`. More details below.
   794  	ScalingConfiguration ClusterScalingConfigurationPtrInput
   795  	// Nested attribute with scaling properties for ServerlessV2. Only valid when `engineMode` is set to `provisioned`. More details below.
   796  	Serverlessv2ScalingConfiguration ClusterServerlessv2ScalingConfigurationPtrInput
   797  	// 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`.
   798  	SkipFinalSnapshot pulumi.BoolPtrInput
   799  	// 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. Conflicts with `globalClusterIdentifier`. Clusters cannot be restored from snapshot **and** joined to an existing global cluster in a single operation. See the [AWS documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-getting-started.html#aurora-global-database.use-snapshot) or the Global Cluster Restored From Snapshot example for instructions on building a global cluster starting with a snapshot.
   800  	SnapshotIdentifier pulumi.StringPtrInput
   801  	// The source region for an encrypted replica DB cluster.
   802  	SourceRegion pulumi.StringPtrInput
   803  	// Specifies whether the DB cluster is encrypted. The default is `false` for `provisioned` `engineMode` and `true` for `serverless` `engineMode`. When restoring an unencrypted `snapshotIdentifier`, the `kmsKeyId` argument must be provided to encrypt the restored cluster. The provider will only perform drift detection if a configuration value is provided.
   804  	StorageEncrypted pulumi.BoolPtrInput
   805  	// (Forces new for Multi-AZ DB clusters) Specifies the storage type to be associated with the DB cluster. For Aurora DB clusters, `storageType` modifications can be done in-place. For Multi-AZ DB Clusters, the `iops` argument must also be set. Valid values are: `""`, `aurora-iopt1` (Aurora DB Clusters); `io1`, `io2` (Multi-AZ DB Clusters). Default: `""` (Aurora DB Clusters); `io1` (Multi-AZ DB Clusters).
   806  	StorageType pulumi.StringPtrInput
   807  	// 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.
   808  	Tags pulumi.StringMapInput
   809  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   810  	//
   811  	// Deprecated: Please use `tags` instead.
   812  	TagsAll pulumi.StringMapInput
   813  	// List of VPC security groups to associate with the Cluster
   814  	VpcSecurityGroupIds pulumi.StringArrayInput
   815  }
   816  
   817  func (ClusterState) ElementType() reflect.Type {
   818  	return reflect.TypeOf((*clusterState)(nil)).Elem()
   819  }
   820  
   821  type clusterArgs struct {
   822  	// The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.
   823  	AllocatedStorage *int `pulumi:"allocatedStorage"`
   824  	// Enable to allow major engine version upgrades when changing engine versions. Defaults to `false`.
   825  	AllowMajorVersionUpgrade *bool `pulumi:"allowMajorVersionUpgrade"`
   826  	// Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is `false`. See [Amazon RDS Documentation for more information.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html)
   827  	ApplyImmediately *bool `pulumi:"applyImmediately"`
   828  	// List of EC2 Availability Zones for the DB cluster storage where DB cluster instances can be created.
   829  	// RDS automatically assigns 3 AZs if less than 3 AZs are configured, which will show as a difference requiring resource recreation next pulumi up.
   830  	// We recommend specifying 3 AZs or using the `lifecycle` configuration block `ignoreChanges` argument if necessary.
   831  	// A maximum of 3 AZs can be configured.
   832  	AvailabilityZones []string `pulumi:"availabilityZones"`
   833  	// Target backtrack window, in seconds. Only available for `aurora` and `aurora-mysql` engines currently. To disable backtracking, set this value to `0`. Defaults to `0`. Must be between `0` and `259200` (72 hours)
   834  	BacktrackWindow *int `pulumi:"backtrackWindow"`
   835  	// Days to retain backups for. Default `1`
   836  	BackupRetentionPeriod *int `pulumi:"backupRetentionPeriod"`
   837  	// The cluster identifier. If omitted, this provider will assign a random, unique identifier.
   838  	ClusterIdentifier *string `pulumi:"clusterIdentifier"`
   839  	// Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
   840  	ClusterIdentifierPrefix *string `pulumi:"clusterIdentifierPrefix"`
   841  	// List of RDS Instances that are a part of this cluster
   842  	ClusterMembers []string `pulumi:"clusterMembers"`
   843  	// Copy all Cluster `tags` to snapshots. Default is `false`.
   844  	CopyTagsToSnapshot *bool `pulumi:"copyTagsToSnapshot"`
   845  	// Name for an automatically created database on cluster creation. There are different naming restrictions per database engine: [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints)
   846  	DatabaseName *string `pulumi:"databaseName"`
   847  	// The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example `db.m6g.xlarge`. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes and availability for your engine, see [DB instance class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) in the Amazon RDS User Guide.
   848  	DbClusterInstanceClass *string `pulumi:"dbClusterInstanceClass"`
   849  	// A cluster parameter group to associate with the cluster.
   850  	DbClusterParameterGroupName *string `pulumi:"dbClusterParameterGroupName"`
   851  	// Instance parameter group to associate with all instances of the DB cluster. The `dbInstanceParameterGroupName` parameter is only valid in combination with the `allowMajorVersionUpgrade` parameter.
   852  	DbInstanceParameterGroupName *string `pulumi:"dbInstanceParameterGroupName"`
   853  	// DB subnet group to associate with this DB cluster.
   854  	// **NOTE:** This must match the `dbSubnetGroupName` specified on every `rds.ClusterInstance` in the cluster.
   855  	DbSubnetGroupName *string `pulumi:"dbSubnetGroupName"`
   856  	// For use with RDS Custom.
   857  	DbSystemId *string `pulumi:"dbSystemId"`
   858  	// Specifies whether to remove automated backups immediately after the DB cluster is deleted. Default is `true`.
   859  	DeleteAutomatedBackups *bool `pulumi:"deleteAutomatedBackups"`
   860  	// If the DB cluster should have deletion protection enabled.
   861  	// The database can't be deleted when this value is set to `true`.
   862  	// The default is `false`.
   863  	DeletionProtection *bool `pulumi:"deletionProtection"`
   864  	// The ID of the Directory Service Active Directory domain to create the cluster in.
   865  	Domain *string `pulumi:"domain"`
   866  	// The name of the IAM role to be used when making API calls to the Directory Service.
   867  	DomainIamRoleName *string `pulumi:"domainIamRoleName"`
   868  	// Whether cluster should forward writes to an associated global cluster. Applied to secondary clusters to enable them to forward writes to an `rds.GlobalCluster`'s primary cluster. See the [User Guide for Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-write-forwarding.html) for more information.
   869  	EnableGlobalWriteForwarding *bool `pulumi:"enableGlobalWriteForwarding"`
   870  	// Enable HTTP endpoint (data API). Only valid when `engineMode` is set to `serverless`.
   871  	EnableHttpEndpoint *bool `pulumi:"enableHttpEndpoint"`
   872  	// Whether read replicas can forward write operations to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.. See the [User Guide for Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-write-forwarding.html) for more information. **NOTE:** Local write forwarding requires Aurora MySQL version 3.04 or higher.
   873  	EnableLocalWriteForwarding *bool `pulumi:"enableLocalWriteForwarding"`
   874  	// Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: `audit`, `error`, `general`, `slowquery`, `postgresql` (PostgreSQL).
   875  	EnabledCloudwatchLogsExports []string `pulumi:"enabledCloudwatchLogsExports"`
   876  	// Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters).
   877  	Engine string `pulumi:"engine"`
   878  	// Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`.
   879  	EngineMode *string `pulumi:"engineMode"`
   880  	// Database engine version. Updating this argument results in an outage. See the [Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) and [Aurora Postgres](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.html) documentation for your configured engine to determine this value, or by running `aws rds describe-db-engine-versions`. For example with Aurora MySQL 2, a potential value for this argument is `5.7.mysql_aurora.2.03.2`. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute `engineVersionActual`, , see Attribute Reference below.
   881  	EngineVersion *string `pulumi:"engineVersion"`
   882  	// Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made.
   883  	FinalSnapshotIdentifier *string `pulumi:"finalSnapshotIdentifier"`
   884  	// Global cluster identifier specified on `rds.GlobalCluster`.
   885  	GlobalClusterIdentifier *string `pulumi:"globalClusterIdentifier"`
   886  	// Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) for availability and limitations.
   887  	IamDatabaseAuthenticationEnabled *bool `pulumi:"iamDatabaseAuthenticationEnabled"`
   888  	// List of ARNs for the IAM roles to associate to the RDS Cluster.
   889  	IamRoles []string `pulumi:"iamRoles"`
   890  	// Amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster. For information about valid Iops values, see [Amazon RDS Provisioned IOPS storage to improve performance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). Must be a multiple between .5 and 50 of the storage amount for the DB cluster.
   891  	Iops *int `pulumi:"iops"`
   892  	// ARN for the KMS encryption key. When specifying `kmsKeyId`, `storageEncrypted` needs to be set to true.
   893  	KmsKeyId *string `pulumi:"kmsKeyId"`
   894  	// Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if `masterPassword` is provided.
   895  	ManageMasterUserPassword *bool `pulumi:"manageMasterUserPassword"`
   896  	// Password for the master DB user. Note that this may show up in logs, and it will be stored in the state file. Please refer to the [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints). Cannot be set if `manageMasterUserPassword` is set to `true`.
   897  	MasterPassword *string `pulumi:"masterPassword"`
   898  	// Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used.
   899  	MasterUserSecretKmsKeyId *string `pulumi:"masterUserSecretKmsKeyId"`
   900  	// Username for the master DB user. Please refer to the [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints). This argument does not support in-place updates and cannot be changed during a restore from snapshot.
   901  	MasterUsername *string `pulumi:"masterUsername"`
   902  	// Network type of the cluster. Valid values: `IPV4`, `DUAL`.
   903  	NetworkType *string `pulumi:"networkType"`
   904  	// Port on which the DB accepts connections
   905  	Port *int `pulumi:"port"`
   906  	// Daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
   907  	PreferredBackupWindow *string `pulumi:"preferredBackupWindow"`
   908  	// Weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
   909  	PreferredMaintenanceWindow *string `pulumi:"preferredMaintenanceWindow"`
   910  	// ARN of a source DB cluster or DB instance if this DB cluster is to be created as a Read Replica. If DB Cluster is part of a Global Cluster, use the `lifecycle` configuration block `ignoreChanges` argument to prevent this provider from showing differences for this argument instead of configuring this value.
   911  	ReplicationSourceIdentifier *string `pulumi:"replicationSourceIdentifier"`
   912  	// Nested attribute for [point in time restore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-pitr.html). More details below.
   913  	RestoreToPointInTime *ClusterRestoreToPointInTime `pulumi:"restoreToPointInTime"`
   914  	S3Import             *ClusterS3Import             `pulumi:"s3Import"`
   915  	// Nested attribute with scaling properties. Only valid when `engineMode` is set to `serverless`. More details below.
   916  	ScalingConfiguration *ClusterScalingConfiguration `pulumi:"scalingConfiguration"`
   917  	// Nested attribute with scaling properties for ServerlessV2. Only valid when `engineMode` is set to `provisioned`. More details below.
   918  	Serverlessv2ScalingConfiguration *ClusterServerlessv2ScalingConfiguration `pulumi:"serverlessv2ScalingConfiguration"`
   919  	// 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`.
   920  	SkipFinalSnapshot *bool `pulumi:"skipFinalSnapshot"`
   921  	// 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. Conflicts with `globalClusterIdentifier`. Clusters cannot be restored from snapshot **and** joined to an existing global cluster in a single operation. See the [AWS documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-getting-started.html#aurora-global-database.use-snapshot) or the Global Cluster Restored From Snapshot example for instructions on building a global cluster starting with a snapshot.
   922  	SnapshotIdentifier *string `pulumi:"snapshotIdentifier"`
   923  	// The source region for an encrypted replica DB cluster.
   924  	SourceRegion *string `pulumi:"sourceRegion"`
   925  	// Specifies whether the DB cluster is encrypted. The default is `false` for `provisioned` `engineMode` and `true` for `serverless` `engineMode`. When restoring an unencrypted `snapshotIdentifier`, the `kmsKeyId` argument must be provided to encrypt the restored cluster. The provider will only perform drift detection if a configuration value is provided.
   926  	StorageEncrypted *bool `pulumi:"storageEncrypted"`
   927  	// (Forces new for Multi-AZ DB clusters) Specifies the storage type to be associated with the DB cluster. For Aurora DB clusters, `storageType` modifications can be done in-place. For Multi-AZ DB Clusters, the `iops` argument must also be set. Valid values are: `""`, `aurora-iopt1` (Aurora DB Clusters); `io1`, `io2` (Multi-AZ DB Clusters). Default: `""` (Aurora DB Clusters); `io1` (Multi-AZ DB Clusters).
   928  	StorageType *string `pulumi:"storageType"`
   929  	// 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.
   930  	Tags map[string]string `pulumi:"tags"`
   931  	// List of VPC security groups to associate with the Cluster
   932  	VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"`
   933  }
   934  
   935  // The set of arguments for constructing a Cluster resource.
   936  type ClusterArgs struct {
   937  	// The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.
   938  	AllocatedStorage pulumi.IntPtrInput
   939  	// Enable to allow major engine version upgrades when changing engine versions. Defaults to `false`.
   940  	AllowMajorVersionUpgrade pulumi.BoolPtrInput
   941  	// Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is `false`. See [Amazon RDS Documentation for more information.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html)
   942  	ApplyImmediately pulumi.BoolPtrInput
   943  	// List of EC2 Availability Zones for the DB cluster storage where DB cluster instances can be created.
   944  	// RDS automatically assigns 3 AZs if less than 3 AZs are configured, which will show as a difference requiring resource recreation next pulumi up.
   945  	// We recommend specifying 3 AZs or using the `lifecycle` configuration block `ignoreChanges` argument if necessary.
   946  	// A maximum of 3 AZs can be configured.
   947  	AvailabilityZones pulumi.StringArrayInput
   948  	// Target backtrack window, in seconds. Only available for `aurora` and `aurora-mysql` engines currently. To disable backtracking, set this value to `0`. Defaults to `0`. Must be between `0` and `259200` (72 hours)
   949  	BacktrackWindow pulumi.IntPtrInput
   950  	// Days to retain backups for. Default `1`
   951  	BackupRetentionPeriod pulumi.IntPtrInput
   952  	// The cluster identifier. If omitted, this provider will assign a random, unique identifier.
   953  	ClusterIdentifier pulumi.StringPtrInput
   954  	// Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
   955  	ClusterIdentifierPrefix pulumi.StringPtrInput
   956  	// List of RDS Instances that are a part of this cluster
   957  	ClusterMembers pulumi.StringArrayInput
   958  	// Copy all Cluster `tags` to snapshots. Default is `false`.
   959  	CopyTagsToSnapshot pulumi.BoolPtrInput
   960  	// Name for an automatically created database on cluster creation. There are different naming restrictions per database engine: [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints)
   961  	DatabaseName pulumi.StringPtrInput
   962  	// The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example `db.m6g.xlarge`. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes and availability for your engine, see [DB instance class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) in the Amazon RDS User Guide.
   963  	DbClusterInstanceClass pulumi.StringPtrInput
   964  	// A cluster parameter group to associate with the cluster.
   965  	DbClusterParameterGroupName pulumi.StringPtrInput
   966  	// Instance parameter group to associate with all instances of the DB cluster. The `dbInstanceParameterGroupName` parameter is only valid in combination with the `allowMajorVersionUpgrade` parameter.
   967  	DbInstanceParameterGroupName pulumi.StringPtrInput
   968  	// DB subnet group to associate with this DB cluster.
   969  	// **NOTE:** This must match the `dbSubnetGroupName` specified on every `rds.ClusterInstance` in the cluster.
   970  	DbSubnetGroupName pulumi.StringPtrInput
   971  	// For use with RDS Custom.
   972  	DbSystemId pulumi.StringPtrInput
   973  	// Specifies whether to remove automated backups immediately after the DB cluster is deleted. Default is `true`.
   974  	DeleteAutomatedBackups pulumi.BoolPtrInput
   975  	// If the DB cluster should have deletion protection enabled.
   976  	// The database can't be deleted when this value is set to `true`.
   977  	// The default is `false`.
   978  	DeletionProtection pulumi.BoolPtrInput
   979  	// The ID of the Directory Service Active Directory domain to create the cluster in.
   980  	Domain pulumi.StringPtrInput
   981  	// The name of the IAM role to be used when making API calls to the Directory Service.
   982  	DomainIamRoleName pulumi.StringPtrInput
   983  	// Whether cluster should forward writes to an associated global cluster. Applied to secondary clusters to enable them to forward writes to an `rds.GlobalCluster`'s primary cluster. See the [User Guide for Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-write-forwarding.html) for more information.
   984  	EnableGlobalWriteForwarding pulumi.BoolPtrInput
   985  	// Enable HTTP endpoint (data API). Only valid when `engineMode` is set to `serverless`.
   986  	EnableHttpEndpoint pulumi.BoolPtrInput
   987  	// Whether read replicas can forward write operations to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.. See the [User Guide for Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-write-forwarding.html) for more information. **NOTE:** Local write forwarding requires Aurora MySQL version 3.04 or higher.
   988  	EnableLocalWriteForwarding pulumi.BoolPtrInput
   989  	// Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: `audit`, `error`, `general`, `slowquery`, `postgresql` (PostgreSQL).
   990  	EnabledCloudwatchLogsExports pulumi.StringArrayInput
   991  	// Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters).
   992  	Engine pulumi.StringInput
   993  	// Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`.
   994  	EngineMode pulumi.StringPtrInput
   995  	// Database engine version. Updating this argument results in an outage. See the [Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) and [Aurora Postgres](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.html) documentation for your configured engine to determine this value, or by running `aws rds describe-db-engine-versions`. For example with Aurora MySQL 2, a potential value for this argument is `5.7.mysql_aurora.2.03.2`. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute `engineVersionActual`, , see Attribute Reference below.
   996  	EngineVersion pulumi.StringPtrInput
   997  	// Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made.
   998  	FinalSnapshotIdentifier pulumi.StringPtrInput
   999  	// Global cluster identifier specified on `rds.GlobalCluster`.
  1000  	GlobalClusterIdentifier pulumi.StringPtrInput
  1001  	// Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) for availability and limitations.
  1002  	IamDatabaseAuthenticationEnabled pulumi.BoolPtrInput
  1003  	// List of ARNs for the IAM roles to associate to the RDS Cluster.
  1004  	IamRoles pulumi.StringArrayInput
  1005  	// Amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster. For information about valid Iops values, see [Amazon RDS Provisioned IOPS storage to improve performance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). Must be a multiple between .5 and 50 of the storage amount for the DB cluster.
  1006  	Iops pulumi.IntPtrInput
  1007  	// ARN for the KMS encryption key. When specifying `kmsKeyId`, `storageEncrypted` needs to be set to true.
  1008  	KmsKeyId pulumi.StringPtrInput
  1009  	// Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if `masterPassword` is provided.
  1010  	ManageMasterUserPassword pulumi.BoolPtrInput
  1011  	// Password for the master DB user. Note that this may show up in logs, and it will be stored in the state file. Please refer to the [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints). Cannot be set if `manageMasterUserPassword` is set to `true`.
  1012  	MasterPassword pulumi.StringPtrInput
  1013  	// Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used.
  1014  	MasterUserSecretKmsKeyId pulumi.StringPtrInput
  1015  	// Username for the master DB user. Please refer to the [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints). This argument does not support in-place updates and cannot be changed during a restore from snapshot.
  1016  	MasterUsername pulumi.StringPtrInput
  1017  	// Network type of the cluster. Valid values: `IPV4`, `DUAL`.
  1018  	NetworkType pulumi.StringPtrInput
  1019  	// Port on which the DB accepts connections
  1020  	Port pulumi.IntPtrInput
  1021  	// Daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
  1022  	PreferredBackupWindow pulumi.StringPtrInput
  1023  	// Weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
  1024  	PreferredMaintenanceWindow pulumi.StringPtrInput
  1025  	// ARN of a source DB cluster or DB instance if this DB cluster is to be created as a Read Replica. If DB Cluster is part of a Global Cluster, use the `lifecycle` configuration block `ignoreChanges` argument to prevent this provider from showing differences for this argument instead of configuring this value.
  1026  	ReplicationSourceIdentifier pulumi.StringPtrInput
  1027  	// Nested attribute for [point in time restore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-pitr.html). More details below.
  1028  	RestoreToPointInTime ClusterRestoreToPointInTimePtrInput
  1029  	S3Import             ClusterS3ImportPtrInput
  1030  	// Nested attribute with scaling properties. Only valid when `engineMode` is set to `serverless`. More details below.
  1031  	ScalingConfiguration ClusterScalingConfigurationPtrInput
  1032  	// Nested attribute with scaling properties for ServerlessV2. Only valid when `engineMode` is set to `provisioned`. More details below.
  1033  	Serverlessv2ScalingConfiguration ClusterServerlessv2ScalingConfigurationPtrInput
  1034  	// 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`.
  1035  	SkipFinalSnapshot pulumi.BoolPtrInput
  1036  	// 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. Conflicts with `globalClusterIdentifier`. Clusters cannot be restored from snapshot **and** joined to an existing global cluster in a single operation. See the [AWS documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-getting-started.html#aurora-global-database.use-snapshot) or the Global Cluster Restored From Snapshot example for instructions on building a global cluster starting with a snapshot.
  1037  	SnapshotIdentifier pulumi.StringPtrInput
  1038  	// The source region for an encrypted replica DB cluster.
  1039  	SourceRegion pulumi.StringPtrInput
  1040  	// Specifies whether the DB cluster is encrypted. The default is `false` for `provisioned` `engineMode` and `true` for `serverless` `engineMode`. When restoring an unencrypted `snapshotIdentifier`, the `kmsKeyId` argument must be provided to encrypt the restored cluster. The provider will only perform drift detection if a configuration value is provided.
  1041  	StorageEncrypted pulumi.BoolPtrInput
  1042  	// (Forces new for Multi-AZ DB clusters) Specifies the storage type to be associated with the DB cluster. For Aurora DB clusters, `storageType` modifications can be done in-place. For Multi-AZ DB Clusters, the `iops` argument must also be set. Valid values are: `""`, `aurora-iopt1` (Aurora DB Clusters); `io1`, `io2` (Multi-AZ DB Clusters). Default: `""` (Aurora DB Clusters); `io1` (Multi-AZ DB Clusters).
  1043  	StorageType pulumi.StringPtrInput
  1044  	// 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.
  1045  	Tags pulumi.StringMapInput
  1046  	// List of VPC security groups to associate with the Cluster
  1047  	VpcSecurityGroupIds pulumi.StringArrayInput
  1048  }
  1049  
  1050  func (ClusterArgs) ElementType() reflect.Type {
  1051  	return reflect.TypeOf((*clusterArgs)(nil)).Elem()
  1052  }
  1053  
  1054  type ClusterInput interface {
  1055  	pulumi.Input
  1056  
  1057  	ToClusterOutput() ClusterOutput
  1058  	ToClusterOutputWithContext(ctx context.Context) ClusterOutput
  1059  }
  1060  
  1061  func (*Cluster) ElementType() reflect.Type {
  1062  	return reflect.TypeOf((**Cluster)(nil)).Elem()
  1063  }
  1064  
  1065  func (i *Cluster) ToClusterOutput() ClusterOutput {
  1066  	return i.ToClusterOutputWithContext(context.Background())
  1067  }
  1068  
  1069  func (i *Cluster) ToClusterOutputWithContext(ctx context.Context) ClusterOutput {
  1070  	return pulumi.ToOutputWithContext(ctx, i).(ClusterOutput)
  1071  }
  1072  
  1073  // ClusterArrayInput is an input type that accepts ClusterArray and ClusterArrayOutput values.
  1074  // You can construct a concrete instance of `ClusterArrayInput` via:
  1075  //
  1076  //	ClusterArray{ ClusterArgs{...} }
  1077  type ClusterArrayInput interface {
  1078  	pulumi.Input
  1079  
  1080  	ToClusterArrayOutput() ClusterArrayOutput
  1081  	ToClusterArrayOutputWithContext(context.Context) ClusterArrayOutput
  1082  }
  1083  
  1084  type ClusterArray []ClusterInput
  1085  
  1086  func (ClusterArray) ElementType() reflect.Type {
  1087  	return reflect.TypeOf((*[]*Cluster)(nil)).Elem()
  1088  }
  1089  
  1090  func (i ClusterArray) ToClusterArrayOutput() ClusterArrayOutput {
  1091  	return i.ToClusterArrayOutputWithContext(context.Background())
  1092  }
  1093  
  1094  func (i ClusterArray) ToClusterArrayOutputWithContext(ctx context.Context) ClusterArrayOutput {
  1095  	return pulumi.ToOutputWithContext(ctx, i).(ClusterArrayOutput)
  1096  }
  1097  
  1098  // ClusterMapInput is an input type that accepts ClusterMap and ClusterMapOutput values.
  1099  // You can construct a concrete instance of `ClusterMapInput` via:
  1100  //
  1101  //	ClusterMap{ "key": ClusterArgs{...} }
  1102  type ClusterMapInput interface {
  1103  	pulumi.Input
  1104  
  1105  	ToClusterMapOutput() ClusterMapOutput
  1106  	ToClusterMapOutputWithContext(context.Context) ClusterMapOutput
  1107  }
  1108  
  1109  type ClusterMap map[string]ClusterInput
  1110  
  1111  func (ClusterMap) ElementType() reflect.Type {
  1112  	return reflect.TypeOf((*map[string]*Cluster)(nil)).Elem()
  1113  }
  1114  
  1115  func (i ClusterMap) ToClusterMapOutput() ClusterMapOutput {
  1116  	return i.ToClusterMapOutputWithContext(context.Background())
  1117  }
  1118  
  1119  func (i ClusterMap) ToClusterMapOutputWithContext(ctx context.Context) ClusterMapOutput {
  1120  	return pulumi.ToOutputWithContext(ctx, i).(ClusterMapOutput)
  1121  }
  1122  
  1123  type ClusterOutput struct{ *pulumi.OutputState }
  1124  
  1125  func (ClusterOutput) ElementType() reflect.Type {
  1126  	return reflect.TypeOf((**Cluster)(nil)).Elem()
  1127  }
  1128  
  1129  func (o ClusterOutput) ToClusterOutput() ClusterOutput {
  1130  	return o
  1131  }
  1132  
  1133  func (o ClusterOutput) ToClusterOutputWithContext(ctx context.Context) ClusterOutput {
  1134  	return o
  1135  }
  1136  
  1137  // The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.
  1138  func (o ClusterOutput) AllocatedStorage() pulumi.IntOutput {
  1139  	return o.ApplyT(func(v *Cluster) pulumi.IntOutput { return v.AllocatedStorage }).(pulumi.IntOutput)
  1140  }
  1141  
  1142  // Enable to allow major engine version upgrades when changing engine versions. Defaults to `false`.
  1143  func (o ClusterOutput) AllowMajorVersionUpgrade() pulumi.BoolPtrOutput {
  1144  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.AllowMajorVersionUpgrade }).(pulumi.BoolPtrOutput)
  1145  }
  1146  
  1147  // Specifies whether any cluster modifications are applied immediately, or during the next maintenance window. Default is `false`. See [Amazon RDS Documentation for more information.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html)
  1148  func (o ClusterOutput) ApplyImmediately() pulumi.BoolOutput {
  1149  	return o.ApplyT(func(v *Cluster) pulumi.BoolOutput { return v.ApplyImmediately }).(pulumi.BoolOutput)
  1150  }
  1151  
  1152  // Amazon Resource Name (ARN) of cluster
  1153  func (o ClusterOutput) Arn() pulumi.StringOutput {
  1154  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
  1155  }
  1156  
  1157  // List of EC2 Availability Zones for the DB cluster storage where DB cluster instances can be created.
  1158  // RDS automatically assigns 3 AZs if less than 3 AZs are configured, which will show as a difference requiring resource recreation next pulumi up.
  1159  // We recommend specifying 3 AZs or using the `lifecycle` configuration block `ignoreChanges` argument if necessary.
  1160  // A maximum of 3 AZs can be configured.
  1161  func (o ClusterOutput) AvailabilityZones() pulumi.StringArrayOutput {
  1162  	return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.AvailabilityZones }).(pulumi.StringArrayOutput)
  1163  }
  1164  
  1165  // Target backtrack window, in seconds. Only available for `aurora` and `aurora-mysql` engines currently. To disable backtracking, set this value to `0`. Defaults to `0`. Must be between `0` and `259200` (72 hours)
  1166  func (o ClusterOutput) BacktrackWindow() pulumi.IntPtrOutput {
  1167  	return o.ApplyT(func(v *Cluster) pulumi.IntPtrOutput { return v.BacktrackWindow }).(pulumi.IntPtrOutput)
  1168  }
  1169  
  1170  // Days to retain backups for. Default `1`
  1171  func (o ClusterOutput) BackupRetentionPeriod() pulumi.IntOutput {
  1172  	return o.ApplyT(func(v *Cluster) pulumi.IntOutput { return v.BackupRetentionPeriod }).(pulumi.IntOutput)
  1173  }
  1174  
  1175  // The cluster identifier. If omitted, this provider will assign a random, unique identifier.
  1176  func (o ClusterOutput) ClusterIdentifier() pulumi.StringOutput {
  1177  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ClusterIdentifier }).(pulumi.StringOutput)
  1178  }
  1179  
  1180  // Creates a unique cluster identifier beginning with the specified prefix. Conflicts with `clusterIdentifier`.
  1181  func (o ClusterOutput) ClusterIdentifierPrefix() pulumi.StringOutput {
  1182  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ClusterIdentifierPrefix }).(pulumi.StringOutput)
  1183  }
  1184  
  1185  // List of RDS Instances that are a part of this cluster
  1186  func (o ClusterOutput) ClusterMembers() pulumi.StringArrayOutput {
  1187  	return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.ClusterMembers }).(pulumi.StringArrayOutput)
  1188  }
  1189  
  1190  // RDS Cluster Resource ID
  1191  func (o ClusterOutput) ClusterResourceId() pulumi.StringOutput {
  1192  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ClusterResourceId }).(pulumi.StringOutput)
  1193  }
  1194  
  1195  // Copy all Cluster `tags` to snapshots. Default is `false`.
  1196  func (o ClusterOutput) CopyTagsToSnapshot() pulumi.BoolPtrOutput {
  1197  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.CopyTagsToSnapshot }).(pulumi.BoolPtrOutput)
  1198  }
  1199  
  1200  // Name for an automatically created database on cluster creation. There are different naming restrictions per database engine: [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints)
  1201  func (o ClusterOutput) DatabaseName() pulumi.StringOutput {
  1202  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.DatabaseName }).(pulumi.StringOutput)
  1203  }
  1204  
  1205  // The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example `db.m6g.xlarge`. Not all DB instance classes are available in all AWS Regions, or for all database engines. For the full list of DB instance classes and availability for your engine, see [DB instance class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) in the Amazon RDS User Guide.
  1206  func (o ClusterOutput) DbClusterInstanceClass() pulumi.StringPtrOutput {
  1207  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.DbClusterInstanceClass }).(pulumi.StringPtrOutput)
  1208  }
  1209  
  1210  // A cluster parameter group to associate with the cluster.
  1211  func (o ClusterOutput) DbClusterParameterGroupName() pulumi.StringOutput {
  1212  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.DbClusterParameterGroupName }).(pulumi.StringOutput)
  1213  }
  1214  
  1215  // Instance parameter group to associate with all instances of the DB cluster. The `dbInstanceParameterGroupName` parameter is only valid in combination with the `allowMajorVersionUpgrade` parameter.
  1216  func (o ClusterOutput) DbInstanceParameterGroupName() pulumi.StringPtrOutput {
  1217  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.DbInstanceParameterGroupName }).(pulumi.StringPtrOutput)
  1218  }
  1219  
  1220  // DB subnet group to associate with this DB cluster.
  1221  // **NOTE:** This must match the `dbSubnetGroupName` specified on every `rds.ClusterInstance` in the cluster.
  1222  func (o ClusterOutput) DbSubnetGroupName() pulumi.StringOutput {
  1223  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.DbSubnetGroupName }).(pulumi.StringOutput)
  1224  }
  1225  
  1226  // For use with RDS Custom.
  1227  func (o ClusterOutput) DbSystemId() pulumi.StringOutput {
  1228  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.DbSystemId }).(pulumi.StringOutput)
  1229  }
  1230  
  1231  // Specifies whether to remove automated backups immediately after the DB cluster is deleted. Default is `true`.
  1232  func (o ClusterOutput) DeleteAutomatedBackups() pulumi.BoolPtrOutput {
  1233  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.DeleteAutomatedBackups }).(pulumi.BoolPtrOutput)
  1234  }
  1235  
  1236  // If the DB cluster should have deletion protection enabled.
  1237  // The database can't be deleted when this value is set to `true`.
  1238  // The default is `false`.
  1239  func (o ClusterOutput) DeletionProtection() pulumi.BoolPtrOutput {
  1240  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.DeletionProtection }).(pulumi.BoolPtrOutput)
  1241  }
  1242  
  1243  // The ID of the Directory Service Active Directory domain to create the cluster in.
  1244  func (o ClusterOutput) Domain() pulumi.StringPtrOutput {
  1245  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.Domain }).(pulumi.StringPtrOutput)
  1246  }
  1247  
  1248  // The name of the IAM role to be used when making API calls to the Directory Service.
  1249  func (o ClusterOutput) DomainIamRoleName() pulumi.StringPtrOutput {
  1250  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.DomainIamRoleName }).(pulumi.StringPtrOutput)
  1251  }
  1252  
  1253  // Whether cluster should forward writes to an associated global cluster. Applied to secondary clusters to enable them to forward writes to an `rds.GlobalCluster`'s primary cluster. See the [User Guide for Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-write-forwarding.html) for more information.
  1254  func (o ClusterOutput) EnableGlobalWriteForwarding() pulumi.BoolPtrOutput {
  1255  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.EnableGlobalWriteForwarding }).(pulumi.BoolPtrOutput)
  1256  }
  1257  
  1258  // Enable HTTP endpoint (data API). Only valid when `engineMode` is set to `serverless`.
  1259  func (o ClusterOutput) EnableHttpEndpoint() pulumi.BoolPtrOutput {
  1260  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.EnableHttpEndpoint }).(pulumi.BoolPtrOutput)
  1261  }
  1262  
  1263  // Whether read replicas can forward write operations to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.. See the [User Guide for Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-mysql-write-forwarding.html) for more information. **NOTE:** Local write forwarding requires Aurora MySQL version 3.04 or higher.
  1264  func (o ClusterOutput) EnableLocalWriteForwarding() pulumi.BoolPtrOutput {
  1265  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.EnableLocalWriteForwarding }).(pulumi.BoolPtrOutput)
  1266  }
  1267  
  1268  // Set of log types to export to cloudwatch. If omitted, no logs will be exported. The following log types are supported: `audit`, `error`, `general`, `slowquery`, `postgresql` (PostgreSQL).
  1269  func (o ClusterOutput) EnabledCloudwatchLogsExports() pulumi.StringArrayOutput {
  1270  	return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.EnabledCloudwatchLogsExports }).(pulumi.StringArrayOutput)
  1271  }
  1272  
  1273  // DNS address of the RDS instance
  1274  func (o ClusterOutput) Endpoint() pulumi.StringOutput {
  1275  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Endpoint }).(pulumi.StringOutput)
  1276  }
  1277  
  1278  // Name of the database engine to be used for this DB cluster. Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`. (Note that `mysql` and `postgres` are Multi-AZ RDS clusters).
  1279  func (o ClusterOutput) Engine() pulumi.StringOutput {
  1280  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Engine }).(pulumi.StringOutput)
  1281  }
  1282  
  1283  // Database engine mode. Valid values: `global` (only valid for Aurora MySQL 1.21 and earlier), `parallelquery`, `provisioned`, `serverless`. Defaults to: `provisioned`. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) for limitations when using `serverless`.
  1284  func (o ClusterOutput) EngineMode() pulumi.StringPtrOutput {
  1285  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.EngineMode }).(pulumi.StringPtrOutput)
  1286  }
  1287  
  1288  // Database engine version. Updating this argument results in an outage. See the [Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) and [Aurora Postgres](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.html) documentation for your configured engine to determine this value, or by running `aws rds describe-db-engine-versions`. For example with Aurora MySQL 2, a potential value for this argument is `5.7.mysql_aurora.2.03.2`. The value can contain a partial version where supported by the API. The actual engine version used is returned in the attribute `engineVersionActual`, , see Attribute Reference below.
  1289  func (o ClusterOutput) EngineVersion() pulumi.StringOutput {
  1290  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.EngineVersion }).(pulumi.StringOutput)
  1291  }
  1292  
  1293  // Running version of the database.
  1294  func (o ClusterOutput) EngineVersionActual() pulumi.StringOutput {
  1295  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.EngineVersionActual }).(pulumi.StringOutput)
  1296  }
  1297  
  1298  // Name of your final DB snapshot when this DB cluster is deleted. If omitted, no final snapshot will be made.
  1299  func (o ClusterOutput) FinalSnapshotIdentifier() pulumi.StringPtrOutput {
  1300  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.FinalSnapshotIdentifier }).(pulumi.StringPtrOutput)
  1301  }
  1302  
  1303  // Global cluster identifier specified on `rds.GlobalCluster`.
  1304  func (o ClusterOutput) GlobalClusterIdentifier() pulumi.StringPtrOutput {
  1305  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.GlobalClusterIdentifier }).(pulumi.StringPtrOutput)
  1306  }
  1307  
  1308  // Route53 Hosted Zone ID of the endpoint
  1309  func (o ClusterOutput) HostedZoneId() pulumi.StringOutput {
  1310  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.HostedZoneId }).(pulumi.StringOutput)
  1311  }
  1312  
  1313  // Specifies whether or not mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) for availability and limitations.
  1314  func (o ClusterOutput) IamDatabaseAuthenticationEnabled() pulumi.BoolPtrOutput {
  1315  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.IamDatabaseAuthenticationEnabled }).(pulumi.BoolPtrOutput)
  1316  }
  1317  
  1318  // List of ARNs for the IAM roles to associate to the RDS Cluster.
  1319  func (o ClusterOutput) IamRoles() pulumi.StringArrayOutput {
  1320  	return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.IamRoles }).(pulumi.StringArrayOutput)
  1321  }
  1322  
  1323  // Amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster. For information about valid Iops values, see [Amazon RDS Provisioned IOPS storage to improve performance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) in the Amazon RDS User Guide. (This setting is required to create a Multi-AZ DB cluster). Must be a multiple between .5 and 50 of the storage amount for the DB cluster.
  1324  func (o ClusterOutput) Iops() pulumi.IntPtrOutput {
  1325  	return o.ApplyT(func(v *Cluster) pulumi.IntPtrOutput { return v.Iops }).(pulumi.IntPtrOutput)
  1326  }
  1327  
  1328  // ARN for the KMS encryption key. When specifying `kmsKeyId`, `storageEncrypted` needs to be set to true.
  1329  func (o ClusterOutput) KmsKeyId() pulumi.StringOutput {
  1330  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.KmsKeyId }).(pulumi.StringOutput)
  1331  }
  1332  
  1333  // Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if `masterPassword` is provided.
  1334  func (o ClusterOutput) ManageMasterUserPassword() pulumi.BoolPtrOutput {
  1335  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.ManageMasterUserPassword }).(pulumi.BoolPtrOutput)
  1336  }
  1337  
  1338  // Password for the master DB user. Note that this may show up in logs, and it will be stored in the state file. Please refer to the [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints). Cannot be set if `manageMasterUserPassword` is set to `true`.
  1339  func (o ClusterOutput) MasterPassword() pulumi.StringPtrOutput {
  1340  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.MasterPassword }).(pulumi.StringPtrOutput)
  1341  }
  1342  
  1343  // Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. To use a KMS key in a different Amazon Web Services account, specify the key ARN or alias ARN. If not specified, the default KMS key for your Amazon Web Services account is used.
  1344  func (o ClusterOutput) MasterUserSecretKmsKeyId() pulumi.StringOutput {
  1345  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.MasterUserSecretKmsKeyId }).(pulumi.StringOutput)
  1346  }
  1347  
  1348  // Block that specifies the master user secret. Only available when `manageMasterUserPassword` is set to true. Documented below.
  1349  func (o ClusterOutput) MasterUserSecrets() ClusterMasterUserSecretArrayOutput {
  1350  	return o.ApplyT(func(v *Cluster) ClusterMasterUserSecretArrayOutput { return v.MasterUserSecrets }).(ClusterMasterUserSecretArrayOutput)
  1351  }
  1352  
  1353  // Username for the master DB user. Please refer to the [RDS Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints). This argument does not support in-place updates and cannot be changed during a restore from snapshot.
  1354  func (o ClusterOutput) MasterUsername() pulumi.StringOutput {
  1355  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.MasterUsername }).(pulumi.StringOutput)
  1356  }
  1357  
  1358  // Network type of the cluster. Valid values: `IPV4`, `DUAL`.
  1359  func (o ClusterOutput) NetworkType() pulumi.StringOutput {
  1360  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.NetworkType }).(pulumi.StringOutput)
  1361  }
  1362  
  1363  // Port on which the DB accepts connections
  1364  func (o ClusterOutput) Port() pulumi.IntOutput {
  1365  	return o.ApplyT(func(v *Cluster) pulumi.IntOutput { return v.Port }).(pulumi.IntOutput)
  1366  }
  1367  
  1368  // Daily time range during which automated backups are created if automated backups are enabled using the BackupRetentionPeriod parameter.Time in UTC. Default: A 30-minute window selected at random from an 8-hour block of time per regionE.g., 04:00-09:00
  1369  func (o ClusterOutput) PreferredBackupWindow() pulumi.StringOutput {
  1370  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.PreferredBackupWindow }).(pulumi.StringOutput)
  1371  }
  1372  
  1373  // Weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30
  1374  func (o ClusterOutput) PreferredMaintenanceWindow() pulumi.StringOutput {
  1375  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.PreferredMaintenanceWindow }).(pulumi.StringOutput)
  1376  }
  1377  
  1378  // Read-only endpoint for the Aurora cluster, automatically
  1379  // load-balanced across replicas
  1380  func (o ClusterOutput) ReaderEndpoint() pulumi.StringOutput {
  1381  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ReaderEndpoint }).(pulumi.StringOutput)
  1382  }
  1383  
  1384  // ARN of a source DB cluster or DB instance if this DB cluster is to be created as a Read Replica. If DB Cluster is part of a Global Cluster, use the `lifecycle` configuration block `ignoreChanges` argument to prevent this provider from showing differences for this argument instead of configuring this value.
  1385  func (o ClusterOutput) ReplicationSourceIdentifier() pulumi.StringPtrOutput {
  1386  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.ReplicationSourceIdentifier }).(pulumi.StringPtrOutput)
  1387  }
  1388  
  1389  // Nested attribute for [point in time restore](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-pitr.html). More details below.
  1390  func (o ClusterOutput) RestoreToPointInTime() ClusterRestoreToPointInTimePtrOutput {
  1391  	return o.ApplyT(func(v *Cluster) ClusterRestoreToPointInTimePtrOutput { return v.RestoreToPointInTime }).(ClusterRestoreToPointInTimePtrOutput)
  1392  }
  1393  
  1394  func (o ClusterOutput) S3Import() ClusterS3ImportPtrOutput {
  1395  	return o.ApplyT(func(v *Cluster) ClusterS3ImportPtrOutput { return v.S3Import }).(ClusterS3ImportPtrOutput)
  1396  }
  1397  
  1398  // Nested attribute with scaling properties. Only valid when `engineMode` is set to `serverless`. More details below.
  1399  func (o ClusterOutput) ScalingConfiguration() ClusterScalingConfigurationPtrOutput {
  1400  	return o.ApplyT(func(v *Cluster) ClusterScalingConfigurationPtrOutput { return v.ScalingConfiguration }).(ClusterScalingConfigurationPtrOutput)
  1401  }
  1402  
  1403  // Nested attribute with scaling properties for ServerlessV2. Only valid when `engineMode` is set to `provisioned`. More details below.
  1404  func (o ClusterOutput) Serverlessv2ScalingConfiguration() ClusterServerlessv2ScalingConfigurationPtrOutput {
  1405  	return o.ApplyT(func(v *Cluster) ClusterServerlessv2ScalingConfigurationPtrOutput {
  1406  		return v.Serverlessv2ScalingConfiguration
  1407  	}).(ClusterServerlessv2ScalingConfigurationPtrOutput)
  1408  }
  1409  
  1410  // 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`.
  1411  func (o ClusterOutput) SkipFinalSnapshot() pulumi.BoolPtrOutput {
  1412  	return o.ApplyT(func(v *Cluster) pulumi.BoolPtrOutput { return v.SkipFinalSnapshot }).(pulumi.BoolPtrOutput)
  1413  }
  1414  
  1415  // 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. Conflicts with `globalClusterIdentifier`. Clusters cannot be restored from snapshot **and** joined to an existing global cluster in a single operation. See the [AWS documentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-getting-started.html#aurora-global-database.use-snapshot) or the Global Cluster Restored From Snapshot example for instructions on building a global cluster starting with a snapshot.
  1416  func (o ClusterOutput) SnapshotIdentifier() pulumi.StringPtrOutput {
  1417  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.SnapshotIdentifier }).(pulumi.StringPtrOutput)
  1418  }
  1419  
  1420  // The source region for an encrypted replica DB cluster.
  1421  func (o ClusterOutput) SourceRegion() pulumi.StringPtrOutput {
  1422  	return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.SourceRegion }).(pulumi.StringPtrOutput)
  1423  }
  1424  
  1425  // Specifies whether the DB cluster is encrypted. The default is `false` for `provisioned` `engineMode` and `true` for `serverless` `engineMode`. When restoring an unencrypted `snapshotIdentifier`, the `kmsKeyId` argument must be provided to encrypt the restored cluster. The provider will only perform drift detection if a configuration value is provided.
  1426  func (o ClusterOutput) StorageEncrypted() pulumi.BoolOutput {
  1427  	return o.ApplyT(func(v *Cluster) pulumi.BoolOutput { return v.StorageEncrypted }).(pulumi.BoolOutput)
  1428  }
  1429  
  1430  // (Forces new for Multi-AZ DB clusters) Specifies the storage type to be associated with the DB cluster. For Aurora DB clusters, `storageType` modifications can be done in-place. For Multi-AZ DB Clusters, the `iops` argument must also be set. Valid values are: `""`, `aurora-iopt1` (Aurora DB Clusters); `io1`, `io2` (Multi-AZ DB Clusters). Default: `""` (Aurora DB Clusters); `io1` (Multi-AZ DB Clusters).
  1431  func (o ClusterOutput) StorageType() pulumi.StringOutput {
  1432  	return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.StorageType }).(pulumi.StringOutput)
  1433  }
  1434  
  1435  // 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.
  1436  func (o ClusterOutput) Tags() pulumi.StringMapOutput {
  1437  	return o.ApplyT(func(v *Cluster) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
  1438  }
  1439  
  1440  // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
  1441  //
  1442  // Deprecated: Please use `tags` instead.
  1443  func (o ClusterOutput) TagsAll() pulumi.StringMapOutput {
  1444  	return o.ApplyT(func(v *Cluster) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
  1445  }
  1446  
  1447  // List of VPC security groups to associate with the Cluster
  1448  func (o ClusterOutput) VpcSecurityGroupIds() pulumi.StringArrayOutput {
  1449  	return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.VpcSecurityGroupIds }).(pulumi.StringArrayOutput)
  1450  }
  1451  
  1452  type ClusterArrayOutput struct{ *pulumi.OutputState }
  1453  
  1454  func (ClusterArrayOutput) ElementType() reflect.Type {
  1455  	return reflect.TypeOf((*[]*Cluster)(nil)).Elem()
  1456  }
  1457  
  1458  func (o ClusterArrayOutput) ToClusterArrayOutput() ClusterArrayOutput {
  1459  	return o
  1460  }
  1461  
  1462  func (o ClusterArrayOutput) ToClusterArrayOutputWithContext(ctx context.Context) ClusterArrayOutput {
  1463  	return o
  1464  }
  1465  
  1466  func (o ClusterArrayOutput) Index(i pulumi.IntInput) ClusterOutput {
  1467  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Cluster {
  1468  		return vs[0].([]*Cluster)[vs[1].(int)]
  1469  	}).(ClusterOutput)
  1470  }
  1471  
  1472  type ClusterMapOutput struct{ *pulumi.OutputState }
  1473  
  1474  func (ClusterMapOutput) ElementType() reflect.Type {
  1475  	return reflect.TypeOf((*map[string]*Cluster)(nil)).Elem()
  1476  }
  1477  
  1478  func (o ClusterMapOutput) ToClusterMapOutput() ClusterMapOutput {
  1479  	return o
  1480  }
  1481  
  1482  func (o ClusterMapOutput) ToClusterMapOutputWithContext(ctx context.Context) ClusterMapOutput {
  1483  	return o
  1484  }
  1485  
  1486  func (o ClusterMapOutput) MapIndex(k pulumi.StringInput) ClusterOutput {
  1487  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Cluster {
  1488  		return vs[0].(map[string]*Cluster)[vs[1].(string)]
  1489  	}).(ClusterOutput)
  1490  }
  1491  
  1492  func init() {
  1493  	pulumi.RegisterInputType(reflect.TypeOf((*ClusterInput)(nil)).Elem(), &Cluster{})
  1494  	pulumi.RegisterInputType(reflect.TypeOf((*ClusterArrayInput)(nil)).Elem(), ClusterArray{})
  1495  	pulumi.RegisterInputType(reflect.TypeOf((*ClusterMapInput)(nil)).Elem(), ClusterMap{})
  1496  	pulumi.RegisterOutputType(ClusterOutput{})
  1497  	pulumi.RegisterOutputType(ClusterArrayOutput{})
  1498  	pulumi.RegisterOutputType(ClusterMapOutput{})
  1499  }