github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/rds/instance.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  // Provides an RDS instance resource.  A DB instance is an isolated database
    16  // environment in the cloud.  A DB instance can contain multiple user-created
    17  // databases.
    18  //
    19  // Changes to a DB instance can occur when you manually change a parameter, such as
    20  // `allocatedStorage`, and are reflected in the next maintenance window. Because
    21  // of this, this provider may report a difference in its planning phase because a
    22  // modification has not yet taken place. You can use the `applyImmediately` flag
    23  // to instruct the service to apply the change immediately (see documentation
    24  // below).
    25  //
    26  // When upgrading the major version of an engine, `allowMajorVersionUpgrade` must be set to `true`.
    27  //
    28  // > **Note:** using `applyImmediately` can result in a brief downtime as the server reboots.
    29  // See the AWS Docs on [RDS Instance Maintenance][instance-maintenance] for more information.
    30  //
    31  // > **Note:** All arguments including the username and password will be stored in the raw state as plain-text.
    32  // Read more about sensitive data instate.
    33  //
    34  // ## RDS Instance Class Types
    35  //
    36  // Amazon RDS supports instance classes for the following use cases: General-purpose, Memory-optimized, Burstable Performance, and Optimized-reads.
    37  // For more information please read the AWS RDS documentation about [DB Instance Class Types](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html)
    38  //
    39  // ## Low-Downtime Updates
    40  //
    41  // By default, RDS applies updates to DB Instances in-place, which can lead to service interruptions.
    42  // Low-downtime updates minimize service interruptions by performing the updates with an [RDS Blue/Green deployment][blue-green] and switching over the instances when complete.
    43  //
    44  // Low-downtime updates are only available for DB Instances using MySQL and MariaDB,
    45  // as other engines are not supported by RDS Blue/Green deployments.
    46  // They cannot be used with DB Instances with replicas.
    47  //
    48  // Backups must be enabled to use low-downtime updates.
    49  //
    50  // Enable low-downtime updates by setting `blue_green_update.enabled` to `true`.
    51  //
    52  // ## Example Usage
    53  //
    54  // ### Basic Usage
    55  //
    56  // <!--Start PulumiCodeChooser -->
    57  // ```go
    58  // package main
    59  //
    60  // import (
    61  //
    62  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
    63  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    64  //
    65  // )
    66  //
    67  //	func main() {
    68  //		pulumi.Run(func(ctx *pulumi.Context) error {
    69  //			_, err := rds.NewInstance(ctx, "default", &rds.InstanceArgs{
    70  //				AllocatedStorage:   pulumi.Int(10),
    71  //				DbName:             pulumi.String("mydb"),
    72  //				Engine:             pulumi.String("mysql"),
    73  //				EngineVersion:      pulumi.String("5.7"),
    74  //				InstanceClass:      pulumi.String(rds.InstanceType_T3_Micro),
    75  //				Username:           pulumi.String("foo"),
    76  //				Password:           pulumi.String("foobarbaz"),
    77  //				ParameterGroupName: pulumi.String("default.mysql5.7"),
    78  //				SkipFinalSnapshot:  pulumi.Bool(true),
    79  //			})
    80  //			if err != nil {
    81  //				return err
    82  //			}
    83  //			return nil
    84  //		})
    85  //	}
    86  //
    87  // ```
    88  // <!--End PulumiCodeChooser -->
    89  //
    90  // ### RDS Custom for Oracle Usage with Replica
    91  //
    92  // <!--Start PulumiCodeChooser -->
    93  // ```go
    94  // package main
    95  //
    96  // import (
    97  //
    98  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms"
    99  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
   100  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   101  //
   102  // )
   103  //
   104  //	func main() {
   105  //		pulumi.Run(func(ctx *pulumi.Context) error {
   106  //			// Lookup the available instance classes for the custom engine for the region being operated in
   107  //			custom_oracle, err := rds.GetOrderableDbInstance(ctx, &rds.GetOrderableDbInstanceArgs{
   108  //				Engine:        "custom-oracle-ee",
   109  //				EngineVersion: pulumi.StringRef("19.c.ee.002"),
   110  //				LicenseModel:  pulumi.StringRef("bring-your-own-license"),
   111  //				StorageType:   pulumi.StringRef("gp3"),
   112  //				PreferredInstanceClasses: []string{
   113  //					"db.r5.xlarge",
   114  //					"db.r5.2xlarge",
   115  //					"db.r5.4xlarge",
   116  //				},
   117  //			}, nil)
   118  //			if err != nil {
   119  //				return err
   120  //			}
   121  //			// The RDS instance resource requires an ARN. Look up the ARN of the KMS key associated with the CEV.
   122  //			byId, err := kms.LookupKey(ctx, &kms.LookupKeyArgs{
   123  //				KeyId: "example-ef278353ceba4a5a97de6784565b9f78",
   124  //			}, nil)
   125  //			if err != nil {
   126  //				return err
   127  //			}
   128  //			_, err = rds.NewInstance(ctx, "default", &rds.InstanceArgs{
   129  //				AllocatedStorage:         pulumi.Int(50),
   130  //				AutoMinorVersionUpgrade:  pulumi.Bool(false),
   131  //				CustomIamInstanceProfile: pulumi.String("AWSRDSCustomInstanceProfile"),
   132  //				BackupRetentionPeriod:    pulumi.Int(7),
   133  //				DbSubnetGroupName:        pulumi.Any(dbSubnetGroupName),
   134  //				Engine:                   pulumi.String(custom_oracle.Engine),
   135  //				EngineVersion:            pulumi.String(custom_oracle.EngineVersion),
   136  //				Identifier:               pulumi.String("ee-instance-demo"),
   137  //				InstanceClass:            custom_oracle.InstanceClass.ApplyT(func(x *string) rds.InstanceType { return rds.InstanceType(*x) }).(rds.InstanceTypeOutput),
   138  //				KmsKeyId:                 pulumi.String(byId.Arn),
   139  //				LicenseModel:             pulumi.String(custom_oracle.LicenseModel),
   140  //				MultiAz:                  pulumi.Bool(false),
   141  //				Password:                 pulumi.String("avoid-plaintext-passwords"),
   142  //				Username:                 pulumi.String("test"),
   143  //				StorageEncrypted:         pulumi.Bool(true),
   144  //			})
   145  //			if err != nil {
   146  //				return err
   147  //			}
   148  //			_, err = rds.NewInstance(ctx, "test-replica", &rds.InstanceArgs{
   149  //				ReplicateSourceDb:        _default.Identifier,
   150  //				ReplicaMode:              pulumi.String("mounted"),
   151  //				AutoMinorVersionUpgrade:  pulumi.Bool(false),
   152  //				CustomIamInstanceProfile: pulumi.String("AWSRDSCustomInstanceProfile"),
   153  //				BackupRetentionPeriod:    pulumi.Int(7),
   154  //				Identifier:               pulumi.String("ee-instance-replica"),
   155  //				InstanceClass:            custom_oracle.InstanceClass.ApplyT(func(x *string) rds.InstanceType { return rds.InstanceType(*x) }).(rds.InstanceTypeOutput),
   156  //				KmsKeyId:                 pulumi.String(byId.Arn),
   157  //				MultiAz:                  pulumi.Bool(false),
   158  //				SkipFinalSnapshot:        pulumi.Bool(true),
   159  //				StorageEncrypted:         pulumi.Bool(true),
   160  //			})
   161  //			if err != nil {
   162  //				return err
   163  //			}
   164  //			return nil
   165  //		})
   166  //	}
   167  //
   168  // ```
   169  // <!--End PulumiCodeChooser -->
   170  //
   171  // ### RDS Custom for SQL Server
   172  //
   173  // <!--Start PulumiCodeChooser -->
   174  // ```go
   175  // package main
   176  //
   177  // import (
   178  //
   179  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms"
   180  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
   181  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   182  //
   183  // )
   184  //
   185  //	func main() {
   186  //		pulumi.Run(func(ctx *pulumi.Context) error {
   187  //			// Lookup the available instance classes for the custom engine for the region being operated in
   188  //			custom_sqlserver, err := rds.GetOrderableDbInstance(ctx, &rds.GetOrderableDbInstanceArgs{
   189  //				Engine:        "custom-sqlserver-se",
   190  //				EngineVersion: pulumi.StringRef("15.00.4249.2.v1"),
   191  //				StorageType:   pulumi.StringRef("gp3"),
   192  //				PreferredInstanceClasses: []string{
   193  //					"db.r5.xlarge",
   194  //					"db.r5.2xlarge",
   195  //					"db.r5.4xlarge",
   196  //				},
   197  //			}, nil)
   198  //			if err != nil {
   199  //				return err
   200  //			}
   201  //			// The RDS instance resource requires an ARN. Look up the ARN of the KMS key.
   202  //			byId, err := kms.LookupKey(ctx, &kms.LookupKeyArgs{
   203  //				KeyId: "example-ef278353ceba4a5a97de6784565b9f78",
   204  //			}, nil)
   205  //			if err != nil {
   206  //				return err
   207  //			}
   208  //			_, err = rds.NewInstance(ctx, "example", &rds.InstanceArgs{
   209  //				AllocatedStorage:         pulumi.Int(500),
   210  //				AutoMinorVersionUpgrade:  pulumi.Bool(false),
   211  //				CustomIamInstanceProfile: pulumi.String("AWSRDSCustomSQLServerInstanceProfile"),
   212  //				BackupRetentionPeriod:    pulumi.Int(7),
   213  //				DbSubnetGroupName:        pulumi.Any(dbSubnetGroupName),
   214  //				Engine:                   pulumi.String(custom_sqlserver.Engine),
   215  //				EngineVersion:            pulumi.String(custom_sqlserver.EngineVersion),
   216  //				Identifier:               pulumi.String("sql-instance-demo"),
   217  //				InstanceClass:            custom_sqlserver.InstanceClass.ApplyT(func(x *string) rds.InstanceType { return rds.InstanceType(*x) }).(rds.InstanceTypeOutput),
   218  //				KmsKeyId:                 pulumi.String(byId.Arn),
   219  //				MultiAz:                  pulumi.Bool(false),
   220  //				Password:                 pulumi.String("avoid-plaintext-passwords"),
   221  //				StorageEncrypted:         pulumi.Bool(true),
   222  //				Username:                 pulumi.String("test"),
   223  //			})
   224  //			if err != nil {
   225  //				return err
   226  //			}
   227  //			return nil
   228  //		})
   229  //	}
   230  //
   231  // ```
   232  // <!--End PulumiCodeChooser -->
   233  //
   234  // ### RDS Db2 Usage
   235  //
   236  // <!--Start PulumiCodeChooser -->
   237  // ```go
   238  // package main
   239  //
   240  // import (
   241  //
   242  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
   243  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   244  //
   245  // )
   246  //
   247  //	func main() {
   248  //		pulumi.Run(func(ctx *pulumi.Context) error {
   249  //			// Lookup the default version for the engine. Db2 Standard Edition is `db2-se`, Db2 Advanced Edition is `db2-ae`.
   250  //			_default, err := rds.GetEngineVersion(ctx, &rds.GetEngineVersionArgs{
   251  //				Engine: "db2-se",
   252  //			}, nil)
   253  //			if err != nil {
   254  //				return err
   255  //			}
   256  //			// Lookup the available instance classes for the engine in the region being operated in
   257  //			example, err := rds.GetOrderableDbInstance(ctx, &rds.GetOrderableDbInstanceArgs{
   258  //				Engine:        _default.Engine,
   259  //				EngineVersion: pulumi.StringRef(_default.Version),
   260  //				LicenseModel:  pulumi.StringRef("bring-your-own-license"),
   261  //				StorageType:   pulumi.StringRef("gp3"),
   262  //				PreferredInstanceClasses: []string{
   263  //					"db.t3.small",
   264  //					"db.r6i.large",
   265  //					"db.m6i.large",
   266  //				},
   267  //			}, nil)
   268  //			if err != nil {
   269  //				return err
   270  //			}
   271  //			// The RDS Db2 instance resource requires licensing information. Create a new parameter group using the default paramater group as a source, and set license information.
   272  //			exampleParameterGroup, err := rds.NewParameterGroup(ctx, "example", &rds.ParameterGroupArgs{
   273  //				Name:   pulumi.String("db-db2-params"),
   274  //				Family: pulumi.String(_default.ParameterGroupFamily),
   275  //				Parameters: rds.ParameterGroupParameterArray{
   276  //					&rds.ParameterGroupParameterArgs{
   277  //						ApplyMethod: pulumi.String("immediate"),
   278  //						Name:        pulumi.String("rds.ibm_customer_id"),
   279  //						Value:       pulumi.String("0"),
   280  //					},
   281  //					&rds.ParameterGroupParameterArgs{
   282  //						ApplyMethod: pulumi.String("immediate"),
   283  //						Name:        pulumi.String("rds.ibm_site_id"),
   284  //						Value:       pulumi.String("0"),
   285  //					},
   286  //				},
   287  //			})
   288  //			if err != nil {
   289  //				return err
   290  //			}
   291  //			// Create the RDS Db2 instance, use the data sources defined to set attributes
   292  //			_, err = rds.NewInstance(ctx, "example", &rds.InstanceArgs{
   293  //				AllocatedStorage:      pulumi.Int(100),
   294  //				BackupRetentionPeriod: pulumi.Int(7),
   295  //				DbName:                pulumi.String("test"),
   296  //				Engine:                pulumi.String(example.Engine),
   297  //				EngineVersion:         pulumi.String(example.EngineVersion),
   298  //				Identifier:            pulumi.String("db2-instance-demo"),
   299  //				InstanceClass:         example.InstanceClass.ApplyT(func(x *string) rds.InstanceType { return rds.InstanceType(*x) }).(rds.InstanceTypeOutput),
   300  //				ParameterGroupName:    exampleParameterGroup.Name,
   301  //				Password:              pulumi.String("avoid-plaintext-passwords"),
   302  //				Username:              pulumi.String("test"),
   303  //			})
   304  //			if err != nil {
   305  //				return err
   306  //			}
   307  //			return nil
   308  //		})
   309  //	}
   310  //
   311  // ```
   312  // <!--End PulumiCodeChooser -->
   313  //
   314  // ### Storage Autoscaling
   315  //
   316  // To enable Storage Autoscaling with instances that support the feature, define the `maxAllocatedStorage` argument higher than the `allocatedStorage` argument. This provider will automatically hide differences with the `allocatedStorage` argument value if autoscaling occurs.
   317  //
   318  // <!--Start PulumiCodeChooser -->
   319  // ```go
   320  // package main
   321  //
   322  // import (
   323  //
   324  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
   325  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   326  //
   327  // )
   328  //
   329  //	func main() {
   330  //		pulumi.Run(func(ctx *pulumi.Context) error {
   331  //			_, err := rds.NewInstance(ctx, "example", &rds.InstanceArgs{
   332  //				AllocatedStorage:    pulumi.Int(50),
   333  //				MaxAllocatedStorage: pulumi.Int(100),
   334  //			})
   335  //			if err != nil {
   336  //				return err
   337  //			}
   338  //			return nil
   339  //		})
   340  //	}
   341  //
   342  // ```
   343  // <!--End PulumiCodeChooser -->
   344  //
   345  // ### Managed Master Passwords via Secrets Manager, default KMS Key
   346  //
   347  // > 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).
   348  //
   349  // 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 `password` attribute (removal is required).
   350  //
   351  // <!--Start PulumiCodeChooser -->
   352  // ```go
   353  // package main
   354  //
   355  // import (
   356  //
   357  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
   358  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   359  //
   360  // )
   361  //
   362  //	func main() {
   363  //		pulumi.Run(func(ctx *pulumi.Context) error {
   364  //			_, err := rds.NewInstance(ctx, "default", &rds.InstanceArgs{
   365  //				AllocatedStorage:         pulumi.Int(10),
   366  //				DbName:                   pulumi.String("mydb"),
   367  //				Engine:                   pulumi.String("mysql"),
   368  //				EngineVersion:            pulumi.String("5.7"),
   369  //				InstanceClass:            pulumi.String(rds.InstanceType_T3_Micro),
   370  //				ManageMasterUserPassword: pulumi.Bool(true),
   371  //				Username:                 pulumi.String("foo"),
   372  //				ParameterGroupName:       pulumi.String("default.mysql5.7"),
   373  //			})
   374  //			if err != nil {
   375  //				return err
   376  //			}
   377  //			return nil
   378  //		})
   379  //	}
   380  //
   381  // ```
   382  // <!--End PulumiCodeChooser -->
   383  //
   384  // ### Managed Master Passwords via Secrets Manager, specific KMS Key
   385  //
   386  // > 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).
   387  //
   388  // You can specify the `masterUserSecretKmsKeyId` attribute to specify a specific KMS Key.
   389  //
   390  // <!--Start PulumiCodeChooser -->
   391  // ```go
   392  // package main
   393  //
   394  // import (
   395  //
   396  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms"
   397  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
   398  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   399  //
   400  // )
   401  //
   402  //	func main() {
   403  //		pulumi.Run(func(ctx *pulumi.Context) error {
   404  //			example, err := kms.NewKey(ctx, "example", &kms.KeyArgs{
   405  //				Description: pulumi.String("Example KMS Key"),
   406  //			})
   407  //			if err != nil {
   408  //				return err
   409  //			}
   410  //			_, err = rds.NewInstance(ctx, "default", &rds.InstanceArgs{
   411  //				AllocatedStorage:         pulumi.Int(10),
   412  //				DbName:                   pulumi.String("mydb"),
   413  //				Engine:                   pulumi.String("mysql"),
   414  //				EngineVersion:            pulumi.String("5.7"),
   415  //				InstanceClass:            pulumi.String(rds.InstanceType_T3_Micro),
   416  //				ManageMasterUserPassword: pulumi.Bool(true),
   417  //				MasterUserSecretKmsKeyId: example.KeyId,
   418  //				Username:                 pulumi.String("foo"),
   419  //				ParameterGroupName:       pulumi.String("default.mysql5.7"),
   420  //			})
   421  //			if err != nil {
   422  //				return err
   423  //			}
   424  //			return nil
   425  //		})
   426  //	}
   427  //
   428  // ```
   429  // <!--End PulumiCodeChooser -->
   430  //
   431  // ## Import
   432  //
   433  // Using `pulumi import`, import DB Instances using the `identifier`. For example:
   434  //
   435  // ```sh
   436  // $ pulumi import aws:rds/instance:Instance default mydb-rds-instance
   437  // ```
   438  type Instance struct {
   439  	pulumi.CustomResourceState
   440  
   441  	// Specifies the DNS address of the DB instance.
   442  	Address pulumi.StringOutput `pulumi:"address"`
   443  	// The allocated storage in gibibytes. If `maxAllocatedStorage` is configured, this argument represents the initial storage allocation and differences from the configuration will be ignored automatically when Storage Autoscaling occurs. If `replicateSourceDb` is set, the value is ignored during the creation of the instance.
   444  	AllocatedStorage pulumi.IntOutput `pulumi:"allocatedStorage"`
   445  	// Indicates that major version
   446  	// upgrades are allowed. Changing this parameter does not result in an outage and
   447  	// the change is asynchronously applied as soon as possible.
   448  	AllowMajorVersionUpgrade pulumi.BoolPtrOutput `pulumi:"allowMajorVersionUpgrade"`
   449  	// Specifies whether any database modifications
   450  	// are applied immediately, or during the next maintenance window. Default is
   451  	// `false`. See [Amazon RDS Documentation for more
   452  	// information.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html)
   453  	ApplyImmediately pulumi.BoolPtrOutput `pulumi:"applyImmediately"`
   454  	// The ARN of the RDS instance.
   455  	Arn pulumi.StringOutput `pulumi:"arn"`
   456  	// Indicates that minor engine upgrades
   457  	// will be applied automatically to the DB instance during the maintenance window.
   458  	// Defaults to true.
   459  	AutoMinorVersionUpgrade pulumi.BoolPtrOutput `pulumi:"autoMinorVersionUpgrade"`
   460  	// The AZ for the RDS instance.
   461  	AvailabilityZone pulumi.StringOutput `pulumi:"availabilityZone"`
   462  	// The days to retain backups for.
   463  	// Must be between `0` and `35`.
   464  	// Default is `0`.
   465  	// Must be greater than `0` if the database is used as a source for a [Read Replica][instance-replication],
   466  	// uses low-downtime updates,
   467  	// or will use [RDS Blue/Green deployments][blue-green].
   468  	BackupRetentionPeriod pulumi.IntOutput `pulumi:"backupRetentionPeriod"`
   469  	// Specifies where automated backups and manual snapshots are stored. Possible values are `region` (default) and `outposts`. See [Working with Amazon RDS on AWS Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) for more information.
   470  	BackupTarget pulumi.StringOutput `pulumi:"backupTarget"`
   471  	// The daily time range (in UTC) during which automated backups are created if they are enabled.
   472  	// Example: "09:46-10:16". Must not overlap with `maintenanceWindow`.
   473  	BackupWindow pulumi.StringOutput `pulumi:"backupWindow"`
   474  	// Enables low-downtime updates using [RDS Blue/Green deployments][blue-green].
   475  	// See `blueGreenUpdate` below.
   476  	BlueGreenUpdate InstanceBlueGreenUpdatePtrOutput `pulumi:"blueGreenUpdate"`
   477  	// The identifier of the CA certificate for the DB instance.
   478  	CaCertIdentifier pulumi.StringOutput `pulumi:"caCertIdentifier"`
   479  	// The character set name to use for DB encoding in Oracle and Microsoft SQL instances (collation).
   480  	// This can't be changed.
   481  	// See [Oracle Character Sets Supported in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleCharacterSets.html) or
   482  	// [Server-Level Collation for Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Collation.html) for more information.
   483  	// Cannot be set  with `replicateSourceDb`, `restoreToPointInTime`, `s3Import`, or `snapshotIdentifier`.
   484  	CharacterSetName pulumi.StringOutput `pulumi:"characterSetName"`
   485  	// Copy all Instance `tags` to snapshots. Default is `false`.
   486  	CopyTagsToSnapshot pulumi.BoolPtrOutput `pulumi:"copyTagsToSnapshot"`
   487  	// The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance.
   488  	CustomIamInstanceProfile pulumi.StringPtrOutput `pulumi:"customIamInstanceProfile"`
   489  	// Indicates whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance. See [CoIP for RDS on Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html#rds-on-outposts.coip) for more information.
   490  	//
   491  	// > **NOTE:** Removing the `replicateSourceDb` attribute from an existing RDS
   492  	// Replicate database managed by the provider will promote the database to a fully
   493  	// standalone database.
   494  	CustomerOwnedIpEnabled pulumi.BoolPtrOutput `pulumi:"customerOwnedIpEnabled"`
   495  	// The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Note that this does not apply for Oracle or SQL Server engines. See the [AWS documentation](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-instance.html) for more details on what applies for those engines. If you are providing an Oracle db name, it needs to be in all upper case. Cannot be specified for a replica.
   496  	DbName pulumi.StringOutput `pulumi:"dbName"`
   497  	// Name of DB subnet group. DB instance will
   498  	// be created in the VPC associated with the DB subnet group. If unspecified, will
   499  	// be created in the `default` VPC, or in EC2 Classic, if available. When working
   500  	// with read replicas, it should be specified only if the source database
   501  	// specifies an instance in another AWS Region. See [DBSubnetGroupName in API
   502  	// action CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html)
   503  	// for additional read replica constraints.
   504  	DbSubnetGroupName pulumi.StringOutput `pulumi:"dbSubnetGroupName"`
   505  	// Specifies whether to remove automated backups immediately after the DB instance is deleted. Default is `true`.
   506  	DeleteAutomatedBackups pulumi.BoolPtrOutput `pulumi:"deleteAutomatedBackups"`
   507  	// If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to `true`. The default is `false`.
   508  	DeletionProtection pulumi.BoolPtrOutput `pulumi:"deletionProtection"`
   509  	// The ID of the Directory Service Active Directory domain to create the instance in. Conflicts with `domainFqdn`, `domainOu`, `domainAuthSecretArn` and a `domainDnsIps`.
   510  	Domain pulumi.StringPtrOutput `pulumi:"domain"`
   511  	// The ARN for the Secrets Manager secret with the self managed Active Directory credentials for the user joining the domain. Conflicts with `domain` and `domainIamRoleName`.
   512  	DomainAuthSecretArn pulumi.StringPtrOutput `pulumi:"domainAuthSecretArn"`
   513  	// The IPv4 DNS IP addresses of your primary and secondary self managed Active Directory domain controllers. Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of the primary domain controller for both entries in the list. Conflicts with `domain` and `domainIamRoleName`.
   514  	DomainDnsIps pulumi.StringArrayOutput `pulumi:"domainDnsIps"`
   515  	// The fully qualified domain name (FQDN) of the self managed Active Directory domain. Conflicts with `domain` and `domainIamRoleName`.
   516  	DomainFqdn pulumi.StringOutput `pulumi:"domainFqdn"`
   517  	// The name of the IAM role to be used when making API calls to the Directory Service. Conflicts with `domainFqdn`, `domainOu`, `domainAuthSecretArn` and a `domainDnsIps`.
   518  	DomainIamRoleName pulumi.StringPtrOutput `pulumi:"domainIamRoleName"`
   519  	// The self managed Active Directory organizational unit for your DB instance to join. Conflicts with `domain` and `domainIamRoleName`.
   520  	DomainOu pulumi.StringPtrOutput `pulumi:"domainOu"`
   521  	// Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. For supported values, see the EnableCloudwatchLogsExports.member.N parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html).
   522  	EnabledCloudwatchLogsExports pulumi.StringArrayOutput `pulumi:"enabledCloudwatchLogsExports"`
   523  	// The connection endpoint in `address:port` format.
   524  	Endpoint pulumi.StringOutput `pulumi:"endpoint"`
   525  	// The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. 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.
   526  	Engine pulumi.StringOutput `pulumi:"engine"`
   527  	// The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as `5.7` (for `5.7.10`). The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'.
   528  	EngineVersion pulumi.StringOutput `pulumi:"engineVersion"`
   529  	// The running version of the database.
   530  	EngineVersionActual pulumi.StringOutput `pulumi:"engineVersionActual"`
   531  	// The name of your final DB snapshot
   532  	// when this DB instance is deleted. Must be provided if `skipFinalSnapshot` is
   533  	// set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica.
   534  	FinalSnapshotIdentifier pulumi.StringPtrOutput `pulumi:"finalSnapshotIdentifier"`
   535  	// Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.
   536  	HostedZoneId pulumi.StringOutput `pulumi:"hostedZoneId"`
   537  	// Specifies whether mappings of AWS Identity and Access Management (IAM) accounts to database
   538  	// accounts is enabled.
   539  	IamDatabaseAuthenticationEnabled pulumi.BoolPtrOutput `pulumi:"iamDatabaseAuthenticationEnabled"`
   540  	// The name of the RDS instance, if omitted, this provider will assign a random, unique identifier. Required if `restoreToPointInTime` is specified.
   541  	Identifier pulumi.StringOutput `pulumi:"identifier"`
   542  	// Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
   543  	IdentifierPrefix pulumi.StringOutput `pulumi:"identifierPrefix"`
   544  	// The instance type of the RDS instance.
   545  	InstanceClass pulumi.StringOutput `pulumi:"instanceClass"`
   546  	// The amount of provisioned IOPS. Setting this implies a
   547  	// storageType of "io1". Can only be set when `storageType` is `"io1"` or `"gp3"`.
   548  	// Cannot be specified for gp3 storage if the `allocatedStorage` value is below a per-`engine` threshold.
   549  	// See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#gp3-storage) for details.
   550  	Iops pulumi.IntOutput `pulumi:"iops"`
   551  	// The ARN for the KMS encryption key. If creating an
   552  	// encrypted replica, set this to the destination KMS ARN.
   553  	KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"`
   554  	// The latest time, in UTC [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), to which a database can be restored with point-in-time restore.
   555  	LatestRestorableTime pulumi.StringOutput `pulumi:"latestRestorableTime"`
   556  	// License model information for this DB instance. Valid values for this field are as follows:
   557  	// * RDS for MariaDB: `general-public-license`
   558  	// * RDS for Microsoft SQL Server: `license-included`
   559  	// * RDS for MySQL: `general-public-license`
   560  	// * RDS for Oracle: `bring-your-own-license | license-included`
   561  	// * RDS for PostgreSQL: `postgresql-license`
   562  	LicenseModel pulumi.StringOutput `pulumi:"licenseModel"`
   563  	// Specifies the listener connection endpoint for SQL Server Always On. See endpoint below.
   564  	ListenerEndpoints InstanceListenerEndpointArrayOutput `pulumi:"listenerEndpoints"`
   565  	// The window to perform maintenance in.
   566  	// Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". See [RDS
   567  	// Maintenance Window
   568  	// docs](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow)
   569  	// for more information.
   570  	MaintenanceWindow pulumi.StringOutput `pulumi:"maintenanceWindow"`
   571  	// Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if `password` is provided.
   572  	ManageMasterUserPassword pulumi.BoolPtrOutput `pulumi:"manageMasterUserPassword"`
   573  	// The 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.
   574  	MasterUserSecretKmsKeyId pulumi.StringOutput `pulumi:"masterUserSecretKmsKeyId"`
   575  	// A block that specifies the master user secret. Only available when `manageMasterUserPassword` is set to true. Documented below.
   576  	MasterUserSecrets InstanceMasterUserSecretArrayOutput `pulumi:"masterUserSecrets"`
   577  	// When configured, the upper limit to which Amazon RDS can automatically scale the storage of the DB instance. Configuring this will automatically ignore differences to `allocatedStorage`. Must be greater than or equal to `allocatedStorage` or `0` to disable Storage Autoscaling.
   578  	MaxAllocatedStorage pulumi.IntPtrOutput `pulumi:"maxAllocatedStorage"`
   579  	// The interval, in seconds, between points
   580  	// when Enhanced Monitoring metrics are collected for the DB instance. To disable
   581  	// collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid
   582  	// Values: 0, 1, 5, 10, 15, 30, 60.
   583  	MonitoringInterval pulumi.IntPtrOutput `pulumi:"monitoringInterval"`
   584  	// The ARN for the IAM role that permits RDS
   585  	// to send enhanced monitoring metrics to CloudWatch Logs. You can find more
   586  	// information on the [AWS
   587  	// Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html)
   588  	// what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances.
   589  	MonitoringRoleArn pulumi.StringOutput `pulumi:"monitoringRoleArn"`
   590  	// Specifies if the RDS instance is multi-AZ
   591  	MultiAz pulumi.BoolOutput `pulumi:"multiAz"`
   592  	// Deprecated: This property has been deprecated. Please use 'dbName' instead.
   593  	Name pulumi.StringPtrOutput `pulumi:"name"`
   594  	// The national character set is used in the NCHAR, NVARCHAR2, and NCLOB data types for Oracle instances. This can't be changed. See [Oracle Character Sets
   595  	// Supported in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleCharacterSets.html).
   596  	NcharCharacterSetName pulumi.StringOutput `pulumi:"ncharCharacterSetName"`
   597  	// The network type of the DB instance. Valid values: `IPV4`, `DUAL`.
   598  	NetworkType pulumi.StringOutput `pulumi:"networkType"`
   599  	// Name of the DB option group to associate.
   600  	OptionGroupName pulumi.StringOutput `pulumi:"optionGroupName"`
   601  	// Name of the DB parameter group to associate.
   602  	ParameterGroupName pulumi.StringOutput `pulumi:"parameterGroupName"`
   603  	// (Required unless `manageMasterUserPassword` is set to true or unless a `snapshotIdentifier` or `replicateSourceDb`
   604  	// is provided or `manageMasterUserPassword` is set.) Password for the master DB user. Note that this may show up in
   605  	// logs, and it will be stored in the state file. Cannot be set if `manageMasterUserPassword` is set to `true`.
   606  	Password pulumi.StringPtrOutput `pulumi:"password"`
   607  	// Specifies whether Performance Insights are enabled. Defaults to false.
   608  	PerformanceInsightsEnabled pulumi.BoolPtrOutput `pulumi:"performanceInsightsEnabled"`
   609  	// The ARN for the KMS key to encrypt Performance Insights data. When specifying `performanceInsightsKmsKeyId`, `performanceInsightsEnabled` needs to be set to true. Once KMS key is set, it can never be changed.
   610  	PerformanceInsightsKmsKeyId pulumi.StringOutput `pulumi:"performanceInsightsKmsKeyId"`
   611  	// Amount of time in days to retain Performance Insights data. Valid values are `7`, `731` (2 years) or a multiple of `31`. When specifying `performanceInsightsRetentionPeriod`, `performanceInsightsEnabled` needs to be set to true. Defaults to '7'.
   612  	PerformanceInsightsRetentionPeriod pulumi.IntOutput `pulumi:"performanceInsightsRetentionPeriod"`
   613  	// The port on which the DB accepts connections.
   614  	Port pulumi.IntOutput `pulumi:"port"`
   615  	// Bool to control if instance is publicly
   616  	// accessible. Default is `false`.
   617  	PubliclyAccessible pulumi.BoolPtrOutput `pulumi:"publiclyAccessible"`
   618  	// Specifies whether the replica is in either `mounted` or `open-read-only` mode. This attribute
   619  	// is only supported by Oracle instances. Oracle replicas operate in `open-read-only` mode unless otherwise specified. See [Working with Oracle Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html) for more information.
   620  	ReplicaMode pulumi.StringOutput      `pulumi:"replicaMode"`
   621  	Replicas    pulumi.StringArrayOutput `pulumi:"replicas"`
   622  	// Specifies that this resource is a Replicate
   623  	// database, and to use this value as the source database. This correlates to the
   624  	// `identifier` of another Amazon RDS Database to replicate (if replicating within
   625  	// a single region) or ARN of the Amazon RDS Database to replicate (if replicating
   626  	// cross-region). Note that if you are
   627  	// creating a cross-region replica of an encrypted database you will also need to
   628  	// specify a `kmsKeyId`. See [DB Instance Replication][instance-replication] and [Working with
   629  	// PostgreSQL and MySQL Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html)
   630  	// for more information on using Replication.
   631  	ReplicateSourceDb pulumi.StringPtrOutput `pulumi:"replicateSourceDb"`
   632  	// The RDS Resource ID of this instance.
   633  	ResourceId pulumi.StringOutput `pulumi:"resourceId"`
   634  	// A configuration block for restoring a DB instance to an arbitrary point in time. Requires the `identifier` argument to be set with the name of the new DB instance to be created. See Restore To Point In Time below for details.
   635  	RestoreToPointInTime InstanceRestoreToPointInTimePtrOutput `pulumi:"restoreToPointInTime"`
   636  	// Restore from a Percona Xtrabackup in S3.  See [Importing Data into an Amazon RDS MySQL DB Instance](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.html)
   637  	S3Import InstanceS3ImportPtrOutput `pulumi:"s3Import"`
   638  	// Determines whether a final DB snapshot is
   639  	// created before the DB instance is deleted. If true is specified, no DBSnapshot
   640  	// is created. If false is specified, a DB snapshot is created before the DB
   641  	// instance is deleted, using the value from `finalSnapshotIdentifier`. Default
   642  	// is `false`.
   643  	SkipFinalSnapshot pulumi.BoolPtrOutput `pulumi:"skipFinalSnapshot"`
   644  	// Specifies whether or not to create this
   645  	// database from a snapshot. This correlates to the snapshot ID you'd find in the
   646  	// RDS console, e.g: rds:production-2015-06-26-06-05.
   647  	SnapshotIdentifier pulumi.StringOutput `pulumi:"snapshotIdentifier"`
   648  	// The RDS instance status.
   649  	Status pulumi.StringOutput `pulumi:"status"`
   650  	// Specifies whether the DB instance is
   651  	// encrypted. Note that if you are creating a cross-region read replica this field
   652  	// is ignored and you should instead declare `kmsKeyId` with a valid ARN. The
   653  	// default is `false` if not specified.
   654  	StorageEncrypted pulumi.BoolPtrOutput `pulumi:"storageEncrypted"`
   655  	// The storage throughput value for the DB instance. Can only be set when `storageType` is `"gp3"`. Cannot be specified if the `allocatedStorage` value is below a per-`engine` threshold. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#gp3-storage) for details.
   656  	StorageThroughput pulumi.IntOutput `pulumi:"storageThroughput"`
   657  	// One of "standard" (magnetic), "gp2" (general
   658  	// purpose SSD), "gp3" (general purpose SSD that needs `iops` independently)
   659  	// or "io1" (provisioned IOPS SSD). The default is "io1" if `iops` is specified,
   660  	// "gp2" if not.
   661  	StorageType pulumi.StringOutput `pulumi:"storageType"`
   662  	// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   663  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   664  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   665  	//
   666  	// Deprecated: Please use `tags` instead.
   667  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   668  	// Time zone of the DB instance. `timezone` is currently
   669  	// only supported by Microsoft SQL Server. The `timezone` can only be set on
   670  	// creation. See [MSSQL User
   671  	// Guide](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone)
   672  	// for more information.
   673  	Timezone pulumi.StringOutput `pulumi:"timezone"`
   674  	// (Required unless a `snapshotIdentifier` or `replicateSourceDb`
   675  	// is provided) Username for the master DB user. Cannot be specified for a replica.
   676  	Username pulumi.StringOutput `pulumi:"username"`
   677  	// List of VPC security groups to
   678  	// associate.
   679  	VpcSecurityGroupIds pulumi.StringArrayOutput `pulumi:"vpcSecurityGroupIds"`
   680  }
   681  
   682  // NewInstance registers a new resource with the given unique name, arguments, and options.
   683  func NewInstance(ctx *pulumi.Context,
   684  	name string, args *InstanceArgs, opts ...pulumi.ResourceOption) (*Instance, error) {
   685  	if args == nil {
   686  		return nil, errors.New("missing one or more required arguments")
   687  	}
   688  
   689  	if args.InstanceClass == nil {
   690  		return nil, errors.New("invalid value for required argument 'InstanceClass'")
   691  	}
   692  	if args.Password != nil {
   693  		args.Password = pulumi.ToSecret(args.Password).(pulumi.StringPtrInput)
   694  	}
   695  	secrets := pulumi.AdditionalSecretOutputs([]string{
   696  		"password",
   697  	})
   698  	opts = append(opts, secrets)
   699  	opts = internal.PkgResourceDefaultOpts(opts)
   700  	var resource Instance
   701  	err := ctx.RegisterResource("aws:rds/instance:Instance", name, args, &resource, opts...)
   702  	if err != nil {
   703  		return nil, err
   704  	}
   705  	return &resource, nil
   706  }
   707  
   708  // GetInstance gets an existing Instance resource's state with the given name, ID, and optional
   709  // state properties that are used to uniquely qualify the lookup (nil if not required).
   710  func GetInstance(ctx *pulumi.Context,
   711  	name string, id pulumi.IDInput, state *InstanceState, opts ...pulumi.ResourceOption) (*Instance, error) {
   712  	var resource Instance
   713  	err := ctx.ReadResource("aws:rds/instance:Instance", name, id, state, &resource, opts...)
   714  	if err != nil {
   715  		return nil, err
   716  	}
   717  	return &resource, nil
   718  }
   719  
   720  // Input properties used for looking up and filtering Instance resources.
   721  type instanceState struct {
   722  	// Specifies the DNS address of the DB instance.
   723  	Address *string `pulumi:"address"`
   724  	// The allocated storage in gibibytes. If `maxAllocatedStorage` is configured, this argument represents the initial storage allocation and differences from the configuration will be ignored automatically when Storage Autoscaling occurs. If `replicateSourceDb` is set, the value is ignored during the creation of the instance.
   725  	AllocatedStorage *int `pulumi:"allocatedStorage"`
   726  	// Indicates that major version
   727  	// upgrades are allowed. Changing this parameter does not result in an outage and
   728  	// the change is asynchronously applied as soon as possible.
   729  	AllowMajorVersionUpgrade *bool `pulumi:"allowMajorVersionUpgrade"`
   730  	// Specifies whether any database modifications
   731  	// are applied immediately, or during the next maintenance window. Default is
   732  	// `false`. See [Amazon RDS Documentation for more
   733  	// information.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html)
   734  	ApplyImmediately *bool `pulumi:"applyImmediately"`
   735  	// The ARN of the RDS instance.
   736  	Arn *string `pulumi:"arn"`
   737  	// Indicates that minor engine upgrades
   738  	// will be applied automatically to the DB instance during the maintenance window.
   739  	// Defaults to true.
   740  	AutoMinorVersionUpgrade *bool `pulumi:"autoMinorVersionUpgrade"`
   741  	// The AZ for the RDS instance.
   742  	AvailabilityZone *string `pulumi:"availabilityZone"`
   743  	// The days to retain backups for.
   744  	// Must be between `0` and `35`.
   745  	// Default is `0`.
   746  	// Must be greater than `0` if the database is used as a source for a [Read Replica][instance-replication],
   747  	// uses low-downtime updates,
   748  	// or will use [RDS Blue/Green deployments][blue-green].
   749  	BackupRetentionPeriod *int `pulumi:"backupRetentionPeriod"`
   750  	// Specifies where automated backups and manual snapshots are stored. Possible values are `region` (default) and `outposts`. See [Working with Amazon RDS on AWS Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) for more information.
   751  	BackupTarget *string `pulumi:"backupTarget"`
   752  	// The daily time range (in UTC) during which automated backups are created if they are enabled.
   753  	// Example: "09:46-10:16". Must not overlap with `maintenanceWindow`.
   754  	BackupWindow *string `pulumi:"backupWindow"`
   755  	// Enables low-downtime updates using [RDS Blue/Green deployments][blue-green].
   756  	// See `blueGreenUpdate` below.
   757  	BlueGreenUpdate *InstanceBlueGreenUpdate `pulumi:"blueGreenUpdate"`
   758  	// The identifier of the CA certificate for the DB instance.
   759  	CaCertIdentifier *string `pulumi:"caCertIdentifier"`
   760  	// The character set name to use for DB encoding in Oracle and Microsoft SQL instances (collation).
   761  	// This can't be changed.
   762  	// See [Oracle Character Sets Supported in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleCharacterSets.html) or
   763  	// [Server-Level Collation for Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Collation.html) for more information.
   764  	// Cannot be set  with `replicateSourceDb`, `restoreToPointInTime`, `s3Import`, or `snapshotIdentifier`.
   765  	CharacterSetName *string `pulumi:"characterSetName"`
   766  	// Copy all Instance `tags` to snapshots. Default is `false`.
   767  	CopyTagsToSnapshot *bool `pulumi:"copyTagsToSnapshot"`
   768  	// The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance.
   769  	CustomIamInstanceProfile *string `pulumi:"customIamInstanceProfile"`
   770  	// Indicates whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance. See [CoIP for RDS on Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html#rds-on-outposts.coip) for more information.
   771  	//
   772  	// > **NOTE:** Removing the `replicateSourceDb` attribute from an existing RDS
   773  	// Replicate database managed by the provider will promote the database to a fully
   774  	// standalone database.
   775  	CustomerOwnedIpEnabled *bool `pulumi:"customerOwnedIpEnabled"`
   776  	// The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Note that this does not apply for Oracle or SQL Server engines. See the [AWS documentation](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-instance.html) for more details on what applies for those engines. If you are providing an Oracle db name, it needs to be in all upper case. Cannot be specified for a replica.
   777  	DbName *string `pulumi:"dbName"`
   778  	// Name of DB subnet group. DB instance will
   779  	// be created in the VPC associated with the DB subnet group. If unspecified, will
   780  	// be created in the `default` VPC, or in EC2 Classic, if available. When working
   781  	// with read replicas, it should be specified only if the source database
   782  	// specifies an instance in another AWS Region. See [DBSubnetGroupName in API
   783  	// action CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html)
   784  	// for additional read replica constraints.
   785  	DbSubnetGroupName *string `pulumi:"dbSubnetGroupName"`
   786  	// Specifies whether to remove automated backups immediately after the DB instance is deleted. Default is `true`.
   787  	DeleteAutomatedBackups *bool `pulumi:"deleteAutomatedBackups"`
   788  	// If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to `true`. The default is `false`.
   789  	DeletionProtection *bool `pulumi:"deletionProtection"`
   790  	// The ID of the Directory Service Active Directory domain to create the instance in. Conflicts with `domainFqdn`, `domainOu`, `domainAuthSecretArn` and a `domainDnsIps`.
   791  	Domain *string `pulumi:"domain"`
   792  	// The ARN for the Secrets Manager secret with the self managed Active Directory credentials for the user joining the domain. Conflicts with `domain` and `domainIamRoleName`.
   793  	DomainAuthSecretArn *string `pulumi:"domainAuthSecretArn"`
   794  	// The IPv4 DNS IP addresses of your primary and secondary self managed Active Directory domain controllers. Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of the primary domain controller for both entries in the list. Conflicts with `domain` and `domainIamRoleName`.
   795  	DomainDnsIps []string `pulumi:"domainDnsIps"`
   796  	// The fully qualified domain name (FQDN) of the self managed Active Directory domain. Conflicts with `domain` and `domainIamRoleName`.
   797  	DomainFqdn *string `pulumi:"domainFqdn"`
   798  	// The name of the IAM role to be used when making API calls to the Directory Service. Conflicts with `domainFqdn`, `domainOu`, `domainAuthSecretArn` and a `domainDnsIps`.
   799  	DomainIamRoleName *string `pulumi:"domainIamRoleName"`
   800  	// The self managed Active Directory organizational unit for your DB instance to join. Conflicts with `domain` and `domainIamRoleName`.
   801  	DomainOu *string `pulumi:"domainOu"`
   802  	// Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. For supported values, see the EnableCloudwatchLogsExports.member.N parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html).
   803  	EnabledCloudwatchLogsExports []string `pulumi:"enabledCloudwatchLogsExports"`
   804  	// The connection endpoint in `address:port` format.
   805  	Endpoint *string `pulumi:"endpoint"`
   806  	// The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. 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.
   807  	Engine *string `pulumi:"engine"`
   808  	// The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as `5.7` (for `5.7.10`). The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'.
   809  	EngineVersion *string `pulumi:"engineVersion"`
   810  	// The running version of the database.
   811  	EngineVersionActual *string `pulumi:"engineVersionActual"`
   812  	// The name of your final DB snapshot
   813  	// when this DB instance is deleted. Must be provided if `skipFinalSnapshot` is
   814  	// set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica.
   815  	FinalSnapshotIdentifier *string `pulumi:"finalSnapshotIdentifier"`
   816  	// Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.
   817  	HostedZoneId *string `pulumi:"hostedZoneId"`
   818  	// Specifies whether mappings of AWS Identity and Access Management (IAM) accounts to database
   819  	// accounts is enabled.
   820  	IamDatabaseAuthenticationEnabled *bool `pulumi:"iamDatabaseAuthenticationEnabled"`
   821  	// The name of the RDS instance, if omitted, this provider will assign a random, unique identifier. Required if `restoreToPointInTime` is specified.
   822  	Identifier *string `pulumi:"identifier"`
   823  	// Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
   824  	IdentifierPrefix *string `pulumi:"identifierPrefix"`
   825  	// The instance type of the RDS instance.
   826  	InstanceClass *string `pulumi:"instanceClass"`
   827  	// The amount of provisioned IOPS. Setting this implies a
   828  	// storageType of "io1". Can only be set when `storageType` is `"io1"` or `"gp3"`.
   829  	// Cannot be specified for gp3 storage if the `allocatedStorage` value is below a per-`engine` threshold.
   830  	// See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#gp3-storage) for details.
   831  	Iops *int `pulumi:"iops"`
   832  	// The ARN for the KMS encryption key. If creating an
   833  	// encrypted replica, set this to the destination KMS ARN.
   834  	KmsKeyId *string `pulumi:"kmsKeyId"`
   835  	// The latest time, in UTC [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), to which a database can be restored with point-in-time restore.
   836  	LatestRestorableTime *string `pulumi:"latestRestorableTime"`
   837  	// License model information for this DB instance. Valid values for this field are as follows:
   838  	// * RDS for MariaDB: `general-public-license`
   839  	// * RDS for Microsoft SQL Server: `license-included`
   840  	// * RDS for MySQL: `general-public-license`
   841  	// * RDS for Oracle: `bring-your-own-license | license-included`
   842  	// * RDS for PostgreSQL: `postgresql-license`
   843  	LicenseModel *string `pulumi:"licenseModel"`
   844  	// Specifies the listener connection endpoint for SQL Server Always On. See endpoint below.
   845  	ListenerEndpoints []InstanceListenerEndpoint `pulumi:"listenerEndpoints"`
   846  	// The window to perform maintenance in.
   847  	// Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". See [RDS
   848  	// Maintenance Window
   849  	// docs](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow)
   850  	// for more information.
   851  	MaintenanceWindow *string `pulumi:"maintenanceWindow"`
   852  	// Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if `password` is provided.
   853  	ManageMasterUserPassword *bool `pulumi:"manageMasterUserPassword"`
   854  	// The 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.
   855  	MasterUserSecretKmsKeyId *string `pulumi:"masterUserSecretKmsKeyId"`
   856  	// A block that specifies the master user secret. Only available when `manageMasterUserPassword` is set to true. Documented below.
   857  	MasterUserSecrets []InstanceMasterUserSecret `pulumi:"masterUserSecrets"`
   858  	// When configured, the upper limit to which Amazon RDS can automatically scale the storage of the DB instance. Configuring this will automatically ignore differences to `allocatedStorage`. Must be greater than or equal to `allocatedStorage` or `0` to disable Storage Autoscaling.
   859  	MaxAllocatedStorage *int `pulumi:"maxAllocatedStorage"`
   860  	// The interval, in seconds, between points
   861  	// when Enhanced Monitoring metrics are collected for the DB instance. To disable
   862  	// collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid
   863  	// Values: 0, 1, 5, 10, 15, 30, 60.
   864  	MonitoringInterval *int `pulumi:"monitoringInterval"`
   865  	// The ARN for the IAM role that permits RDS
   866  	// to send enhanced monitoring metrics to CloudWatch Logs. You can find more
   867  	// information on the [AWS
   868  	// Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html)
   869  	// what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances.
   870  	MonitoringRoleArn *string `pulumi:"monitoringRoleArn"`
   871  	// Specifies if the RDS instance is multi-AZ
   872  	MultiAz *bool `pulumi:"multiAz"`
   873  	// Deprecated: This property has been deprecated. Please use 'dbName' instead.
   874  	Name *string `pulumi:"name"`
   875  	// The national character set is used in the NCHAR, NVARCHAR2, and NCLOB data types for Oracle instances. This can't be changed. See [Oracle Character Sets
   876  	// Supported in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleCharacterSets.html).
   877  	NcharCharacterSetName *string `pulumi:"ncharCharacterSetName"`
   878  	// The network type of the DB instance. Valid values: `IPV4`, `DUAL`.
   879  	NetworkType *string `pulumi:"networkType"`
   880  	// Name of the DB option group to associate.
   881  	OptionGroupName *string `pulumi:"optionGroupName"`
   882  	// Name of the DB parameter group to associate.
   883  	ParameterGroupName *string `pulumi:"parameterGroupName"`
   884  	// (Required unless `manageMasterUserPassword` is set to true or unless a `snapshotIdentifier` or `replicateSourceDb`
   885  	// is provided or `manageMasterUserPassword` is set.) Password for the master DB user. Note that this may show up in
   886  	// logs, and it will be stored in the state file. Cannot be set if `manageMasterUserPassword` is set to `true`.
   887  	Password *string `pulumi:"password"`
   888  	// Specifies whether Performance Insights are enabled. Defaults to false.
   889  	PerformanceInsightsEnabled *bool `pulumi:"performanceInsightsEnabled"`
   890  	// The ARN for the KMS key to encrypt Performance Insights data. When specifying `performanceInsightsKmsKeyId`, `performanceInsightsEnabled` needs to be set to true. Once KMS key is set, it can never be changed.
   891  	PerformanceInsightsKmsKeyId *string `pulumi:"performanceInsightsKmsKeyId"`
   892  	// Amount of time in days to retain Performance Insights data. Valid values are `7`, `731` (2 years) or a multiple of `31`. When specifying `performanceInsightsRetentionPeriod`, `performanceInsightsEnabled` needs to be set to true. Defaults to '7'.
   893  	PerformanceInsightsRetentionPeriod *int `pulumi:"performanceInsightsRetentionPeriod"`
   894  	// The port on which the DB accepts connections.
   895  	Port *int `pulumi:"port"`
   896  	// Bool to control if instance is publicly
   897  	// accessible. Default is `false`.
   898  	PubliclyAccessible *bool `pulumi:"publiclyAccessible"`
   899  	// Specifies whether the replica is in either `mounted` or `open-read-only` mode. This attribute
   900  	// is only supported by Oracle instances. Oracle replicas operate in `open-read-only` mode unless otherwise specified. See [Working with Oracle Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html) for more information.
   901  	ReplicaMode *string  `pulumi:"replicaMode"`
   902  	Replicas    []string `pulumi:"replicas"`
   903  	// Specifies that this resource is a Replicate
   904  	// database, and to use this value as the source database. This correlates to the
   905  	// `identifier` of another Amazon RDS Database to replicate (if replicating within
   906  	// a single region) or ARN of the Amazon RDS Database to replicate (if replicating
   907  	// cross-region). Note that if you are
   908  	// creating a cross-region replica of an encrypted database you will also need to
   909  	// specify a `kmsKeyId`. See [DB Instance Replication][instance-replication] and [Working with
   910  	// PostgreSQL and MySQL Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html)
   911  	// for more information on using Replication.
   912  	ReplicateSourceDb *string `pulumi:"replicateSourceDb"`
   913  	// The RDS Resource ID of this instance.
   914  	ResourceId *string `pulumi:"resourceId"`
   915  	// A configuration block for restoring a DB instance to an arbitrary point in time. Requires the `identifier` argument to be set with the name of the new DB instance to be created. See Restore To Point In Time below for details.
   916  	RestoreToPointInTime *InstanceRestoreToPointInTime `pulumi:"restoreToPointInTime"`
   917  	// Restore from a Percona Xtrabackup in S3.  See [Importing Data into an Amazon RDS MySQL DB Instance](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.html)
   918  	S3Import *InstanceS3Import `pulumi:"s3Import"`
   919  	// Determines whether a final DB snapshot is
   920  	// created before the DB instance is deleted. If true is specified, no DBSnapshot
   921  	// is created. If false is specified, a DB snapshot is created before the DB
   922  	// instance is deleted, using the value from `finalSnapshotIdentifier`. Default
   923  	// is `false`.
   924  	SkipFinalSnapshot *bool `pulumi:"skipFinalSnapshot"`
   925  	// Specifies whether or not to create this
   926  	// database from a snapshot. This correlates to the snapshot ID you'd find in the
   927  	// RDS console, e.g: rds:production-2015-06-26-06-05.
   928  	SnapshotIdentifier *string `pulumi:"snapshotIdentifier"`
   929  	// The RDS instance status.
   930  	Status *string `pulumi:"status"`
   931  	// Specifies whether the DB instance is
   932  	// encrypted. Note that if you are creating a cross-region read replica this field
   933  	// is ignored and you should instead declare `kmsKeyId` with a valid ARN. The
   934  	// default is `false` if not specified.
   935  	StorageEncrypted *bool `pulumi:"storageEncrypted"`
   936  	// The storage throughput value for the DB instance. Can only be set when `storageType` is `"gp3"`. Cannot be specified if the `allocatedStorage` value is below a per-`engine` threshold. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#gp3-storage) for details.
   937  	StorageThroughput *int `pulumi:"storageThroughput"`
   938  	// One of "standard" (magnetic), "gp2" (general
   939  	// purpose SSD), "gp3" (general purpose SSD that needs `iops` independently)
   940  	// or "io1" (provisioned IOPS SSD). The default is "io1" if `iops` is specified,
   941  	// "gp2" if not.
   942  	StorageType *string `pulumi:"storageType"`
   943  	// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   944  	Tags map[string]string `pulumi:"tags"`
   945  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   946  	//
   947  	// Deprecated: Please use `tags` instead.
   948  	TagsAll map[string]string `pulumi:"tagsAll"`
   949  	// Time zone of the DB instance. `timezone` is currently
   950  	// only supported by Microsoft SQL Server. The `timezone` can only be set on
   951  	// creation. See [MSSQL User
   952  	// Guide](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone)
   953  	// for more information.
   954  	Timezone *string `pulumi:"timezone"`
   955  	// (Required unless a `snapshotIdentifier` or `replicateSourceDb`
   956  	// is provided) Username for the master DB user. Cannot be specified for a replica.
   957  	Username *string `pulumi:"username"`
   958  	// List of VPC security groups to
   959  	// associate.
   960  	VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"`
   961  }
   962  
   963  type InstanceState struct {
   964  	// Specifies the DNS address of the DB instance.
   965  	Address pulumi.StringPtrInput
   966  	// The allocated storage in gibibytes. If `maxAllocatedStorage` is configured, this argument represents the initial storage allocation and differences from the configuration will be ignored automatically when Storage Autoscaling occurs. If `replicateSourceDb` is set, the value is ignored during the creation of the instance.
   967  	AllocatedStorage pulumi.IntPtrInput
   968  	// Indicates that major version
   969  	// upgrades are allowed. Changing this parameter does not result in an outage and
   970  	// the change is asynchronously applied as soon as possible.
   971  	AllowMajorVersionUpgrade pulumi.BoolPtrInput
   972  	// Specifies whether any database modifications
   973  	// are applied immediately, or during the next maintenance window. Default is
   974  	// `false`. See [Amazon RDS Documentation for more
   975  	// information.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html)
   976  	ApplyImmediately pulumi.BoolPtrInput
   977  	// The ARN of the RDS instance.
   978  	Arn pulumi.StringPtrInput
   979  	// Indicates that minor engine upgrades
   980  	// will be applied automatically to the DB instance during the maintenance window.
   981  	// Defaults to true.
   982  	AutoMinorVersionUpgrade pulumi.BoolPtrInput
   983  	// The AZ for the RDS instance.
   984  	AvailabilityZone pulumi.StringPtrInput
   985  	// The days to retain backups for.
   986  	// Must be between `0` and `35`.
   987  	// Default is `0`.
   988  	// Must be greater than `0` if the database is used as a source for a [Read Replica][instance-replication],
   989  	// uses low-downtime updates,
   990  	// or will use [RDS Blue/Green deployments][blue-green].
   991  	BackupRetentionPeriod pulumi.IntPtrInput
   992  	// Specifies where automated backups and manual snapshots are stored. Possible values are `region` (default) and `outposts`. See [Working with Amazon RDS on AWS Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) for more information.
   993  	BackupTarget pulumi.StringPtrInput
   994  	// The daily time range (in UTC) during which automated backups are created if they are enabled.
   995  	// Example: "09:46-10:16". Must not overlap with `maintenanceWindow`.
   996  	BackupWindow pulumi.StringPtrInput
   997  	// Enables low-downtime updates using [RDS Blue/Green deployments][blue-green].
   998  	// See `blueGreenUpdate` below.
   999  	BlueGreenUpdate InstanceBlueGreenUpdatePtrInput
  1000  	// The identifier of the CA certificate for the DB instance.
  1001  	CaCertIdentifier pulumi.StringPtrInput
  1002  	// The character set name to use for DB encoding in Oracle and Microsoft SQL instances (collation).
  1003  	// This can't be changed.
  1004  	// See [Oracle Character Sets Supported in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleCharacterSets.html) or
  1005  	// [Server-Level Collation for Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Collation.html) for more information.
  1006  	// Cannot be set  with `replicateSourceDb`, `restoreToPointInTime`, `s3Import`, or `snapshotIdentifier`.
  1007  	CharacterSetName pulumi.StringPtrInput
  1008  	// Copy all Instance `tags` to snapshots. Default is `false`.
  1009  	CopyTagsToSnapshot pulumi.BoolPtrInput
  1010  	// The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance.
  1011  	CustomIamInstanceProfile pulumi.StringPtrInput
  1012  	// Indicates whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance. See [CoIP for RDS on Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html#rds-on-outposts.coip) for more information.
  1013  	//
  1014  	// > **NOTE:** Removing the `replicateSourceDb` attribute from an existing RDS
  1015  	// Replicate database managed by the provider will promote the database to a fully
  1016  	// standalone database.
  1017  	CustomerOwnedIpEnabled pulumi.BoolPtrInput
  1018  	// The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Note that this does not apply for Oracle or SQL Server engines. See the [AWS documentation](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-instance.html) for more details on what applies for those engines. If you are providing an Oracle db name, it needs to be in all upper case. Cannot be specified for a replica.
  1019  	DbName pulumi.StringPtrInput
  1020  	// Name of DB subnet group. DB instance will
  1021  	// be created in the VPC associated with the DB subnet group. If unspecified, will
  1022  	// be created in the `default` VPC, or in EC2 Classic, if available. When working
  1023  	// with read replicas, it should be specified only if the source database
  1024  	// specifies an instance in another AWS Region. See [DBSubnetGroupName in API
  1025  	// action CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html)
  1026  	// for additional read replica constraints.
  1027  	DbSubnetGroupName pulumi.StringPtrInput
  1028  	// Specifies whether to remove automated backups immediately after the DB instance is deleted. Default is `true`.
  1029  	DeleteAutomatedBackups pulumi.BoolPtrInput
  1030  	// If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to `true`. The default is `false`.
  1031  	DeletionProtection pulumi.BoolPtrInput
  1032  	// The ID of the Directory Service Active Directory domain to create the instance in. Conflicts with `domainFqdn`, `domainOu`, `domainAuthSecretArn` and a `domainDnsIps`.
  1033  	Domain pulumi.StringPtrInput
  1034  	// The ARN for the Secrets Manager secret with the self managed Active Directory credentials for the user joining the domain. Conflicts with `domain` and `domainIamRoleName`.
  1035  	DomainAuthSecretArn pulumi.StringPtrInput
  1036  	// The IPv4 DNS IP addresses of your primary and secondary self managed Active Directory domain controllers. Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of the primary domain controller for both entries in the list. Conflicts with `domain` and `domainIamRoleName`.
  1037  	DomainDnsIps pulumi.StringArrayInput
  1038  	// The fully qualified domain name (FQDN) of the self managed Active Directory domain. Conflicts with `domain` and `domainIamRoleName`.
  1039  	DomainFqdn pulumi.StringPtrInput
  1040  	// The name of the IAM role to be used when making API calls to the Directory Service. Conflicts with `domainFqdn`, `domainOu`, `domainAuthSecretArn` and a `domainDnsIps`.
  1041  	DomainIamRoleName pulumi.StringPtrInput
  1042  	// The self managed Active Directory organizational unit for your DB instance to join. Conflicts with `domain` and `domainIamRoleName`.
  1043  	DomainOu pulumi.StringPtrInput
  1044  	// Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. For supported values, see the EnableCloudwatchLogsExports.member.N parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html).
  1045  	EnabledCloudwatchLogsExports pulumi.StringArrayInput
  1046  	// The connection endpoint in `address:port` format.
  1047  	Endpoint pulumi.StringPtrInput
  1048  	// The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. 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.
  1049  	Engine pulumi.StringPtrInput
  1050  	// The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as `5.7` (for `5.7.10`). The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'.
  1051  	EngineVersion pulumi.StringPtrInput
  1052  	// The running version of the database.
  1053  	EngineVersionActual pulumi.StringPtrInput
  1054  	// The name of your final DB snapshot
  1055  	// when this DB instance is deleted. Must be provided if `skipFinalSnapshot` is
  1056  	// set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica.
  1057  	FinalSnapshotIdentifier pulumi.StringPtrInput
  1058  	// Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.
  1059  	HostedZoneId pulumi.StringPtrInput
  1060  	// Specifies whether mappings of AWS Identity and Access Management (IAM) accounts to database
  1061  	// accounts is enabled.
  1062  	IamDatabaseAuthenticationEnabled pulumi.BoolPtrInput
  1063  	// The name of the RDS instance, if omitted, this provider will assign a random, unique identifier. Required if `restoreToPointInTime` is specified.
  1064  	Identifier pulumi.StringPtrInput
  1065  	// Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
  1066  	IdentifierPrefix pulumi.StringPtrInput
  1067  	// The instance type of the RDS instance.
  1068  	InstanceClass pulumi.StringPtrInput
  1069  	// The amount of provisioned IOPS. Setting this implies a
  1070  	// storageType of "io1". Can only be set when `storageType` is `"io1"` or `"gp3"`.
  1071  	// Cannot be specified for gp3 storage if the `allocatedStorage` value is below a per-`engine` threshold.
  1072  	// See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#gp3-storage) for details.
  1073  	Iops pulumi.IntPtrInput
  1074  	// The ARN for the KMS encryption key. If creating an
  1075  	// encrypted replica, set this to the destination KMS ARN.
  1076  	KmsKeyId pulumi.StringPtrInput
  1077  	// The latest time, in UTC [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), to which a database can be restored with point-in-time restore.
  1078  	LatestRestorableTime pulumi.StringPtrInput
  1079  	// License model information for this DB instance. Valid values for this field are as follows:
  1080  	// * RDS for MariaDB: `general-public-license`
  1081  	// * RDS for Microsoft SQL Server: `license-included`
  1082  	// * RDS for MySQL: `general-public-license`
  1083  	// * RDS for Oracle: `bring-your-own-license | license-included`
  1084  	// * RDS for PostgreSQL: `postgresql-license`
  1085  	LicenseModel pulumi.StringPtrInput
  1086  	// Specifies the listener connection endpoint for SQL Server Always On. See endpoint below.
  1087  	ListenerEndpoints InstanceListenerEndpointArrayInput
  1088  	// The window to perform maintenance in.
  1089  	// Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". See [RDS
  1090  	// Maintenance Window
  1091  	// docs](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow)
  1092  	// for more information.
  1093  	MaintenanceWindow pulumi.StringPtrInput
  1094  	// Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if `password` is provided.
  1095  	ManageMasterUserPassword pulumi.BoolPtrInput
  1096  	// The 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.
  1097  	MasterUserSecretKmsKeyId pulumi.StringPtrInput
  1098  	// A block that specifies the master user secret. Only available when `manageMasterUserPassword` is set to true. Documented below.
  1099  	MasterUserSecrets InstanceMasterUserSecretArrayInput
  1100  	// When configured, the upper limit to which Amazon RDS can automatically scale the storage of the DB instance. Configuring this will automatically ignore differences to `allocatedStorage`. Must be greater than or equal to `allocatedStorage` or `0` to disable Storage Autoscaling.
  1101  	MaxAllocatedStorage pulumi.IntPtrInput
  1102  	// The interval, in seconds, between points
  1103  	// when Enhanced Monitoring metrics are collected for the DB instance. To disable
  1104  	// collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid
  1105  	// Values: 0, 1, 5, 10, 15, 30, 60.
  1106  	MonitoringInterval pulumi.IntPtrInput
  1107  	// The ARN for the IAM role that permits RDS
  1108  	// to send enhanced monitoring metrics to CloudWatch Logs. You can find more
  1109  	// information on the [AWS
  1110  	// Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html)
  1111  	// what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances.
  1112  	MonitoringRoleArn pulumi.StringPtrInput
  1113  	// Specifies if the RDS instance is multi-AZ
  1114  	MultiAz pulumi.BoolPtrInput
  1115  	// Deprecated: This property has been deprecated. Please use 'dbName' instead.
  1116  	Name pulumi.StringPtrInput
  1117  	// The national character set is used in the NCHAR, NVARCHAR2, and NCLOB data types for Oracle instances. This can't be changed. See [Oracle Character Sets
  1118  	// Supported in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleCharacterSets.html).
  1119  	NcharCharacterSetName pulumi.StringPtrInput
  1120  	// The network type of the DB instance. Valid values: `IPV4`, `DUAL`.
  1121  	NetworkType pulumi.StringPtrInput
  1122  	// Name of the DB option group to associate.
  1123  	OptionGroupName pulumi.StringPtrInput
  1124  	// Name of the DB parameter group to associate.
  1125  	ParameterGroupName pulumi.StringPtrInput
  1126  	// (Required unless `manageMasterUserPassword` is set to true or unless a `snapshotIdentifier` or `replicateSourceDb`
  1127  	// is provided or `manageMasterUserPassword` is set.) Password for the master DB user. Note that this may show up in
  1128  	// logs, and it will be stored in the state file. Cannot be set if `manageMasterUserPassword` is set to `true`.
  1129  	Password pulumi.StringPtrInput
  1130  	// Specifies whether Performance Insights are enabled. Defaults to false.
  1131  	PerformanceInsightsEnabled pulumi.BoolPtrInput
  1132  	// The ARN for the KMS key to encrypt Performance Insights data. When specifying `performanceInsightsKmsKeyId`, `performanceInsightsEnabled` needs to be set to true. Once KMS key is set, it can never be changed.
  1133  	PerformanceInsightsKmsKeyId pulumi.StringPtrInput
  1134  	// Amount of time in days to retain Performance Insights data. Valid values are `7`, `731` (2 years) or a multiple of `31`. When specifying `performanceInsightsRetentionPeriod`, `performanceInsightsEnabled` needs to be set to true. Defaults to '7'.
  1135  	PerformanceInsightsRetentionPeriod pulumi.IntPtrInput
  1136  	// The port on which the DB accepts connections.
  1137  	Port pulumi.IntPtrInput
  1138  	// Bool to control if instance is publicly
  1139  	// accessible. Default is `false`.
  1140  	PubliclyAccessible pulumi.BoolPtrInput
  1141  	// Specifies whether the replica is in either `mounted` or `open-read-only` mode. This attribute
  1142  	// is only supported by Oracle instances. Oracle replicas operate in `open-read-only` mode unless otherwise specified. See [Working with Oracle Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html) for more information.
  1143  	ReplicaMode pulumi.StringPtrInput
  1144  	Replicas    pulumi.StringArrayInput
  1145  	// Specifies that this resource is a Replicate
  1146  	// database, and to use this value as the source database. This correlates to the
  1147  	// `identifier` of another Amazon RDS Database to replicate (if replicating within
  1148  	// a single region) or ARN of the Amazon RDS Database to replicate (if replicating
  1149  	// cross-region). Note that if you are
  1150  	// creating a cross-region replica of an encrypted database you will also need to
  1151  	// specify a `kmsKeyId`. See [DB Instance Replication][instance-replication] and [Working with
  1152  	// PostgreSQL and MySQL Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html)
  1153  	// for more information on using Replication.
  1154  	ReplicateSourceDb pulumi.StringPtrInput
  1155  	// The RDS Resource ID of this instance.
  1156  	ResourceId pulumi.StringPtrInput
  1157  	// A configuration block for restoring a DB instance to an arbitrary point in time. Requires the `identifier` argument to be set with the name of the new DB instance to be created. See Restore To Point In Time below for details.
  1158  	RestoreToPointInTime InstanceRestoreToPointInTimePtrInput
  1159  	// Restore from a Percona Xtrabackup in S3.  See [Importing Data into an Amazon RDS MySQL DB Instance](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.html)
  1160  	S3Import InstanceS3ImportPtrInput
  1161  	// Determines whether a final DB snapshot is
  1162  	// created before the DB instance is deleted. If true is specified, no DBSnapshot
  1163  	// is created. If false is specified, a DB snapshot is created before the DB
  1164  	// instance is deleted, using the value from `finalSnapshotIdentifier`. Default
  1165  	// is `false`.
  1166  	SkipFinalSnapshot pulumi.BoolPtrInput
  1167  	// Specifies whether or not to create this
  1168  	// database from a snapshot. This correlates to the snapshot ID you'd find in the
  1169  	// RDS console, e.g: rds:production-2015-06-26-06-05.
  1170  	SnapshotIdentifier pulumi.StringPtrInput
  1171  	// The RDS instance status.
  1172  	Status pulumi.StringPtrInput
  1173  	// Specifies whether the DB instance is
  1174  	// encrypted. Note that if you are creating a cross-region read replica this field
  1175  	// is ignored and you should instead declare `kmsKeyId` with a valid ARN. The
  1176  	// default is `false` if not specified.
  1177  	StorageEncrypted pulumi.BoolPtrInput
  1178  	// The storage throughput value for the DB instance. Can only be set when `storageType` is `"gp3"`. Cannot be specified if the `allocatedStorage` value is below a per-`engine` threshold. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#gp3-storage) for details.
  1179  	StorageThroughput pulumi.IntPtrInput
  1180  	// One of "standard" (magnetic), "gp2" (general
  1181  	// purpose SSD), "gp3" (general purpose SSD that needs `iops` independently)
  1182  	// or "io1" (provisioned IOPS SSD). The default is "io1" if `iops` is specified,
  1183  	// "gp2" if not.
  1184  	StorageType pulumi.StringPtrInput
  1185  	// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
  1186  	Tags pulumi.StringMapInput
  1187  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
  1188  	//
  1189  	// Deprecated: Please use `tags` instead.
  1190  	TagsAll pulumi.StringMapInput
  1191  	// Time zone of the DB instance. `timezone` is currently
  1192  	// only supported by Microsoft SQL Server. The `timezone` can only be set on
  1193  	// creation. See [MSSQL User
  1194  	// Guide](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone)
  1195  	// for more information.
  1196  	Timezone pulumi.StringPtrInput
  1197  	// (Required unless a `snapshotIdentifier` or `replicateSourceDb`
  1198  	// is provided) Username for the master DB user. Cannot be specified for a replica.
  1199  	Username pulumi.StringPtrInput
  1200  	// List of VPC security groups to
  1201  	// associate.
  1202  	VpcSecurityGroupIds pulumi.StringArrayInput
  1203  }
  1204  
  1205  func (InstanceState) ElementType() reflect.Type {
  1206  	return reflect.TypeOf((*instanceState)(nil)).Elem()
  1207  }
  1208  
  1209  type instanceArgs struct {
  1210  	// The allocated storage in gibibytes. If `maxAllocatedStorage` is configured, this argument represents the initial storage allocation and differences from the configuration will be ignored automatically when Storage Autoscaling occurs. If `replicateSourceDb` is set, the value is ignored during the creation of the instance.
  1211  	AllocatedStorage *int `pulumi:"allocatedStorage"`
  1212  	// Indicates that major version
  1213  	// upgrades are allowed. Changing this parameter does not result in an outage and
  1214  	// the change is asynchronously applied as soon as possible.
  1215  	AllowMajorVersionUpgrade *bool `pulumi:"allowMajorVersionUpgrade"`
  1216  	// Specifies whether any database modifications
  1217  	// are applied immediately, or during the next maintenance window. Default is
  1218  	// `false`. See [Amazon RDS Documentation for more
  1219  	// information.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html)
  1220  	ApplyImmediately *bool `pulumi:"applyImmediately"`
  1221  	// Indicates that minor engine upgrades
  1222  	// will be applied automatically to the DB instance during the maintenance window.
  1223  	// Defaults to true.
  1224  	AutoMinorVersionUpgrade *bool `pulumi:"autoMinorVersionUpgrade"`
  1225  	// The AZ for the RDS instance.
  1226  	AvailabilityZone *string `pulumi:"availabilityZone"`
  1227  	// The days to retain backups for.
  1228  	// Must be between `0` and `35`.
  1229  	// Default is `0`.
  1230  	// Must be greater than `0` if the database is used as a source for a [Read Replica][instance-replication],
  1231  	// uses low-downtime updates,
  1232  	// or will use [RDS Blue/Green deployments][blue-green].
  1233  	BackupRetentionPeriod *int `pulumi:"backupRetentionPeriod"`
  1234  	// Specifies where automated backups and manual snapshots are stored. Possible values are `region` (default) and `outposts`. See [Working with Amazon RDS on AWS Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) for more information.
  1235  	BackupTarget *string `pulumi:"backupTarget"`
  1236  	// The daily time range (in UTC) during which automated backups are created if they are enabled.
  1237  	// Example: "09:46-10:16". Must not overlap with `maintenanceWindow`.
  1238  	BackupWindow *string `pulumi:"backupWindow"`
  1239  	// Enables low-downtime updates using [RDS Blue/Green deployments][blue-green].
  1240  	// See `blueGreenUpdate` below.
  1241  	BlueGreenUpdate *InstanceBlueGreenUpdate `pulumi:"blueGreenUpdate"`
  1242  	// The identifier of the CA certificate for the DB instance.
  1243  	CaCertIdentifier *string `pulumi:"caCertIdentifier"`
  1244  	// The character set name to use for DB encoding in Oracle and Microsoft SQL instances (collation).
  1245  	// This can't be changed.
  1246  	// See [Oracle Character Sets Supported in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleCharacterSets.html) or
  1247  	// [Server-Level Collation for Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Collation.html) for more information.
  1248  	// Cannot be set  with `replicateSourceDb`, `restoreToPointInTime`, `s3Import`, or `snapshotIdentifier`.
  1249  	CharacterSetName *string `pulumi:"characterSetName"`
  1250  	// Copy all Instance `tags` to snapshots. Default is `false`.
  1251  	CopyTagsToSnapshot *bool `pulumi:"copyTagsToSnapshot"`
  1252  	// The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance.
  1253  	CustomIamInstanceProfile *string `pulumi:"customIamInstanceProfile"`
  1254  	// Indicates whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance. See [CoIP for RDS on Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html#rds-on-outposts.coip) for more information.
  1255  	//
  1256  	// > **NOTE:** Removing the `replicateSourceDb` attribute from an existing RDS
  1257  	// Replicate database managed by the provider will promote the database to a fully
  1258  	// standalone database.
  1259  	CustomerOwnedIpEnabled *bool `pulumi:"customerOwnedIpEnabled"`
  1260  	// The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Note that this does not apply for Oracle or SQL Server engines. See the [AWS documentation](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-instance.html) for more details on what applies for those engines. If you are providing an Oracle db name, it needs to be in all upper case. Cannot be specified for a replica.
  1261  	DbName *string `pulumi:"dbName"`
  1262  	// Name of DB subnet group. DB instance will
  1263  	// be created in the VPC associated with the DB subnet group. If unspecified, will
  1264  	// be created in the `default` VPC, or in EC2 Classic, if available. When working
  1265  	// with read replicas, it should be specified only if the source database
  1266  	// specifies an instance in another AWS Region. See [DBSubnetGroupName in API
  1267  	// action CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html)
  1268  	// for additional read replica constraints.
  1269  	DbSubnetGroupName *string `pulumi:"dbSubnetGroupName"`
  1270  	// Specifies whether to remove automated backups immediately after the DB instance is deleted. Default is `true`.
  1271  	DeleteAutomatedBackups *bool `pulumi:"deleteAutomatedBackups"`
  1272  	// If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to `true`. The default is `false`.
  1273  	DeletionProtection *bool `pulumi:"deletionProtection"`
  1274  	// The ID of the Directory Service Active Directory domain to create the instance in. Conflicts with `domainFqdn`, `domainOu`, `domainAuthSecretArn` and a `domainDnsIps`.
  1275  	Domain *string `pulumi:"domain"`
  1276  	// The ARN for the Secrets Manager secret with the self managed Active Directory credentials for the user joining the domain. Conflicts with `domain` and `domainIamRoleName`.
  1277  	DomainAuthSecretArn *string `pulumi:"domainAuthSecretArn"`
  1278  	// The IPv4 DNS IP addresses of your primary and secondary self managed Active Directory domain controllers. Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of the primary domain controller for both entries in the list. Conflicts with `domain` and `domainIamRoleName`.
  1279  	DomainDnsIps []string `pulumi:"domainDnsIps"`
  1280  	// The fully qualified domain name (FQDN) of the self managed Active Directory domain. Conflicts with `domain` and `domainIamRoleName`.
  1281  	DomainFqdn *string `pulumi:"domainFqdn"`
  1282  	// The name of the IAM role to be used when making API calls to the Directory Service. Conflicts with `domainFqdn`, `domainOu`, `domainAuthSecretArn` and a `domainDnsIps`.
  1283  	DomainIamRoleName *string `pulumi:"domainIamRoleName"`
  1284  	// The self managed Active Directory organizational unit for your DB instance to join. Conflicts with `domain` and `domainIamRoleName`.
  1285  	DomainOu *string `pulumi:"domainOu"`
  1286  	// Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. For supported values, see the EnableCloudwatchLogsExports.member.N parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html).
  1287  	EnabledCloudwatchLogsExports []string `pulumi:"enabledCloudwatchLogsExports"`
  1288  	// The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. 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.
  1289  	Engine *string `pulumi:"engine"`
  1290  	// The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as `5.7` (for `5.7.10`). The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'.
  1291  	EngineVersion *string `pulumi:"engineVersion"`
  1292  	// The name of your final DB snapshot
  1293  	// when this DB instance is deleted. Must be provided if `skipFinalSnapshot` is
  1294  	// set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica.
  1295  	FinalSnapshotIdentifier *string `pulumi:"finalSnapshotIdentifier"`
  1296  	// Specifies whether mappings of AWS Identity and Access Management (IAM) accounts to database
  1297  	// accounts is enabled.
  1298  	IamDatabaseAuthenticationEnabled *bool `pulumi:"iamDatabaseAuthenticationEnabled"`
  1299  	// The name of the RDS instance, if omitted, this provider will assign a random, unique identifier. Required if `restoreToPointInTime` is specified.
  1300  	Identifier *string `pulumi:"identifier"`
  1301  	// Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
  1302  	IdentifierPrefix *string `pulumi:"identifierPrefix"`
  1303  	// The instance type of the RDS instance.
  1304  	InstanceClass string `pulumi:"instanceClass"`
  1305  	// The amount of provisioned IOPS. Setting this implies a
  1306  	// storageType of "io1". Can only be set when `storageType` is `"io1"` or `"gp3"`.
  1307  	// Cannot be specified for gp3 storage if the `allocatedStorage` value is below a per-`engine` threshold.
  1308  	// See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#gp3-storage) for details.
  1309  	Iops *int `pulumi:"iops"`
  1310  	// The ARN for the KMS encryption key. If creating an
  1311  	// encrypted replica, set this to the destination KMS ARN.
  1312  	KmsKeyId *string `pulumi:"kmsKeyId"`
  1313  	// License model information for this DB instance. Valid values for this field are as follows:
  1314  	// * RDS for MariaDB: `general-public-license`
  1315  	// * RDS for Microsoft SQL Server: `license-included`
  1316  	// * RDS for MySQL: `general-public-license`
  1317  	// * RDS for Oracle: `bring-your-own-license | license-included`
  1318  	// * RDS for PostgreSQL: `postgresql-license`
  1319  	LicenseModel *string `pulumi:"licenseModel"`
  1320  	// The window to perform maintenance in.
  1321  	// Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". See [RDS
  1322  	// Maintenance Window
  1323  	// docs](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow)
  1324  	// for more information.
  1325  	MaintenanceWindow *string `pulumi:"maintenanceWindow"`
  1326  	// Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if `password` is provided.
  1327  	ManageMasterUserPassword *bool `pulumi:"manageMasterUserPassword"`
  1328  	// The 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.
  1329  	MasterUserSecretKmsKeyId *string `pulumi:"masterUserSecretKmsKeyId"`
  1330  	// When configured, the upper limit to which Amazon RDS can automatically scale the storage of the DB instance. Configuring this will automatically ignore differences to `allocatedStorage`. Must be greater than or equal to `allocatedStorage` or `0` to disable Storage Autoscaling.
  1331  	MaxAllocatedStorage *int `pulumi:"maxAllocatedStorage"`
  1332  	// The interval, in seconds, between points
  1333  	// when Enhanced Monitoring metrics are collected for the DB instance. To disable
  1334  	// collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid
  1335  	// Values: 0, 1, 5, 10, 15, 30, 60.
  1336  	MonitoringInterval *int `pulumi:"monitoringInterval"`
  1337  	// The ARN for the IAM role that permits RDS
  1338  	// to send enhanced monitoring metrics to CloudWatch Logs. You can find more
  1339  	// information on the [AWS
  1340  	// Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html)
  1341  	// what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances.
  1342  	MonitoringRoleArn *string `pulumi:"monitoringRoleArn"`
  1343  	// Specifies if the RDS instance is multi-AZ
  1344  	MultiAz *bool `pulumi:"multiAz"`
  1345  	// Deprecated: This property has been deprecated. Please use 'dbName' instead.
  1346  	Name *string `pulumi:"name"`
  1347  	// The national character set is used in the NCHAR, NVARCHAR2, and NCLOB data types for Oracle instances. This can't be changed. See [Oracle Character Sets
  1348  	// Supported in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleCharacterSets.html).
  1349  	NcharCharacterSetName *string `pulumi:"ncharCharacterSetName"`
  1350  	// The network type of the DB instance. Valid values: `IPV4`, `DUAL`.
  1351  	NetworkType *string `pulumi:"networkType"`
  1352  	// Name of the DB option group to associate.
  1353  	OptionGroupName *string `pulumi:"optionGroupName"`
  1354  	// Name of the DB parameter group to associate.
  1355  	ParameterGroupName *string `pulumi:"parameterGroupName"`
  1356  	// (Required unless `manageMasterUserPassword` is set to true or unless a `snapshotIdentifier` or `replicateSourceDb`
  1357  	// is provided or `manageMasterUserPassword` is set.) Password for the master DB user. Note that this may show up in
  1358  	// logs, and it will be stored in the state file. Cannot be set if `manageMasterUserPassword` is set to `true`.
  1359  	Password *string `pulumi:"password"`
  1360  	// Specifies whether Performance Insights are enabled. Defaults to false.
  1361  	PerformanceInsightsEnabled *bool `pulumi:"performanceInsightsEnabled"`
  1362  	// The ARN for the KMS key to encrypt Performance Insights data. When specifying `performanceInsightsKmsKeyId`, `performanceInsightsEnabled` needs to be set to true. Once KMS key is set, it can never be changed.
  1363  	PerformanceInsightsKmsKeyId *string `pulumi:"performanceInsightsKmsKeyId"`
  1364  	// Amount of time in days to retain Performance Insights data. Valid values are `7`, `731` (2 years) or a multiple of `31`. When specifying `performanceInsightsRetentionPeriod`, `performanceInsightsEnabled` needs to be set to true. Defaults to '7'.
  1365  	PerformanceInsightsRetentionPeriod *int `pulumi:"performanceInsightsRetentionPeriod"`
  1366  	// The port on which the DB accepts connections.
  1367  	Port *int `pulumi:"port"`
  1368  	// Bool to control if instance is publicly
  1369  	// accessible. Default is `false`.
  1370  	PubliclyAccessible *bool `pulumi:"publiclyAccessible"`
  1371  	// Specifies whether the replica is in either `mounted` or `open-read-only` mode. This attribute
  1372  	// is only supported by Oracle instances. Oracle replicas operate in `open-read-only` mode unless otherwise specified. See [Working with Oracle Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html) for more information.
  1373  	ReplicaMode *string `pulumi:"replicaMode"`
  1374  	// Specifies that this resource is a Replicate
  1375  	// database, and to use this value as the source database. This correlates to the
  1376  	// `identifier` of another Amazon RDS Database to replicate (if replicating within
  1377  	// a single region) or ARN of the Amazon RDS Database to replicate (if replicating
  1378  	// cross-region). Note that if you are
  1379  	// creating a cross-region replica of an encrypted database you will also need to
  1380  	// specify a `kmsKeyId`. See [DB Instance Replication][instance-replication] and [Working with
  1381  	// PostgreSQL and MySQL Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html)
  1382  	// for more information on using Replication.
  1383  	ReplicateSourceDb *string `pulumi:"replicateSourceDb"`
  1384  	// A configuration block for restoring a DB instance to an arbitrary point in time. Requires the `identifier` argument to be set with the name of the new DB instance to be created. See Restore To Point In Time below for details.
  1385  	RestoreToPointInTime *InstanceRestoreToPointInTime `pulumi:"restoreToPointInTime"`
  1386  	// Restore from a Percona Xtrabackup in S3.  See [Importing Data into an Amazon RDS MySQL DB Instance](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.html)
  1387  	S3Import *InstanceS3Import `pulumi:"s3Import"`
  1388  	// Determines whether a final DB snapshot is
  1389  	// created before the DB instance is deleted. If true is specified, no DBSnapshot
  1390  	// is created. If false is specified, a DB snapshot is created before the DB
  1391  	// instance is deleted, using the value from `finalSnapshotIdentifier`. Default
  1392  	// is `false`.
  1393  	SkipFinalSnapshot *bool `pulumi:"skipFinalSnapshot"`
  1394  	// Specifies whether or not to create this
  1395  	// database from a snapshot. This correlates to the snapshot ID you'd find in the
  1396  	// RDS console, e.g: rds:production-2015-06-26-06-05.
  1397  	SnapshotIdentifier *string `pulumi:"snapshotIdentifier"`
  1398  	// Specifies whether the DB instance is
  1399  	// encrypted. Note that if you are creating a cross-region read replica this field
  1400  	// is ignored and you should instead declare `kmsKeyId` with a valid ARN. The
  1401  	// default is `false` if not specified.
  1402  	StorageEncrypted *bool `pulumi:"storageEncrypted"`
  1403  	// The storage throughput value for the DB instance. Can only be set when `storageType` is `"gp3"`. Cannot be specified if the `allocatedStorage` value is below a per-`engine` threshold. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#gp3-storage) for details.
  1404  	StorageThroughput *int `pulumi:"storageThroughput"`
  1405  	// One of "standard" (magnetic), "gp2" (general
  1406  	// purpose SSD), "gp3" (general purpose SSD that needs `iops` independently)
  1407  	// or "io1" (provisioned IOPS SSD). The default is "io1" if `iops` is specified,
  1408  	// "gp2" if not.
  1409  	StorageType *string `pulumi:"storageType"`
  1410  	// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
  1411  	Tags map[string]string `pulumi:"tags"`
  1412  	// Time zone of the DB instance. `timezone` is currently
  1413  	// only supported by Microsoft SQL Server. The `timezone` can only be set on
  1414  	// creation. See [MSSQL User
  1415  	// Guide](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone)
  1416  	// for more information.
  1417  	Timezone *string `pulumi:"timezone"`
  1418  	// (Required unless a `snapshotIdentifier` or `replicateSourceDb`
  1419  	// is provided) Username for the master DB user. Cannot be specified for a replica.
  1420  	Username *string `pulumi:"username"`
  1421  	// List of VPC security groups to
  1422  	// associate.
  1423  	VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"`
  1424  }
  1425  
  1426  // The set of arguments for constructing a Instance resource.
  1427  type InstanceArgs struct {
  1428  	// The allocated storage in gibibytes. If `maxAllocatedStorage` is configured, this argument represents the initial storage allocation and differences from the configuration will be ignored automatically when Storage Autoscaling occurs. If `replicateSourceDb` is set, the value is ignored during the creation of the instance.
  1429  	AllocatedStorage pulumi.IntPtrInput
  1430  	// Indicates that major version
  1431  	// upgrades are allowed. Changing this parameter does not result in an outage and
  1432  	// the change is asynchronously applied as soon as possible.
  1433  	AllowMajorVersionUpgrade pulumi.BoolPtrInput
  1434  	// Specifies whether any database modifications
  1435  	// are applied immediately, or during the next maintenance window. Default is
  1436  	// `false`. See [Amazon RDS Documentation for more
  1437  	// information.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html)
  1438  	ApplyImmediately pulumi.BoolPtrInput
  1439  	// Indicates that minor engine upgrades
  1440  	// will be applied automatically to the DB instance during the maintenance window.
  1441  	// Defaults to true.
  1442  	AutoMinorVersionUpgrade pulumi.BoolPtrInput
  1443  	// The AZ for the RDS instance.
  1444  	AvailabilityZone pulumi.StringPtrInput
  1445  	// The days to retain backups for.
  1446  	// Must be between `0` and `35`.
  1447  	// Default is `0`.
  1448  	// Must be greater than `0` if the database is used as a source for a [Read Replica][instance-replication],
  1449  	// uses low-downtime updates,
  1450  	// or will use [RDS Blue/Green deployments][blue-green].
  1451  	BackupRetentionPeriod pulumi.IntPtrInput
  1452  	// Specifies where automated backups and manual snapshots are stored. Possible values are `region` (default) and `outposts`. See [Working with Amazon RDS on AWS Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) for more information.
  1453  	BackupTarget pulumi.StringPtrInput
  1454  	// The daily time range (in UTC) during which automated backups are created if they are enabled.
  1455  	// Example: "09:46-10:16". Must not overlap with `maintenanceWindow`.
  1456  	BackupWindow pulumi.StringPtrInput
  1457  	// Enables low-downtime updates using [RDS Blue/Green deployments][blue-green].
  1458  	// See `blueGreenUpdate` below.
  1459  	BlueGreenUpdate InstanceBlueGreenUpdatePtrInput
  1460  	// The identifier of the CA certificate for the DB instance.
  1461  	CaCertIdentifier pulumi.StringPtrInput
  1462  	// The character set name to use for DB encoding in Oracle and Microsoft SQL instances (collation).
  1463  	// This can't be changed.
  1464  	// See [Oracle Character Sets Supported in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleCharacterSets.html) or
  1465  	// [Server-Level Collation for Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Collation.html) for more information.
  1466  	// Cannot be set  with `replicateSourceDb`, `restoreToPointInTime`, `s3Import`, or `snapshotIdentifier`.
  1467  	CharacterSetName pulumi.StringPtrInput
  1468  	// Copy all Instance `tags` to snapshots. Default is `false`.
  1469  	CopyTagsToSnapshot pulumi.BoolPtrInput
  1470  	// The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance.
  1471  	CustomIamInstanceProfile pulumi.StringPtrInput
  1472  	// Indicates whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance. See [CoIP for RDS on Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html#rds-on-outposts.coip) for more information.
  1473  	//
  1474  	// > **NOTE:** Removing the `replicateSourceDb` attribute from an existing RDS
  1475  	// Replicate database managed by the provider will promote the database to a fully
  1476  	// standalone database.
  1477  	CustomerOwnedIpEnabled pulumi.BoolPtrInput
  1478  	// The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Note that this does not apply for Oracle or SQL Server engines. See the [AWS documentation](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-instance.html) for more details on what applies for those engines. If you are providing an Oracle db name, it needs to be in all upper case. Cannot be specified for a replica.
  1479  	DbName pulumi.StringPtrInput
  1480  	// Name of DB subnet group. DB instance will
  1481  	// be created in the VPC associated with the DB subnet group. If unspecified, will
  1482  	// be created in the `default` VPC, or in EC2 Classic, if available. When working
  1483  	// with read replicas, it should be specified only if the source database
  1484  	// specifies an instance in another AWS Region. See [DBSubnetGroupName in API
  1485  	// action CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html)
  1486  	// for additional read replica constraints.
  1487  	DbSubnetGroupName pulumi.StringPtrInput
  1488  	// Specifies whether to remove automated backups immediately after the DB instance is deleted. Default is `true`.
  1489  	DeleteAutomatedBackups pulumi.BoolPtrInput
  1490  	// If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to `true`. The default is `false`.
  1491  	DeletionProtection pulumi.BoolPtrInput
  1492  	// The ID of the Directory Service Active Directory domain to create the instance in. Conflicts with `domainFqdn`, `domainOu`, `domainAuthSecretArn` and a `domainDnsIps`.
  1493  	Domain pulumi.StringPtrInput
  1494  	// The ARN for the Secrets Manager secret with the self managed Active Directory credentials for the user joining the domain. Conflicts with `domain` and `domainIamRoleName`.
  1495  	DomainAuthSecretArn pulumi.StringPtrInput
  1496  	// The IPv4 DNS IP addresses of your primary and secondary self managed Active Directory domain controllers. Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of the primary domain controller for both entries in the list. Conflicts with `domain` and `domainIamRoleName`.
  1497  	DomainDnsIps pulumi.StringArrayInput
  1498  	// The fully qualified domain name (FQDN) of the self managed Active Directory domain. Conflicts with `domain` and `domainIamRoleName`.
  1499  	DomainFqdn pulumi.StringPtrInput
  1500  	// The name of the IAM role to be used when making API calls to the Directory Service. Conflicts with `domainFqdn`, `domainOu`, `domainAuthSecretArn` and a `domainDnsIps`.
  1501  	DomainIamRoleName pulumi.StringPtrInput
  1502  	// The self managed Active Directory organizational unit for your DB instance to join. Conflicts with `domain` and `domainIamRoleName`.
  1503  	DomainOu pulumi.StringPtrInput
  1504  	// Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. For supported values, see the EnableCloudwatchLogsExports.member.N parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html).
  1505  	EnabledCloudwatchLogsExports pulumi.StringArrayInput
  1506  	// The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. 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.
  1507  	Engine pulumi.StringPtrInput
  1508  	// The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as `5.7` (for `5.7.10`). The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'.
  1509  	EngineVersion pulumi.StringPtrInput
  1510  	// The name of your final DB snapshot
  1511  	// when this DB instance is deleted. Must be provided if `skipFinalSnapshot` is
  1512  	// set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica.
  1513  	FinalSnapshotIdentifier pulumi.StringPtrInput
  1514  	// Specifies whether mappings of AWS Identity and Access Management (IAM) accounts to database
  1515  	// accounts is enabled.
  1516  	IamDatabaseAuthenticationEnabled pulumi.BoolPtrInput
  1517  	// The name of the RDS instance, if omitted, this provider will assign a random, unique identifier. Required if `restoreToPointInTime` is specified.
  1518  	Identifier pulumi.StringPtrInput
  1519  	// Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
  1520  	IdentifierPrefix pulumi.StringPtrInput
  1521  	// The instance type of the RDS instance.
  1522  	InstanceClass pulumi.StringInput
  1523  	// The amount of provisioned IOPS. Setting this implies a
  1524  	// storageType of "io1". Can only be set when `storageType` is `"io1"` or `"gp3"`.
  1525  	// Cannot be specified for gp3 storage if the `allocatedStorage` value is below a per-`engine` threshold.
  1526  	// See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#gp3-storage) for details.
  1527  	Iops pulumi.IntPtrInput
  1528  	// The ARN for the KMS encryption key. If creating an
  1529  	// encrypted replica, set this to the destination KMS ARN.
  1530  	KmsKeyId pulumi.StringPtrInput
  1531  	// License model information for this DB instance. Valid values for this field are as follows:
  1532  	// * RDS for MariaDB: `general-public-license`
  1533  	// * RDS for Microsoft SQL Server: `license-included`
  1534  	// * RDS for MySQL: `general-public-license`
  1535  	// * RDS for Oracle: `bring-your-own-license | license-included`
  1536  	// * RDS for PostgreSQL: `postgresql-license`
  1537  	LicenseModel pulumi.StringPtrInput
  1538  	// The window to perform maintenance in.
  1539  	// Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". See [RDS
  1540  	// Maintenance Window
  1541  	// docs](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow)
  1542  	// for more information.
  1543  	MaintenanceWindow pulumi.StringPtrInput
  1544  	// Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if `password` is provided.
  1545  	ManageMasterUserPassword pulumi.BoolPtrInput
  1546  	// The 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.
  1547  	MasterUserSecretKmsKeyId pulumi.StringPtrInput
  1548  	// When configured, the upper limit to which Amazon RDS can automatically scale the storage of the DB instance. Configuring this will automatically ignore differences to `allocatedStorage`. Must be greater than or equal to `allocatedStorage` or `0` to disable Storage Autoscaling.
  1549  	MaxAllocatedStorage pulumi.IntPtrInput
  1550  	// The interval, in seconds, between points
  1551  	// when Enhanced Monitoring metrics are collected for the DB instance. To disable
  1552  	// collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid
  1553  	// Values: 0, 1, 5, 10, 15, 30, 60.
  1554  	MonitoringInterval pulumi.IntPtrInput
  1555  	// The ARN for the IAM role that permits RDS
  1556  	// to send enhanced monitoring metrics to CloudWatch Logs. You can find more
  1557  	// information on the [AWS
  1558  	// Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html)
  1559  	// what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances.
  1560  	MonitoringRoleArn pulumi.StringPtrInput
  1561  	// Specifies if the RDS instance is multi-AZ
  1562  	MultiAz pulumi.BoolPtrInput
  1563  	// Deprecated: This property has been deprecated. Please use 'dbName' instead.
  1564  	Name pulumi.StringPtrInput
  1565  	// The national character set is used in the NCHAR, NVARCHAR2, and NCLOB data types for Oracle instances. This can't be changed. See [Oracle Character Sets
  1566  	// Supported in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleCharacterSets.html).
  1567  	NcharCharacterSetName pulumi.StringPtrInput
  1568  	// The network type of the DB instance. Valid values: `IPV4`, `DUAL`.
  1569  	NetworkType pulumi.StringPtrInput
  1570  	// Name of the DB option group to associate.
  1571  	OptionGroupName pulumi.StringPtrInput
  1572  	// Name of the DB parameter group to associate.
  1573  	ParameterGroupName pulumi.StringPtrInput
  1574  	// (Required unless `manageMasterUserPassword` is set to true or unless a `snapshotIdentifier` or `replicateSourceDb`
  1575  	// is provided or `manageMasterUserPassword` is set.) Password for the master DB user. Note that this may show up in
  1576  	// logs, and it will be stored in the state file. Cannot be set if `manageMasterUserPassword` is set to `true`.
  1577  	Password pulumi.StringPtrInput
  1578  	// Specifies whether Performance Insights are enabled. Defaults to false.
  1579  	PerformanceInsightsEnabled pulumi.BoolPtrInput
  1580  	// The ARN for the KMS key to encrypt Performance Insights data. When specifying `performanceInsightsKmsKeyId`, `performanceInsightsEnabled` needs to be set to true. Once KMS key is set, it can never be changed.
  1581  	PerformanceInsightsKmsKeyId pulumi.StringPtrInput
  1582  	// Amount of time in days to retain Performance Insights data. Valid values are `7`, `731` (2 years) or a multiple of `31`. When specifying `performanceInsightsRetentionPeriod`, `performanceInsightsEnabled` needs to be set to true. Defaults to '7'.
  1583  	PerformanceInsightsRetentionPeriod pulumi.IntPtrInput
  1584  	// The port on which the DB accepts connections.
  1585  	Port pulumi.IntPtrInput
  1586  	// Bool to control if instance is publicly
  1587  	// accessible. Default is `false`.
  1588  	PubliclyAccessible pulumi.BoolPtrInput
  1589  	// Specifies whether the replica is in either `mounted` or `open-read-only` mode. This attribute
  1590  	// is only supported by Oracle instances. Oracle replicas operate in `open-read-only` mode unless otherwise specified. See [Working with Oracle Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html) for more information.
  1591  	ReplicaMode pulumi.StringPtrInput
  1592  	// Specifies that this resource is a Replicate
  1593  	// database, and to use this value as the source database. This correlates to the
  1594  	// `identifier` of another Amazon RDS Database to replicate (if replicating within
  1595  	// a single region) or ARN of the Amazon RDS Database to replicate (if replicating
  1596  	// cross-region). Note that if you are
  1597  	// creating a cross-region replica of an encrypted database you will also need to
  1598  	// specify a `kmsKeyId`. See [DB Instance Replication][instance-replication] and [Working with
  1599  	// PostgreSQL and MySQL Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html)
  1600  	// for more information on using Replication.
  1601  	ReplicateSourceDb pulumi.StringPtrInput
  1602  	// A configuration block for restoring a DB instance to an arbitrary point in time. Requires the `identifier` argument to be set with the name of the new DB instance to be created. See Restore To Point In Time below for details.
  1603  	RestoreToPointInTime InstanceRestoreToPointInTimePtrInput
  1604  	// Restore from a Percona Xtrabackup in S3.  See [Importing Data into an Amazon RDS MySQL DB Instance](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.html)
  1605  	S3Import InstanceS3ImportPtrInput
  1606  	// Determines whether a final DB snapshot is
  1607  	// created before the DB instance is deleted. If true is specified, no DBSnapshot
  1608  	// is created. If false is specified, a DB snapshot is created before the DB
  1609  	// instance is deleted, using the value from `finalSnapshotIdentifier`. Default
  1610  	// is `false`.
  1611  	SkipFinalSnapshot pulumi.BoolPtrInput
  1612  	// Specifies whether or not to create this
  1613  	// database from a snapshot. This correlates to the snapshot ID you'd find in the
  1614  	// RDS console, e.g: rds:production-2015-06-26-06-05.
  1615  	SnapshotIdentifier pulumi.StringPtrInput
  1616  	// Specifies whether the DB instance is
  1617  	// encrypted. Note that if you are creating a cross-region read replica this field
  1618  	// is ignored and you should instead declare `kmsKeyId` with a valid ARN. The
  1619  	// default is `false` if not specified.
  1620  	StorageEncrypted pulumi.BoolPtrInput
  1621  	// The storage throughput value for the DB instance. Can only be set when `storageType` is `"gp3"`. Cannot be specified if the `allocatedStorage` value is below a per-`engine` threshold. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#gp3-storage) for details.
  1622  	StorageThroughput pulumi.IntPtrInput
  1623  	// One of "standard" (magnetic), "gp2" (general
  1624  	// purpose SSD), "gp3" (general purpose SSD that needs `iops` independently)
  1625  	// or "io1" (provisioned IOPS SSD). The default is "io1" if `iops` is specified,
  1626  	// "gp2" if not.
  1627  	StorageType pulumi.StringPtrInput
  1628  	// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
  1629  	Tags pulumi.StringMapInput
  1630  	// Time zone of the DB instance. `timezone` is currently
  1631  	// only supported by Microsoft SQL Server. The `timezone` can only be set on
  1632  	// creation. See [MSSQL User
  1633  	// Guide](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone)
  1634  	// for more information.
  1635  	Timezone pulumi.StringPtrInput
  1636  	// (Required unless a `snapshotIdentifier` or `replicateSourceDb`
  1637  	// is provided) Username for the master DB user. Cannot be specified for a replica.
  1638  	Username pulumi.StringPtrInput
  1639  	// List of VPC security groups to
  1640  	// associate.
  1641  	VpcSecurityGroupIds pulumi.StringArrayInput
  1642  }
  1643  
  1644  func (InstanceArgs) ElementType() reflect.Type {
  1645  	return reflect.TypeOf((*instanceArgs)(nil)).Elem()
  1646  }
  1647  
  1648  type InstanceInput interface {
  1649  	pulumi.Input
  1650  
  1651  	ToInstanceOutput() InstanceOutput
  1652  	ToInstanceOutputWithContext(ctx context.Context) InstanceOutput
  1653  }
  1654  
  1655  func (*Instance) ElementType() reflect.Type {
  1656  	return reflect.TypeOf((**Instance)(nil)).Elem()
  1657  }
  1658  
  1659  func (i *Instance) ToInstanceOutput() InstanceOutput {
  1660  	return i.ToInstanceOutputWithContext(context.Background())
  1661  }
  1662  
  1663  func (i *Instance) ToInstanceOutputWithContext(ctx context.Context) InstanceOutput {
  1664  	return pulumi.ToOutputWithContext(ctx, i).(InstanceOutput)
  1665  }
  1666  
  1667  // InstanceArrayInput is an input type that accepts InstanceArray and InstanceArrayOutput values.
  1668  // You can construct a concrete instance of `InstanceArrayInput` via:
  1669  //
  1670  //	InstanceArray{ InstanceArgs{...} }
  1671  type InstanceArrayInput interface {
  1672  	pulumi.Input
  1673  
  1674  	ToInstanceArrayOutput() InstanceArrayOutput
  1675  	ToInstanceArrayOutputWithContext(context.Context) InstanceArrayOutput
  1676  }
  1677  
  1678  type InstanceArray []InstanceInput
  1679  
  1680  func (InstanceArray) ElementType() reflect.Type {
  1681  	return reflect.TypeOf((*[]*Instance)(nil)).Elem()
  1682  }
  1683  
  1684  func (i InstanceArray) ToInstanceArrayOutput() InstanceArrayOutput {
  1685  	return i.ToInstanceArrayOutputWithContext(context.Background())
  1686  }
  1687  
  1688  func (i InstanceArray) ToInstanceArrayOutputWithContext(ctx context.Context) InstanceArrayOutput {
  1689  	return pulumi.ToOutputWithContext(ctx, i).(InstanceArrayOutput)
  1690  }
  1691  
  1692  // InstanceMapInput is an input type that accepts InstanceMap and InstanceMapOutput values.
  1693  // You can construct a concrete instance of `InstanceMapInput` via:
  1694  //
  1695  //	InstanceMap{ "key": InstanceArgs{...} }
  1696  type InstanceMapInput interface {
  1697  	pulumi.Input
  1698  
  1699  	ToInstanceMapOutput() InstanceMapOutput
  1700  	ToInstanceMapOutputWithContext(context.Context) InstanceMapOutput
  1701  }
  1702  
  1703  type InstanceMap map[string]InstanceInput
  1704  
  1705  func (InstanceMap) ElementType() reflect.Type {
  1706  	return reflect.TypeOf((*map[string]*Instance)(nil)).Elem()
  1707  }
  1708  
  1709  func (i InstanceMap) ToInstanceMapOutput() InstanceMapOutput {
  1710  	return i.ToInstanceMapOutputWithContext(context.Background())
  1711  }
  1712  
  1713  func (i InstanceMap) ToInstanceMapOutputWithContext(ctx context.Context) InstanceMapOutput {
  1714  	return pulumi.ToOutputWithContext(ctx, i).(InstanceMapOutput)
  1715  }
  1716  
  1717  type InstanceOutput struct{ *pulumi.OutputState }
  1718  
  1719  func (InstanceOutput) ElementType() reflect.Type {
  1720  	return reflect.TypeOf((**Instance)(nil)).Elem()
  1721  }
  1722  
  1723  func (o InstanceOutput) ToInstanceOutput() InstanceOutput {
  1724  	return o
  1725  }
  1726  
  1727  func (o InstanceOutput) ToInstanceOutputWithContext(ctx context.Context) InstanceOutput {
  1728  	return o
  1729  }
  1730  
  1731  // Specifies the DNS address of the DB instance.
  1732  func (o InstanceOutput) Address() pulumi.StringOutput {
  1733  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Address }).(pulumi.StringOutput)
  1734  }
  1735  
  1736  // The allocated storage in gibibytes. If `maxAllocatedStorage` is configured, this argument represents the initial storage allocation and differences from the configuration will be ignored automatically when Storage Autoscaling occurs. If `replicateSourceDb` is set, the value is ignored during the creation of the instance.
  1737  func (o InstanceOutput) AllocatedStorage() pulumi.IntOutput {
  1738  	return o.ApplyT(func(v *Instance) pulumi.IntOutput { return v.AllocatedStorage }).(pulumi.IntOutput)
  1739  }
  1740  
  1741  // Indicates that major version
  1742  // upgrades are allowed. Changing this parameter does not result in an outage and
  1743  // the change is asynchronously applied as soon as possible.
  1744  func (o InstanceOutput) AllowMajorVersionUpgrade() pulumi.BoolPtrOutput {
  1745  	return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.AllowMajorVersionUpgrade }).(pulumi.BoolPtrOutput)
  1746  }
  1747  
  1748  // Specifies whether any database modifications
  1749  // are applied immediately, or during the next maintenance window. Default is
  1750  // `false`. See [Amazon RDS Documentation for more
  1751  // information.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html)
  1752  func (o InstanceOutput) ApplyImmediately() pulumi.BoolPtrOutput {
  1753  	return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.ApplyImmediately }).(pulumi.BoolPtrOutput)
  1754  }
  1755  
  1756  // The ARN of the RDS instance.
  1757  func (o InstanceOutput) Arn() pulumi.StringOutput {
  1758  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
  1759  }
  1760  
  1761  // Indicates that minor engine upgrades
  1762  // will be applied automatically to the DB instance during the maintenance window.
  1763  // Defaults to true.
  1764  func (o InstanceOutput) AutoMinorVersionUpgrade() pulumi.BoolPtrOutput {
  1765  	return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.AutoMinorVersionUpgrade }).(pulumi.BoolPtrOutput)
  1766  }
  1767  
  1768  // The AZ for the RDS instance.
  1769  func (o InstanceOutput) AvailabilityZone() pulumi.StringOutput {
  1770  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.AvailabilityZone }).(pulumi.StringOutput)
  1771  }
  1772  
  1773  // The days to retain backups for.
  1774  // Must be between `0` and `35`.
  1775  // Default is `0`.
  1776  // Must be greater than `0` if the database is used as a source for a [Read Replica][instance-replication],
  1777  // uses low-downtime updates,
  1778  // or will use [RDS Blue/Green deployments][blue-green].
  1779  func (o InstanceOutput) BackupRetentionPeriod() pulumi.IntOutput {
  1780  	return o.ApplyT(func(v *Instance) pulumi.IntOutput { return v.BackupRetentionPeriod }).(pulumi.IntOutput)
  1781  }
  1782  
  1783  // Specifies where automated backups and manual snapshots are stored. Possible values are `region` (default) and `outposts`. See [Working with Amazon RDS on AWS Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html) for more information.
  1784  func (o InstanceOutput) BackupTarget() pulumi.StringOutput {
  1785  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.BackupTarget }).(pulumi.StringOutput)
  1786  }
  1787  
  1788  // The daily time range (in UTC) during which automated backups are created if they are enabled.
  1789  // Example: "09:46-10:16". Must not overlap with `maintenanceWindow`.
  1790  func (o InstanceOutput) BackupWindow() pulumi.StringOutput {
  1791  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.BackupWindow }).(pulumi.StringOutput)
  1792  }
  1793  
  1794  // Enables low-downtime updates using [RDS Blue/Green deployments][blue-green].
  1795  // See `blueGreenUpdate` below.
  1796  func (o InstanceOutput) BlueGreenUpdate() InstanceBlueGreenUpdatePtrOutput {
  1797  	return o.ApplyT(func(v *Instance) InstanceBlueGreenUpdatePtrOutput { return v.BlueGreenUpdate }).(InstanceBlueGreenUpdatePtrOutput)
  1798  }
  1799  
  1800  // The identifier of the CA certificate for the DB instance.
  1801  func (o InstanceOutput) CaCertIdentifier() pulumi.StringOutput {
  1802  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.CaCertIdentifier }).(pulumi.StringOutput)
  1803  }
  1804  
  1805  // The character set name to use for DB encoding in Oracle and Microsoft SQL instances (collation).
  1806  // This can't be changed.
  1807  // See [Oracle Character Sets Supported in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleCharacterSets.html) or
  1808  // [Server-Level Collation for Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Collation.html) for more information.
  1809  // Cannot be set  with `replicateSourceDb`, `restoreToPointInTime`, `s3Import`, or `snapshotIdentifier`.
  1810  func (o InstanceOutput) CharacterSetName() pulumi.StringOutput {
  1811  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.CharacterSetName }).(pulumi.StringOutput)
  1812  }
  1813  
  1814  // Copy all Instance `tags` to snapshots. Default is `false`.
  1815  func (o InstanceOutput) CopyTagsToSnapshot() pulumi.BoolPtrOutput {
  1816  	return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.CopyTagsToSnapshot }).(pulumi.BoolPtrOutput)
  1817  }
  1818  
  1819  // The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance.
  1820  func (o InstanceOutput) CustomIamInstanceProfile() pulumi.StringPtrOutput {
  1821  	return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.CustomIamInstanceProfile }).(pulumi.StringPtrOutput)
  1822  }
  1823  
  1824  // Indicates whether to enable a customer-owned IP address (CoIP) for an RDS on Outposts DB instance. See [CoIP for RDS on Outposts](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-on-outposts.html#rds-on-outposts.coip) for more information.
  1825  //
  1826  // > **NOTE:** Removing the `replicateSourceDb` attribute from an existing RDS
  1827  // Replicate database managed by the provider will promote the database to a fully
  1828  // standalone database.
  1829  func (o InstanceOutput) CustomerOwnedIpEnabled() pulumi.BoolPtrOutput {
  1830  	return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.CustomerOwnedIpEnabled }).(pulumi.BoolPtrOutput)
  1831  }
  1832  
  1833  // The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. Note that this does not apply for Oracle or SQL Server engines. See the [AWS documentation](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-instance.html) for more details on what applies for those engines. If you are providing an Oracle db name, it needs to be in all upper case. Cannot be specified for a replica.
  1834  func (o InstanceOutput) DbName() pulumi.StringOutput {
  1835  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.DbName }).(pulumi.StringOutput)
  1836  }
  1837  
  1838  // Name of DB subnet group. DB instance will
  1839  // be created in the VPC associated with the DB subnet group. If unspecified, will
  1840  // be created in the `default` VPC, or in EC2 Classic, if available. When working
  1841  // with read replicas, it should be specified only if the source database
  1842  // specifies an instance in another AWS Region. See [DBSubnetGroupName in API
  1843  // action CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html)
  1844  // for additional read replica constraints.
  1845  func (o InstanceOutput) DbSubnetGroupName() pulumi.StringOutput {
  1846  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.DbSubnetGroupName }).(pulumi.StringOutput)
  1847  }
  1848  
  1849  // Specifies whether to remove automated backups immediately after the DB instance is deleted. Default is `true`.
  1850  func (o InstanceOutput) DeleteAutomatedBackups() pulumi.BoolPtrOutput {
  1851  	return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.DeleteAutomatedBackups }).(pulumi.BoolPtrOutput)
  1852  }
  1853  
  1854  // If the DB instance should have deletion protection enabled. The database can't be deleted when this value is set to `true`. The default is `false`.
  1855  func (o InstanceOutput) DeletionProtection() pulumi.BoolPtrOutput {
  1856  	return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.DeletionProtection }).(pulumi.BoolPtrOutput)
  1857  }
  1858  
  1859  // The ID of the Directory Service Active Directory domain to create the instance in. Conflicts with `domainFqdn`, `domainOu`, `domainAuthSecretArn` and a `domainDnsIps`.
  1860  func (o InstanceOutput) Domain() pulumi.StringPtrOutput {
  1861  	return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.Domain }).(pulumi.StringPtrOutput)
  1862  }
  1863  
  1864  // The ARN for the Secrets Manager secret with the self managed Active Directory credentials for the user joining the domain. Conflicts with `domain` and `domainIamRoleName`.
  1865  func (o InstanceOutput) DomainAuthSecretArn() pulumi.StringPtrOutput {
  1866  	return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.DomainAuthSecretArn }).(pulumi.StringPtrOutput)
  1867  }
  1868  
  1869  // The IPv4 DNS IP addresses of your primary and secondary self managed Active Directory domain controllers. Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of the primary domain controller for both entries in the list. Conflicts with `domain` and `domainIamRoleName`.
  1870  func (o InstanceOutput) DomainDnsIps() pulumi.StringArrayOutput {
  1871  	return o.ApplyT(func(v *Instance) pulumi.StringArrayOutput { return v.DomainDnsIps }).(pulumi.StringArrayOutput)
  1872  }
  1873  
  1874  // The fully qualified domain name (FQDN) of the self managed Active Directory domain. Conflicts with `domain` and `domainIamRoleName`.
  1875  func (o InstanceOutput) DomainFqdn() pulumi.StringOutput {
  1876  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.DomainFqdn }).(pulumi.StringOutput)
  1877  }
  1878  
  1879  // The name of the IAM role to be used when making API calls to the Directory Service. Conflicts with `domainFqdn`, `domainOu`, `domainAuthSecretArn` and a `domainDnsIps`.
  1880  func (o InstanceOutput) DomainIamRoleName() pulumi.StringPtrOutput {
  1881  	return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.DomainIamRoleName }).(pulumi.StringPtrOutput)
  1882  }
  1883  
  1884  // The self managed Active Directory organizational unit for your DB instance to join. Conflicts with `domain` and `domainIamRoleName`.
  1885  func (o InstanceOutput) DomainOu() pulumi.StringPtrOutput {
  1886  	return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.DomainOu }).(pulumi.StringPtrOutput)
  1887  }
  1888  
  1889  // Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. For supported values, see the EnableCloudwatchLogsExports.member.N parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html).
  1890  func (o InstanceOutput) EnabledCloudwatchLogsExports() pulumi.StringArrayOutput {
  1891  	return o.ApplyT(func(v *Instance) pulumi.StringArrayOutput { return v.EnabledCloudwatchLogsExports }).(pulumi.StringArrayOutput)
  1892  }
  1893  
  1894  // The connection endpoint in `address:port` format.
  1895  func (o InstanceOutput) Endpoint() pulumi.StringOutput {
  1896  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Endpoint }).(pulumi.StringOutput)
  1897  }
  1898  
  1899  // The database engine to use. For supported values, see the Engine parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine must match the DB cluster's engine'. 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.
  1900  func (o InstanceOutput) Engine() pulumi.StringOutput {
  1901  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Engine }).(pulumi.StringOutput)
  1902  }
  1903  
  1904  // The engine version to use. If `autoMinorVersionUpgrade` is enabled, you can provide a prefix of the version such as `5.7` (for `5.7.10`). The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. For supported values, see the EngineVersion parameter in [API action CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Note that for Amazon Aurora instances the engine version must match the DB cluster's engine version'.
  1905  func (o InstanceOutput) EngineVersion() pulumi.StringOutput {
  1906  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.EngineVersion }).(pulumi.StringOutput)
  1907  }
  1908  
  1909  // The running version of the database.
  1910  func (o InstanceOutput) EngineVersionActual() pulumi.StringOutput {
  1911  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.EngineVersionActual }).(pulumi.StringOutput)
  1912  }
  1913  
  1914  // The name of your final DB snapshot
  1915  // when this DB instance is deleted. Must be provided if `skipFinalSnapshot` is
  1916  // set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica.
  1917  func (o InstanceOutput) FinalSnapshotIdentifier() pulumi.StringPtrOutput {
  1918  	return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.FinalSnapshotIdentifier }).(pulumi.StringPtrOutput)
  1919  }
  1920  
  1921  // Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.
  1922  func (o InstanceOutput) HostedZoneId() pulumi.StringOutput {
  1923  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.HostedZoneId }).(pulumi.StringOutput)
  1924  }
  1925  
  1926  // Specifies whether mappings of AWS Identity and Access Management (IAM) accounts to database
  1927  // accounts is enabled.
  1928  func (o InstanceOutput) IamDatabaseAuthenticationEnabled() pulumi.BoolPtrOutput {
  1929  	return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.IamDatabaseAuthenticationEnabled }).(pulumi.BoolPtrOutput)
  1930  }
  1931  
  1932  // The name of the RDS instance, if omitted, this provider will assign a random, unique identifier. Required if `restoreToPointInTime` is specified.
  1933  func (o InstanceOutput) Identifier() pulumi.StringOutput {
  1934  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Identifier }).(pulumi.StringOutput)
  1935  }
  1936  
  1937  // Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
  1938  func (o InstanceOutput) IdentifierPrefix() pulumi.StringOutput {
  1939  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.IdentifierPrefix }).(pulumi.StringOutput)
  1940  }
  1941  
  1942  // The instance type of the RDS instance.
  1943  func (o InstanceOutput) InstanceClass() pulumi.StringOutput {
  1944  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.InstanceClass }).(pulumi.StringOutput)
  1945  }
  1946  
  1947  // The amount of provisioned IOPS. Setting this implies a
  1948  // storageType of "io1". Can only be set when `storageType` is `"io1"` or `"gp3"`.
  1949  // Cannot be specified for gp3 storage if the `allocatedStorage` value is below a per-`engine` threshold.
  1950  // See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#gp3-storage) for details.
  1951  func (o InstanceOutput) Iops() pulumi.IntOutput {
  1952  	return o.ApplyT(func(v *Instance) pulumi.IntOutput { return v.Iops }).(pulumi.IntOutput)
  1953  }
  1954  
  1955  // The ARN for the KMS encryption key. If creating an
  1956  // encrypted replica, set this to the destination KMS ARN.
  1957  func (o InstanceOutput) KmsKeyId() pulumi.StringOutput {
  1958  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.KmsKeyId }).(pulumi.StringOutput)
  1959  }
  1960  
  1961  // The latest time, in UTC [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8), to which a database can be restored with point-in-time restore.
  1962  func (o InstanceOutput) LatestRestorableTime() pulumi.StringOutput {
  1963  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.LatestRestorableTime }).(pulumi.StringOutput)
  1964  }
  1965  
  1966  // License model information for this DB instance. Valid values for this field are as follows:
  1967  // * RDS for MariaDB: `general-public-license`
  1968  // * RDS for Microsoft SQL Server: `license-included`
  1969  // * RDS for MySQL: `general-public-license`
  1970  // * RDS for Oracle: `bring-your-own-license | license-included`
  1971  // * RDS for PostgreSQL: `postgresql-license`
  1972  func (o InstanceOutput) LicenseModel() pulumi.StringOutput {
  1973  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.LicenseModel }).(pulumi.StringOutput)
  1974  }
  1975  
  1976  // Specifies the listener connection endpoint for SQL Server Always On. See endpoint below.
  1977  func (o InstanceOutput) ListenerEndpoints() InstanceListenerEndpointArrayOutput {
  1978  	return o.ApplyT(func(v *Instance) InstanceListenerEndpointArrayOutput { return v.ListenerEndpoints }).(InstanceListenerEndpointArrayOutput)
  1979  }
  1980  
  1981  // The window to perform maintenance in.
  1982  // Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00". See [RDS
  1983  // Maintenance Window
  1984  // docs](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow)
  1985  // for more information.
  1986  func (o InstanceOutput) MaintenanceWindow() pulumi.StringOutput {
  1987  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.MaintenanceWindow }).(pulumi.StringOutput)
  1988  }
  1989  
  1990  // Set to true to allow RDS to manage the master user password in Secrets Manager. Cannot be set if `password` is provided.
  1991  func (o InstanceOutput) ManageMasterUserPassword() pulumi.BoolPtrOutput {
  1992  	return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.ManageMasterUserPassword }).(pulumi.BoolPtrOutput)
  1993  }
  1994  
  1995  // The 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.
  1996  func (o InstanceOutput) MasterUserSecretKmsKeyId() pulumi.StringOutput {
  1997  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.MasterUserSecretKmsKeyId }).(pulumi.StringOutput)
  1998  }
  1999  
  2000  // A block that specifies the master user secret. Only available when `manageMasterUserPassword` is set to true. Documented below.
  2001  func (o InstanceOutput) MasterUserSecrets() InstanceMasterUserSecretArrayOutput {
  2002  	return o.ApplyT(func(v *Instance) InstanceMasterUserSecretArrayOutput { return v.MasterUserSecrets }).(InstanceMasterUserSecretArrayOutput)
  2003  }
  2004  
  2005  // When configured, the upper limit to which Amazon RDS can automatically scale the storage of the DB instance. Configuring this will automatically ignore differences to `allocatedStorage`. Must be greater than or equal to `allocatedStorage` or `0` to disable Storage Autoscaling.
  2006  func (o InstanceOutput) MaxAllocatedStorage() pulumi.IntPtrOutput {
  2007  	return o.ApplyT(func(v *Instance) pulumi.IntPtrOutput { return v.MaxAllocatedStorage }).(pulumi.IntPtrOutput)
  2008  }
  2009  
  2010  // The interval, in seconds, between points
  2011  // when Enhanced Monitoring metrics are collected for the DB instance. To disable
  2012  // collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid
  2013  // Values: 0, 1, 5, 10, 15, 30, 60.
  2014  func (o InstanceOutput) MonitoringInterval() pulumi.IntPtrOutput {
  2015  	return o.ApplyT(func(v *Instance) pulumi.IntPtrOutput { return v.MonitoringInterval }).(pulumi.IntPtrOutput)
  2016  }
  2017  
  2018  // The ARN for the IAM role that permits RDS
  2019  // to send enhanced monitoring metrics to CloudWatch Logs. You can find more
  2020  // information on the [AWS
  2021  // Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html)
  2022  // what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances.
  2023  func (o InstanceOutput) MonitoringRoleArn() pulumi.StringOutput {
  2024  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.MonitoringRoleArn }).(pulumi.StringOutput)
  2025  }
  2026  
  2027  // Specifies if the RDS instance is multi-AZ
  2028  func (o InstanceOutput) MultiAz() pulumi.BoolOutput {
  2029  	return o.ApplyT(func(v *Instance) pulumi.BoolOutput { return v.MultiAz }).(pulumi.BoolOutput)
  2030  }
  2031  
  2032  // Deprecated: This property has been deprecated. Please use 'dbName' instead.
  2033  func (o InstanceOutput) Name() pulumi.StringPtrOutput {
  2034  	return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.Name }).(pulumi.StringPtrOutput)
  2035  }
  2036  
  2037  // The national character set is used in the NCHAR, NVARCHAR2, and NCLOB data types for Oracle instances. This can't be changed. See [Oracle Character Sets
  2038  // Supported in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.OracleCharacterSets.html).
  2039  func (o InstanceOutput) NcharCharacterSetName() pulumi.StringOutput {
  2040  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.NcharCharacterSetName }).(pulumi.StringOutput)
  2041  }
  2042  
  2043  // The network type of the DB instance. Valid values: `IPV4`, `DUAL`.
  2044  func (o InstanceOutput) NetworkType() pulumi.StringOutput {
  2045  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.NetworkType }).(pulumi.StringOutput)
  2046  }
  2047  
  2048  // Name of the DB option group to associate.
  2049  func (o InstanceOutput) OptionGroupName() pulumi.StringOutput {
  2050  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.OptionGroupName }).(pulumi.StringOutput)
  2051  }
  2052  
  2053  // Name of the DB parameter group to associate.
  2054  func (o InstanceOutput) ParameterGroupName() pulumi.StringOutput {
  2055  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.ParameterGroupName }).(pulumi.StringOutput)
  2056  }
  2057  
  2058  // (Required unless `manageMasterUserPassword` is set to true or unless a `snapshotIdentifier` or `replicateSourceDb`
  2059  // is provided or `manageMasterUserPassword` is set.) Password for the master DB user. Note that this may show up in
  2060  // logs, and it will be stored in the state file. Cannot be set if `manageMasterUserPassword` is set to `true`.
  2061  func (o InstanceOutput) Password() pulumi.StringPtrOutput {
  2062  	return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.Password }).(pulumi.StringPtrOutput)
  2063  }
  2064  
  2065  // Specifies whether Performance Insights are enabled. Defaults to false.
  2066  func (o InstanceOutput) PerformanceInsightsEnabled() pulumi.BoolPtrOutput {
  2067  	return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.PerformanceInsightsEnabled }).(pulumi.BoolPtrOutput)
  2068  }
  2069  
  2070  // The ARN for the KMS key to encrypt Performance Insights data. When specifying `performanceInsightsKmsKeyId`, `performanceInsightsEnabled` needs to be set to true. Once KMS key is set, it can never be changed.
  2071  func (o InstanceOutput) PerformanceInsightsKmsKeyId() pulumi.StringOutput {
  2072  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.PerformanceInsightsKmsKeyId }).(pulumi.StringOutput)
  2073  }
  2074  
  2075  // Amount of time in days to retain Performance Insights data. Valid values are `7`, `731` (2 years) or a multiple of `31`. When specifying `performanceInsightsRetentionPeriod`, `performanceInsightsEnabled` needs to be set to true. Defaults to '7'.
  2076  func (o InstanceOutput) PerformanceInsightsRetentionPeriod() pulumi.IntOutput {
  2077  	return o.ApplyT(func(v *Instance) pulumi.IntOutput { return v.PerformanceInsightsRetentionPeriod }).(pulumi.IntOutput)
  2078  }
  2079  
  2080  // The port on which the DB accepts connections.
  2081  func (o InstanceOutput) Port() pulumi.IntOutput {
  2082  	return o.ApplyT(func(v *Instance) pulumi.IntOutput { return v.Port }).(pulumi.IntOutput)
  2083  }
  2084  
  2085  // Bool to control if instance is publicly
  2086  // accessible. Default is `false`.
  2087  func (o InstanceOutput) PubliclyAccessible() pulumi.BoolPtrOutput {
  2088  	return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.PubliclyAccessible }).(pulumi.BoolPtrOutput)
  2089  }
  2090  
  2091  // Specifies whether the replica is in either `mounted` or `open-read-only` mode. This attribute
  2092  // is only supported by Oracle instances. Oracle replicas operate in `open-read-only` mode unless otherwise specified. See [Working with Oracle Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html) for more information.
  2093  func (o InstanceOutput) ReplicaMode() pulumi.StringOutput {
  2094  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.ReplicaMode }).(pulumi.StringOutput)
  2095  }
  2096  
  2097  func (o InstanceOutput) Replicas() pulumi.StringArrayOutput {
  2098  	return o.ApplyT(func(v *Instance) pulumi.StringArrayOutput { return v.Replicas }).(pulumi.StringArrayOutput)
  2099  }
  2100  
  2101  // Specifies that this resource is a Replicate
  2102  // database, and to use this value as the source database. This correlates to the
  2103  // `identifier` of another Amazon RDS Database to replicate (if replicating within
  2104  // a single region) or ARN of the Amazon RDS Database to replicate (if replicating
  2105  // cross-region). Note that if you are
  2106  // creating a cross-region replica of an encrypted database you will also need to
  2107  // specify a `kmsKeyId`. See [DB Instance Replication][instance-replication] and [Working with
  2108  // PostgreSQL and MySQL Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html)
  2109  // for more information on using Replication.
  2110  func (o InstanceOutput) ReplicateSourceDb() pulumi.StringPtrOutput {
  2111  	return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.ReplicateSourceDb }).(pulumi.StringPtrOutput)
  2112  }
  2113  
  2114  // The RDS Resource ID of this instance.
  2115  func (o InstanceOutput) ResourceId() pulumi.StringOutput {
  2116  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.ResourceId }).(pulumi.StringOutput)
  2117  }
  2118  
  2119  // A configuration block for restoring a DB instance to an arbitrary point in time. Requires the `identifier` argument to be set with the name of the new DB instance to be created. See Restore To Point In Time below for details.
  2120  func (o InstanceOutput) RestoreToPointInTime() InstanceRestoreToPointInTimePtrOutput {
  2121  	return o.ApplyT(func(v *Instance) InstanceRestoreToPointInTimePtrOutput { return v.RestoreToPointInTime }).(InstanceRestoreToPointInTimePtrOutput)
  2122  }
  2123  
  2124  // Restore from a Percona Xtrabackup in S3.  See [Importing Data into an Amazon RDS MySQL DB Instance](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.html)
  2125  func (o InstanceOutput) S3Import() InstanceS3ImportPtrOutput {
  2126  	return o.ApplyT(func(v *Instance) InstanceS3ImportPtrOutput { return v.S3Import }).(InstanceS3ImportPtrOutput)
  2127  }
  2128  
  2129  // Determines whether a final DB snapshot is
  2130  // created before the DB instance is deleted. If true is specified, no DBSnapshot
  2131  // is created. If false is specified, a DB snapshot is created before the DB
  2132  // instance is deleted, using the value from `finalSnapshotIdentifier`. Default
  2133  // is `false`.
  2134  func (o InstanceOutput) SkipFinalSnapshot() pulumi.BoolPtrOutput {
  2135  	return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.SkipFinalSnapshot }).(pulumi.BoolPtrOutput)
  2136  }
  2137  
  2138  // Specifies whether or not to create this
  2139  // database from a snapshot. This correlates to the snapshot ID you'd find in the
  2140  // RDS console, e.g: rds:production-2015-06-26-06-05.
  2141  func (o InstanceOutput) SnapshotIdentifier() pulumi.StringOutput {
  2142  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.SnapshotIdentifier }).(pulumi.StringOutput)
  2143  }
  2144  
  2145  // The RDS instance status.
  2146  func (o InstanceOutput) Status() pulumi.StringOutput {
  2147  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput)
  2148  }
  2149  
  2150  // Specifies whether the DB instance is
  2151  // encrypted. Note that if you are creating a cross-region read replica this field
  2152  // is ignored and you should instead declare `kmsKeyId` with a valid ARN. The
  2153  // default is `false` if not specified.
  2154  func (o InstanceOutput) StorageEncrypted() pulumi.BoolPtrOutput {
  2155  	return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.StorageEncrypted }).(pulumi.BoolPtrOutput)
  2156  }
  2157  
  2158  // The storage throughput value for the DB instance. Can only be set when `storageType` is `"gp3"`. Cannot be specified if the `allocatedStorage` value is below a per-`engine` threshold. See the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#gp3-storage) for details.
  2159  func (o InstanceOutput) StorageThroughput() pulumi.IntOutput {
  2160  	return o.ApplyT(func(v *Instance) pulumi.IntOutput { return v.StorageThroughput }).(pulumi.IntOutput)
  2161  }
  2162  
  2163  // One of "standard" (magnetic), "gp2" (general
  2164  // purpose SSD), "gp3" (general purpose SSD that needs `iops` independently)
  2165  // or "io1" (provisioned IOPS SSD). The default is "io1" if `iops` is specified,
  2166  // "gp2" if not.
  2167  func (o InstanceOutput) StorageType() pulumi.StringOutput {
  2168  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.StorageType }).(pulumi.StringOutput)
  2169  }
  2170  
  2171  // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
  2172  func (o InstanceOutput) Tags() pulumi.StringMapOutput {
  2173  	return o.ApplyT(func(v *Instance) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
  2174  }
  2175  
  2176  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
  2177  //
  2178  // Deprecated: Please use `tags` instead.
  2179  func (o InstanceOutput) TagsAll() pulumi.StringMapOutput {
  2180  	return o.ApplyT(func(v *Instance) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
  2181  }
  2182  
  2183  // Time zone of the DB instance. `timezone` is currently
  2184  // only supported by Microsoft SQL Server. The `timezone` can only be set on
  2185  // creation. See [MSSQL User
  2186  // Guide](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone)
  2187  // for more information.
  2188  func (o InstanceOutput) Timezone() pulumi.StringOutput {
  2189  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Timezone }).(pulumi.StringOutput)
  2190  }
  2191  
  2192  // (Required unless a `snapshotIdentifier` or `replicateSourceDb`
  2193  // is provided) Username for the master DB user. Cannot be specified for a replica.
  2194  func (o InstanceOutput) Username() pulumi.StringOutput {
  2195  	return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Username }).(pulumi.StringOutput)
  2196  }
  2197  
  2198  // List of VPC security groups to
  2199  // associate.
  2200  func (o InstanceOutput) VpcSecurityGroupIds() pulumi.StringArrayOutput {
  2201  	return o.ApplyT(func(v *Instance) pulumi.StringArrayOutput { return v.VpcSecurityGroupIds }).(pulumi.StringArrayOutput)
  2202  }
  2203  
  2204  type InstanceArrayOutput struct{ *pulumi.OutputState }
  2205  
  2206  func (InstanceArrayOutput) ElementType() reflect.Type {
  2207  	return reflect.TypeOf((*[]*Instance)(nil)).Elem()
  2208  }
  2209  
  2210  func (o InstanceArrayOutput) ToInstanceArrayOutput() InstanceArrayOutput {
  2211  	return o
  2212  }
  2213  
  2214  func (o InstanceArrayOutput) ToInstanceArrayOutputWithContext(ctx context.Context) InstanceArrayOutput {
  2215  	return o
  2216  }
  2217  
  2218  func (o InstanceArrayOutput) Index(i pulumi.IntInput) InstanceOutput {
  2219  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Instance {
  2220  		return vs[0].([]*Instance)[vs[1].(int)]
  2221  	}).(InstanceOutput)
  2222  }
  2223  
  2224  type InstanceMapOutput struct{ *pulumi.OutputState }
  2225  
  2226  func (InstanceMapOutput) ElementType() reflect.Type {
  2227  	return reflect.TypeOf((*map[string]*Instance)(nil)).Elem()
  2228  }
  2229  
  2230  func (o InstanceMapOutput) ToInstanceMapOutput() InstanceMapOutput {
  2231  	return o
  2232  }
  2233  
  2234  func (o InstanceMapOutput) ToInstanceMapOutputWithContext(ctx context.Context) InstanceMapOutput {
  2235  	return o
  2236  }
  2237  
  2238  func (o InstanceMapOutput) MapIndex(k pulumi.StringInput) InstanceOutput {
  2239  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Instance {
  2240  		return vs[0].(map[string]*Instance)[vs[1].(string)]
  2241  	}).(InstanceOutput)
  2242  }
  2243  
  2244  func init() {
  2245  	pulumi.RegisterInputType(reflect.TypeOf((*InstanceInput)(nil)).Elem(), &Instance{})
  2246  	pulumi.RegisterInputType(reflect.TypeOf((*InstanceArrayInput)(nil)).Elem(), InstanceArray{})
  2247  	pulumi.RegisterInputType(reflect.TypeOf((*InstanceMapInput)(nil)).Elem(), InstanceMap{})
  2248  	pulumi.RegisterOutputType(InstanceOutput{})
  2249  	pulumi.RegisterOutputType(InstanceArrayOutput{})
  2250  	pulumi.RegisterOutputType(InstanceMapOutput{})
  2251  }