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