github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/rds/clusterInstance.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 Cluster Instance Resource. A Cluster Instance Resource defines
    16  // attributes that are specific to a single instance in a RDS Cluster,
    17  // specifically running Amazon Aurora.
    18  //
    19  // Unlike other RDS resources that support replication, with Amazon Aurora you do
    20  // not designate a primary and subsequent replicas. Instead, you simply add RDS
    21  // Instances and Aurora manages the replication. You can use the [count][5]
    22  // meta-parameter to make multiple instances and join them all to the same RDS
    23  // Cluster, or you may specify different Cluster Instance resources with various
    24  // `instanceClass` sizes.
    25  //
    26  // For more information on Amazon Aurora, see [Aurora on Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Aurora.html) in the Amazon RDS User Guide.
    27  //
    28  // > **NOTE:** Deletion Protection from the RDS service can only be enabled at the cluster level, not for individual cluster instances. You can still add the [`protect` CustomResourceOption](https://www.pulumi.com/docs/intro/concepts/programming-model/#protect) to this resource configuration if you desire protection from accidental deletion.
    29  //
    30  // > **NOTE:** `aurora` is no longer a valid `engine` because of [Amazon Aurora's MySQL-Compatible Edition version 1 end of life](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.MySQL56.EOL.html).
    31  //
    32  // ## Example Usage
    33  //
    34  // <!--Start PulumiCodeChooser -->
    35  // ```go
    36  // package main
    37  //
    38  // import (
    39  //
    40  //	"fmt"
    41  //
    42  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
    43  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    44  //
    45  // )
    46  //
    47  //	func main() {
    48  //		pulumi.Run(func(ctx *pulumi.Context) error {
    49  //			_, err := rds.NewCluster(ctx, "default", &rds.ClusterArgs{
    50  //				ClusterIdentifier: pulumi.String("aurora-cluster-demo"),
    51  //				AvailabilityZones: pulumi.StringArray{
    52  //					pulumi.String("us-west-2a"),
    53  //					pulumi.String("us-west-2b"),
    54  //					pulumi.String("us-west-2c"),
    55  //				},
    56  //				DatabaseName:   pulumi.String("mydb"),
    57  //				MasterUsername: pulumi.String("foo"),
    58  //				MasterPassword: pulumi.String("barbut8chars"),
    59  //			})
    60  //			if err != nil {
    61  //				return err
    62  //			}
    63  //			var clusterInstances []*rds.ClusterInstance
    64  //			for index := 0; index < 2; index++ {
    65  //				key0 := index
    66  //				val0 := index
    67  //				__res, err := rds.NewClusterInstance(ctx, fmt.Sprintf("cluster_instances-%v", key0), &rds.ClusterInstanceArgs{
    68  //					Identifier:        pulumi.String(fmt.Sprintf("aurora-cluster-demo-%v", val0)),
    69  //					ClusterIdentifier: _default.ID(),
    70  //					InstanceClass:     pulumi.String(rds.InstanceType_R4_Large),
    71  //					Engine:            _default.Engine,
    72  //					EngineVersion:     _default.EngineVersion,
    73  //				})
    74  //				if err != nil {
    75  //					return err
    76  //				}
    77  //				clusterInstances = append(clusterInstances, __res)
    78  //			}
    79  //			return nil
    80  //		})
    81  //	}
    82  //
    83  // ```
    84  // <!--End PulumiCodeChooser -->
    85  //
    86  // ## Import
    87  //
    88  // Using `pulumi import`, import RDS Cluster Instances using the `identifier`. For example:
    89  //
    90  // ```sh
    91  // $ pulumi import aws:rds/clusterInstance:ClusterInstance prod_instance_1 aurora-cluster-instance-1
    92  // ```
    93  type ClusterInstance struct {
    94  	pulumi.CustomResourceState
    95  
    96  	// Specifies whether any database modifications are applied immediately, or during the next maintenance window. Default is`false`.
    97  	ApplyImmediately pulumi.BoolOutput `pulumi:"applyImmediately"`
    98  	// Amazon Resource Name (ARN) of cluster instance
    99  	Arn pulumi.StringOutput `pulumi:"arn"`
   100  	// Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window. Default `true`.
   101  	AutoMinorVersionUpgrade pulumi.BoolPtrOutput `pulumi:"autoMinorVersionUpgrade"`
   102  	// EC2 Availability Zone that the DB instance is created in. See [docs](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) about the details.
   103  	AvailabilityZone pulumi.StringOutput `pulumi:"availabilityZone"`
   104  	// Identifier of the CA certificate for the DB instance.
   105  	CaCertIdentifier pulumi.StringOutput `pulumi:"caCertIdentifier"`
   106  	// Identifier of the `rds.Cluster` in which to launch this instance.
   107  	ClusterIdentifier pulumi.StringOutput `pulumi:"clusterIdentifier"`
   108  	// Indicates whether to copy all of the user-defined tags from the DB instance to snapshots of the DB instance. Default `false`.
   109  	CopyTagsToSnapshot pulumi.BoolPtrOutput `pulumi:"copyTagsToSnapshot"`
   110  	// Instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance.
   111  	CustomIamInstanceProfile pulumi.StringPtrOutput `pulumi:"customIamInstanceProfile"`
   112  	// Name of the DB parameter group to associate with this instance.
   113  	DbParameterGroupName pulumi.StringOutput `pulumi:"dbParameterGroupName"`
   114  	// DB subnet group to associate with this DB instance. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`.
   115  	DbSubnetGroupName pulumi.StringOutput `pulumi:"dbSubnetGroupName"`
   116  	// Region-unique, immutable identifier for the DB instance.
   117  	DbiResourceId pulumi.StringOutput `pulumi:"dbiResourceId"`
   118  	// DNS address for this instance. May not be writable
   119  	Endpoint pulumi.StringOutput `pulumi:"endpoint"`
   120  	// Name of the database engine to be used for the RDS cluster instance.
   121  	// Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`.(Note that `mysql` and `postgres` are Multi-AZ RDS clusters).
   122  	Engine pulumi.StringOutput `pulumi:"engine"`
   123  	// Database engine version. Please note that to upgrade the `engineVersion` of the instance, it must be done on the `rds.Cluster` `engineVersion`. Trying to upgrade in `awsClusterInstance` will not update the `engineVersion`.
   124  	EngineVersion pulumi.StringOutput `pulumi:"engineVersion"`
   125  	// Database engine version
   126  	EngineVersionActual pulumi.StringOutput `pulumi:"engineVersionActual"`
   127  	// Identifier for the RDS instance, if omitted, Pulumi will assign a random, unique identifier.
   128  	Identifier pulumi.StringOutput `pulumi:"identifier"`
   129  	// Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
   130  	IdentifierPrefix pulumi.StringOutput `pulumi:"identifierPrefix"`
   131  	// Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details.
   132  	InstanceClass pulumi.StringOutput `pulumi:"instanceClass"`
   133  	// ARN for the KMS encryption key if one is set to the cluster.
   134  	KmsKeyId pulumi.StringOutput `pulumi:"kmsKeyId"`
   135  	// Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60.
   136  	MonitoringInterval pulumi.IntPtrOutput `pulumi:"monitoringInterval"`
   137  	// ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. You can find more information on the [AWS Documentation](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html) what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances.
   138  	MonitoringRoleArn pulumi.StringOutput `pulumi:"monitoringRoleArn"`
   139  	// Network type of the DB instance.
   140  	NetworkType pulumi.StringOutput `pulumi:"networkType"`
   141  	// Specifies whether Performance Insights is enabled or not.
   142  	PerformanceInsightsEnabled pulumi.BoolOutput `pulumi:"performanceInsightsEnabled"`
   143  	// ARN for the KMS key to encrypt Performance Insights data. When specifying `performanceInsightsKmsKeyId`, `performanceInsightsEnabled` needs to be set to true.
   144  	PerformanceInsightsKmsKeyId pulumi.StringOutput `pulumi:"performanceInsightsKmsKeyId"`
   145  	// 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'.
   146  	PerformanceInsightsRetentionPeriod pulumi.IntOutput `pulumi:"performanceInsightsRetentionPeriod"`
   147  	// Database port
   148  	Port pulumi.IntOutput `pulumi:"port"`
   149  	// Daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00". **NOTE:** If `preferredBackupWindow` is set at the cluster level, this argument **must** be omitted.
   150  	PreferredBackupWindow pulumi.StringOutput `pulumi:"preferredBackupWindow"`
   151  	// Window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00".
   152  	PreferredMaintenanceWindow pulumi.StringOutput `pulumi:"preferredMaintenanceWindow"`
   153  	// Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoted to writer.
   154  	PromotionTier pulumi.IntPtrOutput `pulumi:"promotionTier"`
   155  	// Bool to control if instance is publicly accessible. Default `false`. See the documentation on [Creating DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) for more details on controlling this property.
   156  	PubliclyAccessible pulumi.BoolOutput `pulumi:"publiclyAccessible"`
   157  	// Specifies whether the DB cluster is encrypted.
   158  	StorageEncrypted pulumi.BoolOutput `pulumi:"storageEncrypted"`
   159  	// Map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   160  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   161  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   162  	//
   163  	// Deprecated: Please use `tags` instead.
   164  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   165  	// Boolean indicating if this instance is writable. `False` indicates this instance is a read replica.
   166  	Writer pulumi.BoolOutput `pulumi:"writer"`
   167  }
   168  
   169  // NewClusterInstance registers a new resource with the given unique name, arguments, and options.
   170  func NewClusterInstance(ctx *pulumi.Context,
   171  	name string, args *ClusterInstanceArgs, opts ...pulumi.ResourceOption) (*ClusterInstance, error) {
   172  	if args == nil {
   173  		return nil, errors.New("missing one or more required arguments")
   174  	}
   175  
   176  	if args.ClusterIdentifier == nil {
   177  		return nil, errors.New("invalid value for required argument 'ClusterIdentifier'")
   178  	}
   179  	if args.Engine == nil {
   180  		return nil, errors.New("invalid value for required argument 'Engine'")
   181  	}
   182  	if args.InstanceClass == nil {
   183  		return nil, errors.New("invalid value for required argument 'InstanceClass'")
   184  	}
   185  	opts = internal.PkgResourceDefaultOpts(opts)
   186  	var resource ClusterInstance
   187  	err := ctx.RegisterResource("aws:rds/clusterInstance:ClusterInstance", name, args, &resource, opts...)
   188  	if err != nil {
   189  		return nil, err
   190  	}
   191  	return &resource, nil
   192  }
   193  
   194  // GetClusterInstance gets an existing ClusterInstance resource's state with the given name, ID, and optional
   195  // state properties that are used to uniquely qualify the lookup (nil if not required).
   196  func GetClusterInstance(ctx *pulumi.Context,
   197  	name string, id pulumi.IDInput, state *ClusterInstanceState, opts ...pulumi.ResourceOption) (*ClusterInstance, error) {
   198  	var resource ClusterInstance
   199  	err := ctx.ReadResource("aws:rds/clusterInstance:ClusterInstance", name, id, state, &resource, opts...)
   200  	if err != nil {
   201  		return nil, err
   202  	}
   203  	return &resource, nil
   204  }
   205  
   206  // Input properties used for looking up and filtering ClusterInstance resources.
   207  type clusterInstanceState struct {
   208  	// Specifies whether any database modifications are applied immediately, or during the next maintenance window. Default is`false`.
   209  	ApplyImmediately *bool `pulumi:"applyImmediately"`
   210  	// Amazon Resource Name (ARN) of cluster instance
   211  	Arn *string `pulumi:"arn"`
   212  	// Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window. Default `true`.
   213  	AutoMinorVersionUpgrade *bool `pulumi:"autoMinorVersionUpgrade"`
   214  	// EC2 Availability Zone that the DB instance is created in. See [docs](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) about the details.
   215  	AvailabilityZone *string `pulumi:"availabilityZone"`
   216  	// Identifier of the CA certificate for the DB instance.
   217  	CaCertIdentifier *string `pulumi:"caCertIdentifier"`
   218  	// Identifier of the `rds.Cluster` in which to launch this instance.
   219  	ClusterIdentifier *string `pulumi:"clusterIdentifier"`
   220  	// Indicates whether to copy all of the user-defined tags from the DB instance to snapshots of the DB instance. Default `false`.
   221  	CopyTagsToSnapshot *bool `pulumi:"copyTagsToSnapshot"`
   222  	// Instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance.
   223  	CustomIamInstanceProfile *string `pulumi:"customIamInstanceProfile"`
   224  	// Name of the DB parameter group to associate with this instance.
   225  	DbParameterGroupName *string `pulumi:"dbParameterGroupName"`
   226  	// DB subnet group to associate with this DB instance. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`.
   227  	DbSubnetGroupName *string `pulumi:"dbSubnetGroupName"`
   228  	// Region-unique, immutable identifier for the DB instance.
   229  	DbiResourceId *string `pulumi:"dbiResourceId"`
   230  	// DNS address for this instance. May not be writable
   231  	Endpoint *string `pulumi:"endpoint"`
   232  	// Name of the database engine to be used for the RDS cluster instance.
   233  	// Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`.(Note that `mysql` and `postgres` are Multi-AZ RDS clusters).
   234  	Engine *string `pulumi:"engine"`
   235  	// Database engine version. Please note that to upgrade the `engineVersion` of the instance, it must be done on the `rds.Cluster` `engineVersion`. Trying to upgrade in `awsClusterInstance` will not update the `engineVersion`.
   236  	EngineVersion *string `pulumi:"engineVersion"`
   237  	// Database engine version
   238  	EngineVersionActual *string `pulumi:"engineVersionActual"`
   239  	// Identifier for the RDS instance, if omitted, Pulumi will assign a random, unique identifier.
   240  	Identifier *string `pulumi:"identifier"`
   241  	// Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
   242  	IdentifierPrefix *string `pulumi:"identifierPrefix"`
   243  	// Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details.
   244  	InstanceClass *string `pulumi:"instanceClass"`
   245  	// ARN for the KMS encryption key if one is set to the cluster.
   246  	KmsKeyId *string `pulumi:"kmsKeyId"`
   247  	// Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60.
   248  	MonitoringInterval *int `pulumi:"monitoringInterval"`
   249  	// ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. You can find more information on the [AWS Documentation](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html) what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances.
   250  	MonitoringRoleArn *string `pulumi:"monitoringRoleArn"`
   251  	// Network type of the DB instance.
   252  	NetworkType *string `pulumi:"networkType"`
   253  	// Specifies whether Performance Insights is enabled or not.
   254  	PerformanceInsightsEnabled *bool `pulumi:"performanceInsightsEnabled"`
   255  	// ARN for the KMS key to encrypt Performance Insights data. When specifying `performanceInsightsKmsKeyId`, `performanceInsightsEnabled` needs to be set to true.
   256  	PerformanceInsightsKmsKeyId *string `pulumi:"performanceInsightsKmsKeyId"`
   257  	// 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'.
   258  	PerformanceInsightsRetentionPeriod *int `pulumi:"performanceInsightsRetentionPeriod"`
   259  	// Database port
   260  	Port *int `pulumi:"port"`
   261  	// Daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00". **NOTE:** If `preferredBackupWindow` is set at the cluster level, this argument **must** be omitted.
   262  	PreferredBackupWindow *string `pulumi:"preferredBackupWindow"`
   263  	// Window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00".
   264  	PreferredMaintenanceWindow *string `pulumi:"preferredMaintenanceWindow"`
   265  	// Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoted to writer.
   266  	PromotionTier *int `pulumi:"promotionTier"`
   267  	// Bool to control if instance is publicly accessible. Default `false`. See the documentation on [Creating DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) for more details on controlling this property.
   268  	PubliclyAccessible *bool `pulumi:"publiclyAccessible"`
   269  	// Specifies whether the DB cluster is encrypted.
   270  	StorageEncrypted *bool `pulumi:"storageEncrypted"`
   271  	// Map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   272  	Tags map[string]string `pulumi:"tags"`
   273  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   274  	//
   275  	// Deprecated: Please use `tags` instead.
   276  	TagsAll map[string]string `pulumi:"tagsAll"`
   277  	// Boolean indicating if this instance is writable. `False` indicates this instance is a read replica.
   278  	Writer *bool `pulumi:"writer"`
   279  }
   280  
   281  type ClusterInstanceState struct {
   282  	// Specifies whether any database modifications are applied immediately, or during the next maintenance window. Default is`false`.
   283  	ApplyImmediately pulumi.BoolPtrInput
   284  	// Amazon Resource Name (ARN) of cluster instance
   285  	Arn pulumi.StringPtrInput
   286  	// Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window. Default `true`.
   287  	AutoMinorVersionUpgrade pulumi.BoolPtrInput
   288  	// EC2 Availability Zone that the DB instance is created in. See [docs](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) about the details.
   289  	AvailabilityZone pulumi.StringPtrInput
   290  	// Identifier of the CA certificate for the DB instance.
   291  	CaCertIdentifier pulumi.StringPtrInput
   292  	// Identifier of the `rds.Cluster` in which to launch this instance.
   293  	ClusterIdentifier pulumi.StringPtrInput
   294  	// Indicates whether to copy all of the user-defined tags from the DB instance to snapshots of the DB instance. Default `false`.
   295  	CopyTagsToSnapshot pulumi.BoolPtrInput
   296  	// Instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance.
   297  	CustomIamInstanceProfile pulumi.StringPtrInput
   298  	// Name of the DB parameter group to associate with this instance.
   299  	DbParameterGroupName pulumi.StringPtrInput
   300  	// DB subnet group to associate with this DB instance. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`.
   301  	DbSubnetGroupName pulumi.StringPtrInput
   302  	// Region-unique, immutable identifier for the DB instance.
   303  	DbiResourceId pulumi.StringPtrInput
   304  	// DNS address for this instance. May not be writable
   305  	Endpoint pulumi.StringPtrInput
   306  	// Name of the database engine to be used for the RDS cluster instance.
   307  	// Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`.(Note that `mysql` and `postgres` are Multi-AZ RDS clusters).
   308  	Engine pulumi.StringPtrInput
   309  	// Database engine version. Please note that to upgrade the `engineVersion` of the instance, it must be done on the `rds.Cluster` `engineVersion`. Trying to upgrade in `awsClusterInstance` will not update the `engineVersion`.
   310  	EngineVersion pulumi.StringPtrInput
   311  	// Database engine version
   312  	EngineVersionActual pulumi.StringPtrInput
   313  	// Identifier for the RDS instance, if omitted, Pulumi will assign a random, unique identifier.
   314  	Identifier pulumi.StringPtrInput
   315  	// Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
   316  	IdentifierPrefix pulumi.StringPtrInput
   317  	// Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details.
   318  	InstanceClass pulumi.StringPtrInput
   319  	// ARN for the KMS encryption key if one is set to the cluster.
   320  	KmsKeyId pulumi.StringPtrInput
   321  	// Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60.
   322  	MonitoringInterval pulumi.IntPtrInput
   323  	// ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. You can find more information on the [AWS Documentation](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html) what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances.
   324  	MonitoringRoleArn pulumi.StringPtrInput
   325  	// Network type of the DB instance.
   326  	NetworkType pulumi.StringPtrInput
   327  	// Specifies whether Performance Insights is enabled or not.
   328  	PerformanceInsightsEnabled pulumi.BoolPtrInput
   329  	// ARN for the KMS key to encrypt Performance Insights data. When specifying `performanceInsightsKmsKeyId`, `performanceInsightsEnabled` needs to be set to true.
   330  	PerformanceInsightsKmsKeyId pulumi.StringPtrInput
   331  	// 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'.
   332  	PerformanceInsightsRetentionPeriod pulumi.IntPtrInput
   333  	// Database port
   334  	Port pulumi.IntPtrInput
   335  	// Daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00". **NOTE:** If `preferredBackupWindow` is set at the cluster level, this argument **must** be omitted.
   336  	PreferredBackupWindow pulumi.StringPtrInput
   337  	// Window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00".
   338  	PreferredMaintenanceWindow pulumi.StringPtrInput
   339  	// Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoted to writer.
   340  	PromotionTier pulumi.IntPtrInput
   341  	// Bool to control if instance is publicly accessible. Default `false`. See the documentation on [Creating DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) for more details on controlling this property.
   342  	PubliclyAccessible pulumi.BoolPtrInput
   343  	// Specifies whether the DB cluster is encrypted.
   344  	StorageEncrypted pulumi.BoolPtrInput
   345  	// Map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   346  	Tags pulumi.StringMapInput
   347  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   348  	//
   349  	// Deprecated: Please use `tags` instead.
   350  	TagsAll pulumi.StringMapInput
   351  	// Boolean indicating if this instance is writable. `False` indicates this instance is a read replica.
   352  	Writer pulumi.BoolPtrInput
   353  }
   354  
   355  func (ClusterInstanceState) ElementType() reflect.Type {
   356  	return reflect.TypeOf((*clusterInstanceState)(nil)).Elem()
   357  }
   358  
   359  type clusterInstanceArgs struct {
   360  	// Specifies whether any database modifications are applied immediately, or during the next maintenance window. Default is`false`.
   361  	ApplyImmediately *bool `pulumi:"applyImmediately"`
   362  	// Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window. Default `true`.
   363  	AutoMinorVersionUpgrade *bool `pulumi:"autoMinorVersionUpgrade"`
   364  	// EC2 Availability Zone that the DB instance is created in. See [docs](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) about the details.
   365  	AvailabilityZone *string `pulumi:"availabilityZone"`
   366  	// Identifier of the CA certificate for the DB instance.
   367  	CaCertIdentifier *string `pulumi:"caCertIdentifier"`
   368  	// Identifier of the `rds.Cluster` in which to launch this instance.
   369  	ClusterIdentifier string `pulumi:"clusterIdentifier"`
   370  	// Indicates whether to copy all of the user-defined tags from the DB instance to snapshots of the DB instance. Default `false`.
   371  	CopyTagsToSnapshot *bool `pulumi:"copyTagsToSnapshot"`
   372  	// Instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance.
   373  	CustomIamInstanceProfile *string `pulumi:"customIamInstanceProfile"`
   374  	// Name of the DB parameter group to associate with this instance.
   375  	DbParameterGroupName *string `pulumi:"dbParameterGroupName"`
   376  	// DB subnet group to associate with this DB instance. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`.
   377  	DbSubnetGroupName *string `pulumi:"dbSubnetGroupName"`
   378  	// Name of the database engine to be used for the RDS cluster instance.
   379  	// Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`.(Note that `mysql` and `postgres` are Multi-AZ RDS clusters).
   380  	Engine string `pulumi:"engine"`
   381  	// Database engine version. Please note that to upgrade the `engineVersion` of the instance, it must be done on the `rds.Cluster` `engineVersion`. Trying to upgrade in `awsClusterInstance` will not update the `engineVersion`.
   382  	EngineVersion *string `pulumi:"engineVersion"`
   383  	// Identifier for the RDS instance, if omitted, Pulumi will assign a random, unique identifier.
   384  	Identifier *string `pulumi:"identifier"`
   385  	// Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
   386  	IdentifierPrefix *string `pulumi:"identifierPrefix"`
   387  	// Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details.
   388  	InstanceClass string `pulumi:"instanceClass"`
   389  	// Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60.
   390  	MonitoringInterval *int `pulumi:"monitoringInterval"`
   391  	// ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. You can find more information on the [AWS Documentation](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html) what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances.
   392  	MonitoringRoleArn *string `pulumi:"monitoringRoleArn"`
   393  	// Specifies whether Performance Insights is enabled or not.
   394  	PerformanceInsightsEnabled *bool `pulumi:"performanceInsightsEnabled"`
   395  	// ARN for the KMS key to encrypt Performance Insights data. When specifying `performanceInsightsKmsKeyId`, `performanceInsightsEnabled` needs to be set to true.
   396  	PerformanceInsightsKmsKeyId *string `pulumi:"performanceInsightsKmsKeyId"`
   397  	// 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'.
   398  	PerformanceInsightsRetentionPeriod *int `pulumi:"performanceInsightsRetentionPeriod"`
   399  	// Daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00". **NOTE:** If `preferredBackupWindow` is set at the cluster level, this argument **must** be omitted.
   400  	PreferredBackupWindow *string `pulumi:"preferredBackupWindow"`
   401  	// Window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00".
   402  	PreferredMaintenanceWindow *string `pulumi:"preferredMaintenanceWindow"`
   403  	// Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoted to writer.
   404  	PromotionTier *int `pulumi:"promotionTier"`
   405  	// Bool to control if instance is publicly accessible. Default `false`. See the documentation on [Creating DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) for more details on controlling this property.
   406  	PubliclyAccessible *bool `pulumi:"publiclyAccessible"`
   407  	// Map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   408  	Tags map[string]string `pulumi:"tags"`
   409  }
   410  
   411  // The set of arguments for constructing a ClusterInstance resource.
   412  type ClusterInstanceArgs struct {
   413  	// Specifies whether any database modifications are applied immediately, or during the next maintenance window. Default is`false`.
   414  	ApplyImmediately pulumi.BoolPtrInput
   415  	// Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window. Default `true`.
   416  	AutoMinorVersionUpgrade pulumi.BoolPtrInput
   417  	// EC2 Availability Zone that the DB instance is created in. See [docs](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) about the details.
   418  	AvailabilityZone pulumi.StringPtrInput
   419  	// Identifier of the CA certificate for the DB instance.
   420  	CaCertIdentifier pulumi.StringPtrInput
   421  	// Identifier of the `rds.Cluster` in which to launch this instance.
   422  	ClusterIdentifier pulumi.StringInput
   423  	// Indicates whether to copy all of the user-defined tags from the DB instance to snapshots of the DB instance. Default `false`.
   424  	CopyTagsToSnapshot pulumi.BoolPtrInput
   425  	// Instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance.
   426  	CustomIamInstanceProfile pulumi.StringPtrInput
   427  	// Name of the DB parameter group to associate with this instance.
   428  	DbParameterGroupName pulumi.StringPtrInput
   429  	// DB subnet group to associate with this DB instance. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`.
   430  	DbSubnetGroupName pulumi.StringPtrInput
   431  	// Name of the database engine to be used for the RDS cluster instance.
   432  	// Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`.(Note that `mysql` and `postgres` are Multi-AZ RDS clusters).
   433  	Engine pulumi.StringInput
   434  	// Database engine version. Please note that to upgrade the `engineVersion` of the instance, it must be done on the `rds.Cluster` `engineVersion`. Trying to upgrade in `awsClusterInstance` will not update the `engineVersion`.
   435  	EngineVersion pulumi.StringPtrInput
   436  	// Identifier for the RDS instance, if omitted, Pulumi will assign a random, unique identifier.
   437  	Identifier pulumi.StringPtrInput
   438  	// Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
   439  	IdentifierPrefix pulumi.StringPtrInput
   440  	// Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details.
   441  	InstanceClass pulumi.StringInput
   442  	// Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60.
   443  	MonitoringInterval pulumi.IntPtrInput
   444  	// ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. You can find more information on the [AWS Documentation](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html) what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances.
   445  	MonitoringRoleArn pulumi.StringPtrInput
   446  	// Specifies whether Performance Insights is enabled or not.
   447  	PerformanceInsightsEnabled pulumi.BoolPtrInput
   448  	// ARN for the KMS key to encrypt Performance Insights data. When specifying `performanceInsightsKmsKeyId`, `performanceInsightsEnabled` needs to be set to true.
   449  	PerformanceInsightsKmsKeyId pulumi.StringPtrInput
   450  	// 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'.
   451  	PerformanceInsightsRetentionPeriod pulumi.IntPtrInput
   452  	// Daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00". **NOTE:** If `preferredBackupWindow` is set at the cluster level, this argument **must** be omitted.
   453  	PreferredBackupWindow pulumi.StringPtrInput
   454  	// Window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00".
   455  	PreferredMaintenanceWindow pulumi.StringPtrInput
   456  	// Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoted to writer.
   457  	PromotionTier pulumi.IntPtrInput
   458  	// Bool to control if instance is publicly accessible. Default `false`. See the documentation on [Creating DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) for more details on controlling this property.
   459  	PubliclyAccessible pulumi.BoolPtrInput
   460  	// Map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   461  	Tags pulumi.StringMapInput
   462  }
   463  
   464  func (ClusterInstanceArgs) ElementType() reflect.Type {
   465  	return reflect.TypeOf((*clusterInstanceArgs)(nil)).Elem()
   466  }
   467  
   468  type ClusterInstanceInput interface {
   469  	pulumi.Input
   470  
   471  	ToClusterInstanceOutput() ClusterInstanceOutput
   472  	ToClusterInstanceOutputWithContext(ctx context.Context) ClusterInstanceOutput
   473  }
   474  
   475  func (*ClusterInstance) ElementType() reflect.Type {
   476  	return reflect.TypeOf((**ClusterInstance)(nil)).Elem()
   477  }
   478  
   479  func (i *ClusterInstance) ToClusterInstanceOutput() ClusterInstanceOutput {
   480  	return i.ToClusterInstanceOutputWithContext(context.Background())
   481  }
   482  
   483  func (i *ClusterInstance) ToClusterInstanceOutputWithContext(ctx context.Context) ClusterInstanceOutput {
   484  	return pulumi.ToOutputWithContext(ctx, i).(ClusterInstanceOutput)
   485  }
   486  
   487  // ClusterInstanceArrayInput is an input type that accepts ClusterInstanceArray and ClusterInstanceArrayOutput values.
   488  // You can construct a concrete instance of `ClusterInstanceArrayInput` via:
   489  //
   490  //	ClusterInstanceArray{ ClusterInstanceArgs{...} }
   491  type ClusterInstanceArrayInput interface {
   492  	pulumi.Input
   493  
   494  	ToClusterInstanceArrayOutput() ClusterInstanceArrayOutput
   495  	ToClusterInstanceArrayOutputWithContext(context.Context) ClusterInstanceArrayOutput
   496  }
   497  
   498  type ClusterInstanceArray []ClusterInstanceInput
   499  
   500  func (ClusterInstanceArray) ElementType() reflect.Type {
   501  	return reflect.TypeOf((*[]*ClusterInstance)(nil)).Elem()
   502  }
   503  
   504  func (i ClusterInstanceArray) ToClusterInstanceArrayOutput() ClusterInstanceArrayOutput {
   505  	return i.ToClusterInstanceArrayOutputWithContext(context.Background())
   506  }
   507  
   508  func (i ClusterInstanceArray) ToClusterInstanceArrayOutputWithContext(ctx context.Context) ClusterInstanceArrayOutput {
   509  	return pulumi.ToOutputWithContext(ctx, i).(ClusterInstanceArrayOutput)
   510  }
   511  
   512  // ClusterInstanceMapInput is an input type that accepts ClusterInstanceMap and ClusterInstanceMapOutput values.
   513  // You can construct a concrete instance of `ClusterInstanceMapInput` via:
   514  //
   515  //	ClusterInstanceMap{ "key": ClusterInstanceArgs{...} }
   516  type ClusterInstanceMapInput interface {
   517  	pulumi.Input
   518  
   519  	ToClusterInstanceMapOutput() ClusterInstanceMapOutput
   520  	ToClusterInstanceMapOutputWithContext(context.Context) ClusterInstanceMapOutput
   521  }
   522  
   523  type ClusterInstanceMap map[string]ClusterInstanceInput
   524  
   525  func (ClusterInstanceMap) ElementType() reflect.Type {
   526  	return reflect.TypeOf((*map[string]*ClusterInstance)(nil)).Elem()
   527  }
   528  
   529  func (i ClusterInstanceMap) ToClusterInstanceMapOutput() ClusterInstanceMapOutput {
   530  	return i.ToClusterInstanceMapOutputWithContext(context.Background())
   531  }
   532  
   533  func (i ClusterInstanceMap) ToClusterInstanceMapOutputWithContext(ctx context.Context) ClusterInstanceMapOutput {
   534  	return pulumi.ToOutputWithContext(ctx, i).(ClusterInstanceMapOutput)
   535  }
   536  
   537  type ClusterInstanceOutput struct{ *pulumi.OutputState }
   538  
   539  func (ClusterInstanceOutput) ElementType() reflect.Type {
   540  	return reflect.TypeOf((**ClusterInstance)(nil)).Elem()
   541  }
   542  
   543  func (o ClusterInstanceOutput) ToClusterInstanceOutput() ClusterInstanceOutput {
   544  	return o
   545  }
   546  
   547  func (o ClusterInstanceOutput) ToClusterInstanceOutputWithContext(ctx context.Context) ClusterInstanceOutput {
   548  	return o
   549  }
   550  
   551  // Specifies whether any database modifications are applied immediately, or during the next maintenance window. Default is`false`.
   552  func (o ClusterInstanceOutput) ApplyImmediately() pulumi.BoolOutput {
   553  	return o.ApplyT(func(v *ClusterInstance) pulumi.BoolOutput { return v.ApplyImmediately }).(pulumi.BoolOutput)
   554  }
   555  
   556  // Amazon Resource Name (ARN) of cluster instance
   557  func (o ClusterInstanceOutput) Arn() pulumi.StringOutput {
   558  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   559  }
   560  
   561  // Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window. Default `true`.
   562  func (o ClusterInstanceOutput) AutoMinorVersionUpgrade() pulumi.BoolPtrOutput {
   563  	return o.ApplyT(func(v *ClusterInstance) pulumi.BoolPtrOutput { return v.AutoMinorVersionUpgrade }).(pulumi.BoolPtrOutput)
   564  }
   565  
   566  // EC2 Availability Zone that the DB instance is created in. See [docs](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) about the details.
   567  func (o ClusterInstanceOutput) AvailabilityZone() pulumi.StringOutput {
   568  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.AvailabilityZone }).(pulumi.StringOutput)
   569  }
   570  
   571  // Identifier of the CA certificate for the DB instance.
   572  func (o ClusterInstanceOutput) CaCertIdentifier() pulumi.StringOutput {
   573  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.CaCertIdentifier }).(pulumi.StringOutput)
   574  }
   575  
   576  // Identifier of the `rds.Cluster` in which to launch this instance.
   577  func (o ClusterInstanceOutput) ClusterIdentifier() pulumi.StringOutput {
   578  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.ClusterIdentifier }).(pulumi.StringOutput)
   579  }
   580  
   581  // Indicates whether to copy all of the user-defined tags from the DB instance to snapshots of the DB instance. Default `false`.
   582  func (o ClusterInstanceOutput) CopyTagsToSnapshot() pulumi.BoolPtrOutput {
   583  	return o.ApplyT(func(v *ClusterInstance) pulumi.BoolPtrOutput { return v.CopyTagsToSnapshot }).(pulumi.BoolPtrOutput)
   584  }
   585  
   586  // Instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance.
   587  func (o ClusterInstanceOutput) CustomIamInstanceProfile() pulumi.StringPtrOutput {
   588  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringPtrOutput { return v.CustomIamInstanceProfile }).(pulumi.StringPtrOutput)
   589  }
   590  
   591  // Name of the DB parameter group to associate with this instance.
   592  func (o ClusterInstanceOutput) DbParameterGroupName() pulumi.StringOutput {
   593  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.DbParameterGroupName }).(pulumi.StringOutput)
   594  }
   595  
   596  // DB subnet group to associate with this DB instance. **NOTE:** This must match the `dbSubnetGroupName` of the attached `rds.Cluster`.
   597  func (o ClusterInstanceOutput) DbSubnetGroupName() pulumi.StringOutput {
   598  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.DbSubnetGroupName }).(pulumi.StringOutput)
   599  }
   600  
   601  // Region-unique, immutable identifier for the DB instance.
   602  func (o ClusterInstanceOutput) DbiResourceId() pulumi.StringOutput {
   603  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.DbiResourceId }).(pulumi.StringOutput)
   604  }
   605  
   606  // DNS address for this instance. May not be writable
   607  func (o ClusterInstanceOutput) Endpoint() pulumi.StringOutput {
   608  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.Endpoint }).(pulumi.StringOutput)
   609  }
   610  
   611  // Name of the database engine to be used for the RDS cluster instance.
   612  // Valid Values: `aurora-mysql`, `aurora-postgresql`, `mysql`, `postgres`.(Note that `mysql` and `postgres` are Multi-AZ RDS clusters).
   613  func (o ClusterInstanceOutput) Engine() pulumi.StringOutput {
   614  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.Engine }).(pulumi.StringOutput)
   615  }
   616  
   617  // Database engine version. Please note that to upgrade the `engineVersion` of the instance, it must be done on the `rds.Cluster` `engineVersion`. Trying to upgrade in `awsClusterInstance` will not update the `engineVersion`.
   618  func (o ClusterInstanceOutput) EngineVersion() pulumi.StringOutput {
   619  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.EngineVersion }).(pulumi.StringOutput)
   620  }
   621  
   622  // Database engine version
   623  func (o ClusterInstanceOutput) EngineVersionActual() pulumi.StringOutput {
   624  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.EngineVersionActual }).(pulumi.StringOutput)
   625  }
   626  
   627  // Identifier for the RDS instance, if omitted, Pulumi will assign a random, unique identifier.
   628  func (o ClusterInstanceOutput) Identifier() pulumi.StringOutput {
   629  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.Identifier }).(pulumi.StringOutput)
   630  }
   631  
   632  // Creates a unique identifier beginning with the specified prefix. Conflicts with `identifier`.
   633  func (o ClusterInstanceOutput) IdentifierPrefix() pulumi.StringOutput {
   634  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.IdentifierPrefix }).(pulumi.StringOutput)
   635  }
   636  
   637  // Instance class to use. For details on CPU and memory, see [Scaling Aurora DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html). Aurora uses `db.*` instance classes/types. Please see [AWS Documentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) for currently available instance classes and complete details.
   638  func (o ClusterInstanceOutput) InstanceClass() pulumi.StringOutput {
   639  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.InstanceClass }).(pulumi.StringOutput)
   640  }
   641  
   642  // ARN for the KMS encryption key if one is set to the cluster.
   643  func (o ClusterInstanceOutput) KmsKeyId() pulumi.StringOutput {
   644  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.KmsKeyId }).(pulumi.StringOutput)
   645  }
   646  
   647  // Interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. Valid Values: 0, 1, 5, 10, 15, 30, 60.
   648  func (o ClusterInstanceOutput) MonitoringInterval() pulumi.IntPtrOutput {
   649  	return o.ApplyT(func(v *ClusterInstance) pulumi.IntPtrOutput { return v.MonitoringInterval }).(pulumi.IntPtrOutput)
   650  }
   651  
   652  // ARN for the IAM role that permits RDS to send enhanced monitoring metrics to CloudWatch Logs. You can find more information on the [AWS Documentation](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html) what IAM permissions are needed to allow Enhanced Monitoring for RDS Instances.
   653  func (o ClusterInstanceOutput) MonitoringRoleArn() pulumi.StringOutput {
   654  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.MonitoringRoleArn }).(pulumi.StringOutput)
   655  }
   656  
   657  // Network type of the DB instance.
   658  func (o ClusterInstanceOutput) NetworkType() pulumi.StringOutput {
   659  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.NetworkType }).(pulumi.StringOutput)
   660  }
   661  
   662  // Specifies whether Performance Insights is enabled or not.
   663  func (o ClusterInstanceOutput) PerformanceInsightsEnabled() pulumi.BoolOutput {
   664  	return o.ApplyT(func(v *ClusterInstance) pulumi.BoolOutput { return v.PerformanceInsightsEnabled }).(pulumi.BoolOutput)
   665  }
   666  
   667  // ARN for the KMS key to encrypt Performance Insights data. When specifying `performanceInsightsKmsKeyId`, `performanceInsightsEnabled` needs to be set to true.
   668  func (o ClusterInstanceOutput) PerformanceInsightsKmsKeyId() pulumi.StringOutput {
   669  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.PerformanceInsightsKmsKeyId }).(pulumi.StringOutput)
   670  }
   671  
   672  // 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'.
   673  func (o ClusterInstanceOutput) PerformanceInsightsRetentionPeriod() pulumi.IntOutput {
   674  	return o.ApplyT(func(v *ClusterInstance) pulumi.IntOutput { return v.PerformanceInsightsRetentionPeriod }).(pulumi.IntOutput)
   675  }
   676  
   677  // Database port
   678  func (o ClusterInstanceOutput) Port() pulumi.IntOutput {
   679  	return o.ApplyT(func(v *ClusterInstance) pulumi.IntOutput { return v.Port }).(pulumi.IntOutput)
   680  }
   681  
   682  // Daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00". **NOTE:** If `preferredBackupWindow` is set at the cluster level, this argument **must** be omitted.
   683  func (o ClusterInstanceOutput) PreferredBackupWindow() pulumi.StringOutput {
   684  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.PreferredBackupWindow }).(pulumi.StringOutput)
   685  }
   686  
   687  // Window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00".
   688  func (o ClusterInstanceOutput) PreferredMaintenanceWindow() pulumi.StringOutput {
   689  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringOutput { return v.PreferredMaintenanceWindow }).(pulumi.StringOutput)
   690  }
   691  
   692  // Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoted to writer.
   693  func (o ClusterInstanceOutput) PromotionTier() pulumi.IntPtrOutput {
   694  	return o.ApplyT(func(v *ClusterInstance) pulumi.IntPtrOutput { return v.PromotionTier }).(pulumi.IntPtrOutput)
   695  }
   696  
   697  // Bool to control if instance is publicly accessible. Default `false`. See the documentation on [Creating DB Instances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) for more details on controlling this property.
   698  func (o ClusterInstanceOutput) PubliclyAccessible() pulumi.BoolOutput {
   699  	return o.ApplyT(func(v *ClusterInstance) pulumi.BoolOutput { return v.PubliclyAccessible }).(pulumi.BoolOutput)
   700  }
   701  
   702  // Specifies whether the DB cluster is encrypted.
   703  func (o ClusterInstanceOutput) StorageEncrypted() pulumi.BoolOutput {
   704  	return o.ApplyT(func(v *ClusterInstance) pulumi.BoolOutput { return v.StorageEncrypted }).(pulumi.BoolOutput)
   705  }
   706  
   707  // Map of tags to assign to the instance. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   708  func (o ClusterInstanceOutput) Tags() pulumi.StringMapOutput {
   709  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   710  }
   711  
   712  // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   713  //
   714  // Deprecated: Please use `tags` instead.
   715  func (o ClusterInstanceOutput) TagsAll() pulumi.StringMapOutput {
   716  	return o.ApplyT(func(v *ClusterInstance) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   717  }
   718  
   719  // Boolean indicating if this instance is writable. `False` indicates this instance is a read replica.
   720  func (o ClusterInstanceOutput) Writer() pulumi.BoolOutput {
   721  	return o.ApplyT(func(v *ClusterInstance) pulumi.BoolOutput { return v.Writer }).(pulumi.BoolOutput)
   722  }
   723  
   724  type ClusterInstanceArrayOutput struct{ *pulumi.OutputState }
   725  
   726  func (ClusterInstanceArrayOutput) ElementType() reflect.Type {
   727  	return reflect.TypeOf((*[]*ClusterInstance)(nil)).Elem()
   728  }
   729  
   730  func (o ClusterInstanceArrayOutput) ToClusterInstanceArrayOutput() ClusterInstanceArrayOutput {
   731  	return o
   732  }
   733  
   734  func (o ClusterInstanceArrayOutput) ToClusterInstanceArrayOutputWithContext(ctx context.Context) ClusterInstanceArrayOutput {
   735  	return o
   736  }
   737  
   738  func (o ClusterInstanceArrayOutput) Index(i pulumi.IntInput) ClusterInstanceOutput {
   739  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ClusterInstance {
   740  		return vs[0].([]*ClusterInstance)[vs[1].(int)]
   741  	}).(ClusterInstanceOutput)
   742  }
   743  
   744  type ClusterInstanceMapOutput struct{ *pulumi.OutputState }
   745  
   746  func (ClusterInstanceMapOutput) ElementType() reflect.Type {
   747  	return reflect.TypeOf((*map[string]*ClusterInstance)(nil)).Elem()
   748  }
   749  
   750  func (o ClusterInstanceMapOutput) ToClusterInstanceMapOutput() ClusterInstanceMapOutput {
   751  	return o
   752  }
   753  
   754  func (o ClusterInstanceMapOutput) ToClusterInstanceMapOutputWithContext(ctx context.Context) ClusterInstanceMapOutput {
   755  	return o
   756  }
   757  
   758  func (o ClusterInstanceMapOutput) MapIndex(k pulumi.StringInput) ClusterInstanceOutput {
   759  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ClusterInstance {
   760  		return vs[0].(map[string]*ClusterInstance)[vs[1].(string)]
   761  	}).(ClusterInstanceOutput)
   762  }
   763  
   764  func init() {
   765  	pulumi.RegisterInputType(reflect.TypeOf((*ClusterInstanceInput)(nil)).Elem(), &ClusterInstance{})
   766  	pulumi.RegisterInputType(reflect.TypeOf((*ClusterInstanceArrayInput)(nil)).Elem(), ClusterInstanceArray{})
   767  	pulumi.RegisterInputType(reflect.TypeOf((*ClusterInstanceMapInput)(nil)).Elem(), ClusterInstanceMap{})
   768  	pulumi.RegisterOutputType(ClusterInstanceOutput{})
   769  	pulumi.RegisterOutputType(ClusterInstanceArrayOutput{})
   770  	pulumi.RegisterOutputType(ClusterInstanceMapOutput{})
   771  }