github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/elasticache/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 elasticache 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 // Provides an ElastiCache Cluster resource, which manages either a 15 // [Memcached cluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html), a 16 // [single-node Redis instance](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html), or a 17 // [read replica in a Redis (Cluster Mode Enabled) replication group]. 18 // 19 // For working with Redis (Cluster Mode Enabled) replication groups, see the 20 // `elasticache.ReplicationGroup` resource. 21 // 22 // > **Note:** When you change an attribute, such as `numCacheNodes`, by default 23 // it is applied in the next maintenance window. Because of this, this provider may report 24 // a difference in its planning phase because the actual modification has not yet taken 25 // place. You can use the `applyImmediately` flag to instruct the service to apply the 26 // change immediately. Using `applyImmediately` can result in a brief downtime as the server reboots. 27 // See the AWS Documentation on Modifying an ElastiCache Cache Cluster for 28 // [ElastiCache for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/Clusters.Modify.html) or 29 // [ElastiCache for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Clusters.Modify.html) 30 // for more information. 31 // 32 // > **Note:** Any attribute changes that re-create the resource will be applied immediately, regardless of the value of `applyImmediately`. 33 // 34 // ## Example Usage 35 // 36 // ### Memcached Cluster 37 // 38 // <!--Start PulumiCodeChooser --> 39 // ```go 40 // package main 41 // 42 // import ( 43 // 44 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache" 45 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 46 // 47 // ) 48 // 49 // func main() { 50 // pulumi.Run(func(ctx *pulumi.Context) error { 51 // _, err := elasticache.NewCluster(ctx, "example", &elasticache.ClusterArgs{ 52 // ClusterId: pulumi.String("cluster-example"), 53 // Engine: pulumi.String("memcached"), 54 // NodeType: pulumi.String("cache.m4.large"), 55 // NumCacheNodes: pulumi.Int(2), 56 // ParameterGroupName: pulumi.String("default.memcached1.4"), 57 // Port: pulumi.Int(11211), 58 // }) 59 // if err != nil { 60 // return err 61 // } 62 // return nil 63 // }) 64 // } 65 // 66 // ``` 67 // <!--End PulumiCodeChooser --> 68 // 69 // ### Redis Instance 70 // 71 // <!--Start PulumiCodeChooser --> 72 // ```go 73 // package main 74 // 75 // import ( 76 // 77 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache" 78 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 79 // 80 // ) 81 // 82 // func main() { 83 // pulumi.Run(func(ctx *pulumi.Context) error { 84 // _, err := elasticache.NewCluster(ctx, "example", &elasticache.ClusterArgs{ 85 // ClusterId: pulumi.String("cluster-example"), 86 // Engine: pulumi.String("redis"), 87 // NodeType: pulumi.String("cache.m4.large"), 88 // NumCacheNodes: pulumi.Int(1), 89 // ParameterGroupName: pulumi.String("default.redis3.2"), 90 // EngineVersion: pulumi.String("3.2.10"), 91 // Port: pulumi.Int(6379), 92 // }) 93 // if err != nil { 94 // return err 95 // } 96 // return nil 97 // }) 98 // } 99 // 100 // ``` 101 // <!--End PulumiCodeChooser --> 102 // 103 // ### Redis Cluster Mode Disabled Read Replica Instance 104 // 105 // These inherit their settings from the replication group. 106 // 107 // <!--Start PulumiCodeChooser --> 108 // ```go 109 // package main 110 // 111 // import ( 112 // 113 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache" 114 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 115 // 116 // ) 117 // 118 // func main() { 119 // pulumi.Run(func(ctx *pulumi.Context) error { 120 // _, err := elasticache.NewCluster(ctx, "replica", &elasticache.ClusterArgs{ 121 // ClusterId: pulumi.String("cluster-example"), 122 // ReplicationGroupId: pulumi.Any(example.Id), 123 // }) 124 // if err != nil { 125 // return err 126 // } 127 // return nil 128 // }) 129 // } 130 // 131 // ``` 132 // <!--End PulumiCodeChooser --> 133 // 134 // ### Redis Log Delivery configuration 135 // 136 // <!--Start PulumiCodeChooser --> 137 // ```go 138 // package main 139 // 140 // import ( 141 // 142 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticache" 143 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 144 // 145 // ) 146 // 147 // func main() { 148 // pulumi.Run(func(ctx *pulumi.Context) error { 149 // _, err := elasticache.NewCluster(ctx, "test", &elasticache.ClusterArgs{ 150 // ClusterId: pulumi.String("mycluster"), 151 // Engine: pulumi.String("redis"), 152 // NodeType: pulumi.String("cache.t3.micro"), 153 // NumCacheNodes: pulumi.Int(1), 154 // Port: pulumi.Int(6379), 155 // ApplyImmediately: pulumi.Bool(true), 156 // LogDeliveryConfigurations: elasticache.ClusterLogDeliveryConfigurationArray{ 157 // &elasticache.ClusterLogDeliveryConfigurationArgs{ 158 // Destination: pulumi.Any(example.Name), 159 // DestinationType: pulumi.String("cloudwatch-logs"), 160 // LogFormat: pulumi.String("text"), 161 // LogType: pulumi.String("slow-log"), 162 // }, 163 // &elasticache.ClusterLogDeliveryConfigurationArgs{ 164 // Destination: pulumi.Any(exampleAwsKinesisFirehoseDeliveryStream.Name), 165 // DestinationType: pulumi.String("kinesis-firehose"), 166 // LogFormat: pulumi.String("json"), 167 // LogType: pulumi.String("engine-log"), 168 // }, 169 // }, 170 // }) 171 // if err != nil { 172 // return err 173 // } 174 // return nil 175 // }) 176 // } 177 // 178 // ``` 179 // <!--End PulumiCodeChooser --> 180 // 181 // ## Import 182 // 183 // Using `pulumi import`, import ElastiCache Clusters using the `cluster_id`. For example: 184 // 185 // ```sh 186 // $ pulumi import aws:elasticache/cluster:Cluster my_cluster my_cluster 187 // ``` 188 type Cluster struct { 189 pulumi.CustomResourceState 190 191 // Whether any database modifications are applied immediately, or during the next maintenance window. Default is `false`. See [Amazon ElastiCache Documentation for more information.](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html). 192 ApplyImmediately pulumi.BoolOutput `pulumi:"applyImmediately"` 193 // The ARN of the created ElastiCache Cluster. 194 Arn pulumi.StringOutput `pulumi:"arn"` 195 // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. 196 // Only supported for engine type `"redis"` and if the engine version is 6 or higher. 197 // Defaults to `true`. 198 AutoMinorVersionUpgrade pulumi.StringPtrOutput `pulumi:"autoMinorVersionUpgrade"` 199 // Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use `preferredAvailabilityZones` instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. 200 AvailabilityZone pulumi.StringOutput `pulumi:"availabilityZone"` 201 // Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are `single-az` or `cross-az`, default is `single-az`. If you want to choose `cross-az`, `numCacheNodes` must be greater than `1`. 202 AzMode pulumi.StringOutput `pulumi:"azMode"` 203 // List of node objects including `id`, `address`, `port` and `availabilityZone`. 204 CacheNodes ClusterCacheNodeArrayOutput `pulumi:"cacheNodes"` 205 // (Memcached only) DNS name of the cache cluster without the port appended. 206 ClusterAddress pulumi.StringOutput `pulumi:"clusterAddress"` 207 // Group identifier. ElastiCache converts this name to lowercase. Changing this value will re-create the resource. 208 ClusterId pulumi.StringOutput `pulumi:"clusterId"` 209 // (Memcached only) Configuration endpoint to allow host discovery. 210 ConfigurationEndpoint pulumi.StringOutput `pulumi:"configurationEndpoint"` 211 // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. 212 Engine pulumi.StringOutput `pulumi:"engine"` 213 // Version number of the cache engine to be used. 214 // If not set, defaults to the latest version. 215 // See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) in the AWS Documentation for supported versions. 216 // When `engine` is `redis` and the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. 217 // When the version is 6, the major and minor version can be set, e.g., `6.2`, 218 // or the minor version can be unspecified which will use the latest version at creation time, e.g., `6.x`. 219 // Otherwise, specify the full version desired, e.g., `5.0.6`. 220 // The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. Cannot be provided with `replication_group_id.` 221 EngineVersion pulumi.StringOutput `pulumi:"engineVersion"` 222 // Because ElastiCache pulls the latest minor or patch for a version, this attribute returns the running version of the cache engine. 223 EngineVersionActual pulumi.StringOutput `pulumi:"engineVersionActual"` 224 // Name of your final cluster snapshot. If omitted, no final snapshot will be made. 225 FinalSnapshotIdentifier pulumi.StringPtrOutput `pulumi:"finalSnapshotIdentifier"` 226 // The IP version to advertise in the discovery protocol. Valid values are `ipv4` or `ipv6`. 227 IpDiscovery pulumi.StringOutput `pulumi:"ipDiscovery"` 228 // Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html). See Log Delivery Configuration below for more details. 229 LogDeliveryConfigurations ClusterLogDeliveryConfigurationArrayOutput `pulumi:"logDeliveryConfigurations"` 230 // Specifies the weekly time range for when maintenance 231 // on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). 232 // The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00`. 233 MaintenanceWindow pulumi.StringOutput `pulumi:"maintenanceWindow"` 234 // The IP versions for cache cluster connections. IPv6 is supported with Redis engine `6.2` onword or Memcached version `1.6.6` for all [Nitro system](https://aws.amazon.com/ec2/nitro/) instances. Valid values are `ipv4`, `ipv6` or `dualStack`. 235 NetworkType pulumi.StringOutput `pulumi:"networkType"` 236 // The instance class used. See AWS documentation for information on [supported node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html). See AWS documentation for information on [supported node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/nodes-select-size.html). For Memcached, changing this value will re-create the resource. 237 NodeType pulumi.StringOutput `pulumi:"nodeType"` 238 // ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic`. 239 NotificationTopicArn pulumi.StringPtrOutput `pulumi:"notificationTopicArn"` 240 // The initial number of cache nodes that the cache cluster will have. For Redis, this value must be 1. For Memcached, this value must be between 1 and 40. If this number is reduced on subsequent runs, the highest numbered nodes will be removed. 241 NumCacheNodes pulumi.IntOutput `pulumi:"numCacheNodes"` 242 // Specify the outpost mode that will apply to the cache cluster creation. Valid values are `"single-outpost"` and `"cross-outpost"`, however AWS currently only supports `"single-outpost"` mode. 243 OutpostMode pulumi.StringPtrOutput `pulumi:"outpostMode"` 244 // The name of the parameter group to associate with this cache cluster. 245 // 246 // The following arguments are optional: 247 ParameterGroupName pulumi.StringOutput `pulumi:"parameterGroupName"` 248 // The port number on which each of the cache nodes will accept connections. For Memcached the default is 11211, and for Redis the default port is 6379. Cannot be provided with `replicationGroupId`. Changing this value will re-create the resource. 249 Port pulumi.IntOutput `pulumi:"port"` 250 // List of the Availability Zones in which cache nodes are created. If you are creating your cluster in an Amazon VPC you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of `numCacheNodes`. If you want all the nodes in the same Availability Zone, use `availabilityZone` instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. Detecting drift of existing node availability zone is not currently supported. Updating this argument by itself to migrate existing node availability zones is not currently supported and will show a perpetual difference. 251 PreferredAvailabilityZones pulumi.StringArrayOutput `pulumi:"preferredAvailabilityZones"` 252 // The outpost ARN in which the cache cluster will be created. 253 PreferredOutpostArn pulumi.StringOutput `pulumi:"preferredOutpostArn"` 254 // ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group. 255 ReplicationGroupId pulumi.StringOutput `pulumi:"replicationGroupId"` 256 // One or more VPC security groups associated with the cache cluster. Cannot be provided with `replication_group_id.` 257 SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"` 258 // Single-element string list containing an Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. The object name cannot contain any commas. Changing `snapshotArns` forces a new resource. 259 SnapshotArns pulumi.StringPtrOutput `pulumi:"snapshotArns"` 260 // Name of a snapshot from which to restore data into the new node group. Changing `snapshotName` forces a new resource. 261 SnapshotName pulumi.StringPtrOutput `pulumi:"snapshotName"` 262 // Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a `snapshotRetentionLimit` is not supported on cache.t1.micro cache nodes 263 SnapshotRetentionLimit pulumi.IntPtrOutput `pulumi:"snapshotRetentionLimit"` 264 // Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. Example: 05:00-09:00 265 SnapshotWindow pulumi.StringOutput `pulumi:"snapshotWindow"` 266 // Name of the subnet group to be used for the cache cluster. Changing this value will re-create the resource. Cannot be provided with `replication_group_id.` 267 SubnetGroupName pulumi.StringOutput `pulumi:"subnetGroupName"` 268 // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 269 Tags pulumi.StringMapOutput `pulumi:"tags"` 270 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 271 // 272 // Deprecated: Please use `tags` instead. 273 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 274 // Enable encryption in-transit. Supported only with Memcached versions `1.6.12` and later, running in a VPC. See the [ElastiCache in-transit encryption](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/in-transit-encryption-mc.html) documentation for more details. 275 TransitEncryptionEnabled pulumi.BoolOutput `pulumi:"transitEncryptionEnabled"` 276 } 277 278 // NewCluster registers a new resource with the given unique name, arguments, and options. 279 func NewCluster(ctx *pulumi.Context, 280 name string, args *ClusterArgs, opts ...pulumi.ResourceOption) (*Cluster, error) { 281 if args == nil { 282 args = &ClusterArgs{} 283 } 284 285 opts = internal.PkgResourceDefaultOpts(opts) 286 var resource Cluster 287 err := ctx.RegisterResource("aws:elasticache/cluster:Cluster", name, args, &resource, opts...) 288 if err != nil { 289 return nil, err 290 } 291 return &resource, nil 292 } 293 294 // GetCluster gets an existing Cluster resource's state with the given name, ID, and optional 295 // state properties that are used to uniquely qualify the lookup (nil if not required). 296 func GetCluster(ctx *pulumi.Context, 297 name string, id pulumi.IDInput, state *ClusterState, opts ...pulumi.ResourceOption) (*Cluster, error) { 298 var resource Cluster 299 err := ctx.ReadResource("aws:elasticache/cluster:Cluster", name, id, state, &resource, opts...) 300 if err != nil { 301 return nil, err 302 } 303 return &resource, nil 304 } 305 306 // Input properties used for looking up and filtering Cluster resources. 307 type clusterState struct { 308 // Whether any database modifications are applied immediately, or during the next maintenance window. Default is `false`. See [Amazon ElastiCache Documentation for more information.](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html). 309 ApplyImmediately *bool `pulumi:"applyImmediately"` 310 // The ARN of the created ElastiCache Cluster. 311 Arn *string `pulumi:"arn"` 312 // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. 313 // Only supported for engine type `"redis"` and if the engine version is 6 or higher. 314 // Defaults to `true`. 315 AutoMinorVersionUpgrade *string `pulumi:"autoMinorVersionUpgrade"` 316 // Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use `preferredAvailabilityZones` instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. 317 AvailabilityZone *string `pulumi:"availabilityZone"` 318 // Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are `single-az` or `cross-az`, default is `single-az`. If you want to choose `cross-az`, `numCacheNodes` must be greater than `1`. 319 AzMode *string `pulumi:"azMode"` 320 // List of node objects including `id`, `address`, `port` and `availabilityZone`. 321 CacheNodes []ClusterCacheNode `pulumi:"cacheNodes"` 322 // (Memcached only) DNS name of the cache cluster without the port appended. 323 ClusterAddress *string `pulumi:"clusterAddress"` 324 // Group identifier. ElastiCache converts this name to lowercase. Changing this value will re-create the resource. 325 ClusterId *string `pulumi:"clusterId"` 326 // (Memcached only) Configuration endpoint to allow host discovery. 327 ConfigurationEndpoint *string `pulumi:"configurationEndpoint"` 328 // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. 329 Engine *string `pulumi:"engine"` 330 // Version number of the cache engine to be used. 331 // If not set, defaults to the latest version. 332 // See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) in the AWS Documentation for supported versions. 333 // When `engine` is `redis` and the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. 334 // When the version is 6, the major and minor version can be set, e.g., `6.2`, 335 // or the minor version can be unspecified which will use the latest version at creation time, e.g., `6.x`. 336 // Otherwise, specify the full version desired, e.g., `5.0.6`. 337 // The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. Cannot be provided with `replication_group_id.` 338 EngineVersion *string `pulumi:"engineVersion"` 339 // Because ElastiCache pulls the latest minor or patch for a version, this attribute returns the running version of the cache engine. 340 EngineVersionActual *string `pulumi:"engineVersionActual"` 341 // Name of your final cluster snapshot. If omitted, no final snapshot will be made. 342 FinalSnapshotIdentifier *string `pulumi:"finalSnapshotIdentifier"` 343 // The IP version to advertise in the discovery protocol. Valid values are `ipv4` or `ipv6`. 344 IpDiscovery *string `pulumi:"ipDiscovery"` 345 // Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html). See Log Delivery Configuration below for more details. 346 LogDeliveryConfigurations []ClusterLogDeliveryConfiguration `pulumi:"logDeliveryConfigurations"` 347 // Specifies the weekly time range for when maintenance 348 // on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). 349 // The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00`. 350 MaintenanceWindow *string `pulumi:"maintenanceWindow"` 351 // The IP versions for cache cluster connections. IPv6 is supported with Redis engine `6.2` onword or Memcached version `1.6.6` for all [Nitro system](https://aws.amazon.com/ec2/nitro/) instances. Valid values are `ipv4`, `ipv6` or `dualStack`. 352 NetworkType *string `pulumi:"networkType"` 353 // The instance class used. See AWS documentation for information on [supported node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html). See AWS documentation for information on [supported node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/nodes-select-size.html). For Memcached, changing this value will re-create the resource. 354 NodeType *string `pulumi:"nodeType"` 355 // ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic`. 356 NotificationTopicArn *string `pulumi:"notificationTopicArn"` 357 // The initial number of cache nodes that the cache cluster will have. For Redis, this value must be 1. For Memcached, this value must be between 1 and 40. If this number is reduced on subsequent runs, the highest numbered nodes will be removed. 358 NumCacheNodes *int `pulumi:"numCacheNodes"` 359 // Specify the outpost mode that will apply to the cache cluster creation. Valid values are `"single-outpost"` and `"cross-outpost"`, however AWS currently only supports `"single-outpost"` mode. 360 OutpostMode *string `pulumi:"outpostMode"` 361 // The name of the parameter group to associate with this cache cluster. 362 // 363 // The following arguments are optional: 364 ParameterGroupName *string `pulumi:"parameterGroupName"` 365 // The port number on which each of the cache nodes will accept connections. For Memcached the default is 11211, and for Redis the default port is 6379. Cannot be provided with `replicationGroupId`. Changing this value will re-create the resource. 366 Port *int `pulumi:"port"` 367 // List of the Availability Zones in which cache nodes are created. If you are creating your cluster in an Amazon VPC you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of `numCacheNodes`. If you want all the nodes in the same Availability Zone, use `availabilityZone` instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. Detecting drift of existing node availability zone is not currently supported. Updating this argument by itself to migrate existing node availability zones is not currently supported and will show a perpetual difference. 368 PreferredAvailabilityZones []string `pulumi:"preferredAvailabilityZones"` 369 // The outpost ARN in which the cache cluster will be created. 370 PreferredOutpostArn *string `pulumi:"preferredOutpostArn"` 371 // ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group. 372 ReplicationGroupId *string `pulumi:"replicationGroupId"` 373 // One or more VPC security groups associated with the cache cluster. Cannot be provided with `replication_group_id.` 374 SecurityGroupIds []string `pulumi:"securityGroupIds"` 375 // Single-element string list containing an Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. The object name cannot contain any commas. Changing `snapshotArns` forces a new resource. 376 SnapshotArns *string `pulumi:"snapshotArns"` 377 // Name of a snapshot from which to restore data into the new node group. Changing `snapshotName` forces a new resource. 378 SnapshotName *string `pulumi:"snapshotName"` 379 // Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a `snapshotRetentionLimit` is not supported on cache.t1.micro cache nodes 380 SnapshotRetentionLimit *int `pulumi:"snapshotRetentionLimit"` 381 // Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. Example: 05:00-09:00 382 SnapshotWindow *string `pulumi:"snapshotWindow"` 383 // Name of the subnet group to be used for the cache cluster. Changing this value will re-create the resource. Cannot be provided with `replication_group_id.` 384 SubnetGroupName *string `pulumi:"subnetGroupName"` 385 // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 386 Tags map[string]string `pulumi:"tags"` 387 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 388 // 389 // Deprecated: Please use `tags` instead. 390 TagsAll map[string]string `pulumi:"tagsAll"` 391 // Enable encryption in-transit. Supported only with Memcached versions `1.6.12` and later, running in a VPC. See the [ElastiCache in-transit encryption](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/in-transit-encryption-mc.html) documentation for more details. 392 TransitEncryptionEnabled *bool `pulumi:"transitEncryptionEnabled"` 393 } 394 395 type ClusterState struct { 396 // Whether any database modifications are applied immediately, or during the next maintenance window. Default is `false`. See [Amazon ElastiCache Documentation for more information.](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html). 397 ApplyImmediately pulumi.BoolPtrInput 398 // The ARN of the created ElastiCache Cluster. 399 Arn pulumi.StringPtrInput 400 // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. 401 // Only supported for engine type `"redis"` and if the engine version is 6 or higher. 402 // Defaults to `true`. 403 AutoMinorVersionUpgrade pulumi.StringPtrInput 404 // Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use `preferredAvailabilityZones` instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. 405 AvailabilityZone pulumi.StringPtrInput 406 // Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are `single-az` or `cross-az`, default is `single-az`. If you want to choose `cross-az`, `numCacheNodes` must be greater than `1`. 407 AzMode pulumi.StringPtrInput 408 // List of node objects including `id`, `address`, `port` and `availabilityZone`. 409 CacheNodes ClusterCacheNodeArrayInput 410 // (Memcached only) DNS name of the cache cluster without the port appended. 411 ClusterAddress pulumi.StringPtrInput 412 // Group identifier. ElastiCache converts this name to lowercase. Changing this value will re-create the resource. 413 ClusterId pulumi.StringPtrInput 414 // (Memcached only) Configuration endpoint to allow host discovery. 415 ConfigurationEndpoint pulumi.StringPtrInput 416 // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. 417 Engine pulumi.StringPtrInput 418 // Version number of the cache engine to be used. 419 // If not set, defaults to the latest version. 420 // See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) in the AWS Documentation for supported versions. 421 // When `engine` is `redis` and the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. 422 // When the version is 6, the major and minor version can be set, e.g., `6.2`, 423 // or the minor version can be unspecified which will use the latest version at creation time, e.g., `6.x`. 424 // Otherwise, specify the full version desired, e.g., `5.0.6`. 425 // The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. Cannot be provided with `replication_group_id.` 426 EngineVersion pulumi.StringPtrInput 427 // Because ElastiCache pulls the latest minor or patch for a version, this attribute returns the running version of the cache engine. 428 EngineVersionActual pulumi.StringPtrInput 429 // Name of your final cluster snapshot. If omitted, no final snapshot will be made. 430 FinalSnapshotIdentifier pulumi.StringPtrInput 431 // The IP version to advertise in the discovery protocol. Valid values are `ipv4` or `ipv6`. 432 IpDiscovery pulumi.StringPtrInput 433 // Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html). See Log Delivery Configuration below for more details. 434 LogDeliveryConfigurations ClusterLogDeliveryConfigurationArrayInput 435 // Specifies the weekly time range for when maintenance 436 // on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). 437 // The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00`. 438 MaintenanceWindow pulumi.StringPtrInput 439 // The IP versions for cache cluster connections. IPv6 is supported with Redis engine `6.2` onword or Memcached version `1.6.6` for all [Nitro system](https://aws.amazon.com/ec2/nitro/) instances. Valid values are `ipv4`, `ipv6` or `dualStack`. 440 NetworkType pulumi.StringPtrInput 441 // The instance class used. See AWS documentation for information on [supported node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html). See AWS documentation for information on [supported node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/nodes-select-size.html). For Memcached, changing this value will re-create the resource. 442 NodeType pulumi.StringPtrInput 443 // ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic`. 444 NotificationTopicArn pulumi.StringPtrInput 445 // The initial number of cache nodes that the cache cluster will have. For Redis, this value must be 1. For Memcached, this value must be between 1 and 40. If this number is reduced on subsequent runs, the highest numbered nodes will be removed. 446 NumCacheNodes pulumi.IntPtrInput 447 // Specify the outpost mode that will apply to the cache cluster creation. Valid values are `"single-outpost"` and `"cross-outpost"`, however AWS currently only supports `"single-outpost"` mode. 448 OutpostMode pulumi.StringPtrInput 449 // The name of the parameter group to associate with this cache cluster. 450 // 451 // The following arguments are optional: 452 ParameterGroupName pulumi.StringPtrInput 453 // The port number on which each of the cache nodes will accept connections. For Memcached the default is 11211, and for Redis the default port is 6379. Cannot be provided with `replicationGroupId`. Changing this value will re-create the resource. 454 Port pulumi.IntPtrInput 455 // List of the Availability Zones in which cache nodes are created. If you are creating your cluster in an Amazon VPC you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of `numCacheNodes`. If you want all the nodes in the same Availability Zone, use `availabilityZone` instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. Detecting drift of existing node availability zone is not currently supported. Updating this argument by itself to migrate existing node availability zones is not currently supported and will show a perpetual difference. 456 PreferredAvailabilityZones pulumi.StringArrayInput 457 // The outpost ARN in which the cache cluster will be created. 458 PreferredOutpostArn pulumi.StringPtrInput 459 // ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group. 460 ReplicationGroupId pulumi.StringPtrInput 461 // One or more VPC security groups associated with the cache cluster. Cannot be provided with `replication_group_id.` 462 SecurityGroupIds pulumi.StringArrayInput 463 // Single-element string list containing an Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. The object name cannot contain any commas. Changing `snapshotArns` forces a new resource. 464 SnapshotArns pulumi.StringPtrInput 465 // Name of a snapshot from which to restore data into the new node group. Changing `snapshotName` forces a new resource. 466 SnapshotName pulumi.StringPtrInput 467 // Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a `snapshotRetentionLimit` is not supported on cache.t1.micro cache nodes 468 SnapshotRetentionLimit pulumi.IntPtrInput 469 // Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. Example: 05:00-09:00 470 SnapshotWindow pulumi.StringPtrInput 471 // Name of the subnet group to be used for the cache cluster. Changing this value will re-create the resource. Cannot be provided with `replication_group_id.` 472 SubnetGroupName pulumi.StringPtrInput 473 // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 474 Tags pulumi.StringMapInput 475 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 476 // 477 // Deprecated: Please use `tags` instead. 478 TagsAll pulumi.StringMapInput 479 // Enable encryption in-transit. Supported only with Memcached versions `1.6.12` and later, running in a VPC. See the [ElastiCache in-transit encryption](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/in-transit-encryption-mc.html) documentation for more details. 480 TransitEncryptionEnabled pulumi.BoolPtrInput 481 } 482 483 func (ClusterState) ElementType() reflect.Type { 484 return reflect.TypeOf((*clusterState)(nil)).Elem() 485 } 486 487 type clusterArgs struct { 488 // Whether any database modifications are applied immediately, or during the next maintenance window. Default is `false`. See [Amazon ElastiCache Documentation for more information.](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html). 489 ApplyImmediately *bool `pulumi:"applyImmediately"` 490 // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. 491 // Only supported for engine type `"redis"` and if the engine version is 6 or higher. 492 // Defaults to `true`. 493 AutoMinorVersionUpgrade *string `pulumi:"autoMinorVersionUpgrade"` 494 // Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use `preferredAvailabilityZones` instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. 495 AvailabilityZone *string `pulumi:"availabilityZone"` 496 // Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are `single-az` or `cross-az`, default is `single-az`. If you want to choose `cross-az`, `numCacheNodes` must be greater than `1`. 497 AzMode *string `pulumi:"azMode"` 498 // Group identifier. ElastiCache converts this name to lowercase. Changing this value will re-create the resource. 499 ClusterId *string `pulumi:"clusterId"` 500 // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. 501 Engine *string `pulumi:"engine"` 502 // Version number of the cache engine to be used. 503 // If not set, defaults to the latest version. 504 // See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) in the AWS Documentation for supported versions. 505 // When `engine` is `redis` and the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. 506 // When the version is 6, the major and minor version can be set, e.g., `6.2`, 507 // or the minor version can be unspecified which will use the latest version at creation time, e.g., `6.x`. 508 // Otherwise, specify the full version desired, e.g., `5.0.6`. 509 // The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. Cannot be provided with `replication_group_id.` 510 EngineVersion *string `pulumi:"engineVersion"` 511 // Name of your final cluster snapshot. If omitted, no final snapshot will be made. 512 FinalSnapshotIdentifier *string `pulumi:"finalSnapshotIdentifier"` 513 // The IP version to advertise in the discovery protocol. Valid values are `ipv4` or `ipv6`. 514 IpDiscovery *string `pulumi:"ipDiscovery"` 515 // Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html). See Log Delivery Configuration below for more details. 516 LogDeliveryConfigurations []ClusterLogDeliveryConfiguration `pulumi:"logDeliveryConfigurations"` 517 // Specifies the weekly time range for when maintenance 518 // on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). 519 // The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00`. 520 MaintenanceWindow *string `pulumi:"maintenanceWindow"` 521 // The IP versions for cache cluster connections. IPv6 is supported with Redis engine `6.2` onword or Memcached version `1.6.6` for all [Nitro system](https://aws.amazon.com/ec2/nitro/) instances. Valid values are `ipv4`, `ipv6` or `dualStack`. 522 NetworkType *string `pulumi:"networkType"` 523 // The instance class used. See AWS documentation for information on [supported node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html). See AWS documentation for information on [supported node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/nodes-select-size.html). For Memcached, changing this value will re-create the resource. 524 NodeType *string `pulumi:"nodeType"` 525 // ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic`. 526 NotificationTopicArn *string `pulumi:"notificationTopicArn"` 527 // The initial number of cache nodes that the cache cluster will have. For Redis, this value must be 1. For Memcached, this value must be between 1 and 40. If this number is reduced on subsequent runs, the highest numbered nodes will be removed. 528 NumCacheNodes *int `pulumi:"numCacheNodes"` 529 // Specify the outpost mode that will apply to the cache cluster creation. Valid values are `"single-outpost"` and `"cross-outpost"`, however AWS currently only supports `"single-outpost"` mode. 530 OutpostMode *string `pulumi:"outpostMode"` 531 // The name of the parameter group to associate with this cache cluster. 532 // 533 // The following arguments are optional: 534 ParameterGroupName *string `pulumi:"parameterGroupName"` 535 // The port number on which each of the cache nodes will accept connections. For Memcached the default is 11211, and for Redis the default port is 6379. Cannot be provided with `replicationGroupId`. Changing this value will re-create the resource. 536 Port *int `pulumi:"port"` 537 // List of the Availability Zones in which cache nodes are created. If you are creating your cluster in an Amazon VPC you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of `numCacheNodes`. If you want all the nodes in the same Availability Zone, use `availabilityZone` instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. Detecting drift of existing node availability zone is not currently supported. Updating this argument by itself to migrate existing node availability zones is not currently supported and will show a perpetual difference. 538 PreferredAvailabilityZones []string `pulumi:"preferredAvailabilityZones"` 539 // The outpost ARN in which the cache cluster will be created. 540 PreferredOutpostArn *string `pulumi:"preferredOutpostArn"` 541 // ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group. 542 ReplicationGroupId *string `pulumi:"replicationGroupId"` 543 // One or more VPC security groups associated with the cache cluster. Cannot be provided with `replication_group_id.` 544 SecurityGroupIds []string `pulumi:"securityGroupIds"` 545 // Single-element string list containing an Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. The object name cannot contain any commas. Changing `snapshotArns` forces a new resource. 546 SnapshotArns *string `pulumi:"snapshotArns"` 547 // Name of a snapshot from which to restore data into the new node group. Changing `snapshotName` forces a new resource. 548 SnapshotName *string `pulumi:"snapshotName"` 549 // Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a `snapshotRetentionLimit` is not supported on cache.t1.micro cache nodes 550 SnapshotRetentionLimit *int `pulumi:"snapshotRetentionLimit"` 551 // Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. Example: 05:00-09:00 552 SnapshotWindow *string `pulumi:"snapshotWindow"` 553 // Name of the subnet group to be used for the cache cluster. Changing this value will re-create the resource. Cannot be provided with `replication_group_id.` 554 SubnetGroupName *string `pulumi:"subnetGroupName"` 555 // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 556 Tags map[string]string `pulumi:"tags"` 557 // Enable encryption in-transit. Supported only with Memcached versions `1.6.12` and later, running in a VPC. See the [ElastiCache in-transit encryption](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/in-transit-encryption-mc.html) documentation for more details. 558 TransitEncryptionEnabled *bool `pulumi:"transitEncryptionEnabled"` 559 } 560 561 // The set of arguments for constructing a Cluster resource. 562 type ClusterArgs struct { 563 // Whether any database modifications are applied immediately, or during the next maintenance window. Default is `false`. See [Amazon ElastiCache Documentation for more information.](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html). 564 ApplyImmediately pulumi.BoolPtrInput 565 // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. 566 // Only supported for engine type `"redis"` and if the engine version is 6 or higher. 567 // Defaults to `true`. 568 AutoMinorVersionUpgrade pulumi.StringPtrInput 569 // Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use `preferredAvailabilityZones` instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. 570 AvailabilityZone pulumi.StringPtrInput 571 // Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are `single-az` or `cross-az`, default is `single-az`. If you want to choose `cross-az`, `numCacheNodes` must be greater than `1`. 572 AzMode pulumi.StringPtrInput 573 // Group identifier. ElastiCache converts this name to lowercase. Changing this value will re-create the resource. 574 ClusterId pulumi.StringPtrInput 575 // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. 576 Engine pulumi.StringPtrInput 577 // Version number of the cache engine to be used. 578 // If not set, defaults to the latest version. 579 // See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) in the AWS Documentation for supported versions. 580 // When `engine` is `redis` and the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. 581 // When the version is 6, the major and minor version can be set, e.g., `6.2`, 582 // or the minor version can be unspecified which will use the latest version at creation time, e.g., `6.x`. 583 // Otherwise, specify the full version desired, e.g., `5.0.6`. 584 // The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. Cannot be provided with `replication_group_id.` 585 EngineVersion pulumi.StringPtrInput 586 // Name of your final cluster snapshot. If omitted, no final snapshot will be made. 587 FinalSnapshotIdentifier pulumi.StringPtrInput 588 // The IP version to advertise in the discovery protocol. Valid values are `ipv4` or `ipv6`. 589 IpDiscovery pulumi.StringPtrInput 590 // Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html). See Log Delivery Configuration below for more details. 591 LogDeliveryConfigurations ClusterLogDeliveryConfigurationArrayInput 592 // Specifies the weekly time range for when maintenance 593 // on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). 594 // The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00`. 595 MaintenanceWindow pulumi.StringPtrInput 596 // The IP versions for cache cluster connections. IPv6 is supported with Redis engine `6.2` onword or Memcached version `1.6.6` for all [Nitro system](https://aws.amazon.com/ec2/nitro/) instances. Valid values are `ipv4`, `ipv6` or `dualStack`. 597 NetworkType pulumi.StringPtrInput 598 // The instance class used. See AWS documentation for information on [supported node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html). See AWS documentation for information on [supported node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/nodes-select-size.html). For Memcached, changing this value will re-create the resource. 599 NodeType pulumi.StringPtrInput 600 // ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic`. 601 NotificationTopicArn pulumi.StringPtrInput 602 // The initial number of cache nodes that the cache cluster will have. For Redis, this value must be 1. For Memcached, this value must be between 1 and 40. If this number is reduced on subsequent runs, the highest numbered nodes will be removed. 603 NumCacheNodes pulumi.IntPtrInput 604 // Specify the outpost mode that will apply to the cache cluster creation. Valid values are `"single-outpost"` and `"cross-outpost"`, however AWS currently only supports `"single-outpost"` mode. 605 OutpostMode pulumi.StringPtrInput 606 // The name of the parameter group to associate with this cache cluster. 607 // 608 // The following arguments are optional: 609 ParameterGroupName pulumi.StringPtrInput 610 // The port number on which each of the cache nodes will accept connections. For Memcached the default is 11211, and for Redis the default port is 6379. Cannot be provided with `replicationGroupId`. Changing this value will re-create the resource. 611 Port pulumi.IntPtrInput 612 // List of the Availability Zones in which cache nodes are created. If you are creating your cluster in an Amazon VPC you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of `numCacheNodes`. If you want all the nodes in the same Availability Zone, use `availabilityZone` instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. Detecting drift of existing node availability zone is not currently supported. Updating this argument by itself to migrate existing node availability zones is not currently supported and will show a perpetual difference. 613 PreferredAvailabilityZones pulumi.StringArrayInput 614 // The outpost ARN in which the cache cluster will be created. 615 PreferredOutpostArn pulumi.StringPtrInput 616 // ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group. 617 ReplicationGroupId pulumi.StringPtrInput 618 // One or more VPC security groups associated with the cache cluster. Cannot be provided with `replication_group_id.` 619 SecurityGroupIds pulumi.StringArrayInput 620 // Single-element string list containing an Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. The object name cannot contain any commas. Changing `snapshotArns` forces a new resource. 621 SnapshotArns pulumi.StringPtrInput 622 // Name of a snapshot from which to restore data into the new node group. Changing `snapshotName` forces a new resource. 623 SnapshotName pulumi.StringPtrInput 624 // Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a `snapshotRetentionLimit` is not supported on cache.t1.micro cache nodes 625 SnapshotRetentionLimit pulumi.IntPtrInput 626 // Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. Example: 05:00-09:00 627 SnapshotWindow pulumi.StringPtrInput 628 // Name of the subnet group to be used for the cache cluster. Changing this value will re-create the resource. Cannot be provided with `replication_group_id.` 629 SubnetGroupName pulumi.StringPtrInput 630 // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 631 Tags pulumi.StringMapInput 632 // Enable encryption in-transit. Supported only with Memcached versions `1.6.12` and later, running in a VPC. See the [ElastiCache in-transit encryption](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/in-transit-encryption-mc.html) documentation for more details. 633 TransitEncryptionEnabled pulumi.BoolPtrInput 634 } 635 636 func (ClusterArgs) ElementType() reflect.Type { 637 return reflect.TypeOf((*clusterArgs)(nil)).Elem() 638 } 639 640 type ClusterInput interface { 641 pulumi.Input 642 643 ToClusterOutput() ClusterOutput 644 ToClusterOutputWithContext(ctx context.Context) ClusterOutput 645 } 646 647 func (*Cluster) ElementType() reflect.Type { 648 return reflect.TypeOf((**Cluster)(nil)).Elem() 649 } 650 651 func (i *Cluster) ToClusterOutput() ClusterOutput { 652 return i.ToClusterOutputWithContext(context.Background()) 653 } 654 655 func (i *Cluster) ToClusterOutputWithContext(ctx context.Context) ClusterOutput { 656 return pulumi.ToOutputWithContext(ctx, i).(ClusterOutput) 657 } 658 659 // ClusterArrayInput is an input type that accepts ClusterArray and ClusterArrayOutput values. 660 // You can construct a concrete instance of `ClusterArrayInput` via: 661 // 662 // ClusterArray{ ClusterArgs{...} } 663 type ClusterArrayInput interface { 664 pulumi.Input 665 666 ToClusterArrayOutput() ClusterArrayOutput 667 ToClusterArrayOutputWithContext(context.Context) ClusterArrayOutput 668 } 669 670 type ClusterArray []ClusterInput 671 672 func (ClusterArray) ElementType() reflect.Type { 673 return reflect.TypeOf((*[]*Cluster)(nil)).Elem() 674 } 675 676 func (i ClusterArray) ToClusterArrayOutput() ClusterArrayOutput { 677 return i.ToClusterArrayOutputWithContext(context.Background()) 678 } 679 680 func (i ClusterArray) ToClusterArrayOutputWithContext(ctx context.Context) ClusterArrayOutput { 681 return pulumi.ToOutputWithContext(ctx, i).(ClusterArrayOutput) 682 } 683 684 // ClusterMapInput is an input type that accepts ClusterMap and ClusterMapOutput values. 685 // You can construct a concrete instance of `ClusterMapInput` via: 686 // 687 // ClusterMap{ "key": ClusterArgs{...} } 688 type ClusterMapInput interface { 689 pulumi.Input 690 691 ToClusterMapOutput() ClusterMapOutput 692 ToClusterMapOutputWithContext(context.Context) ClusterMapOutput 693 } 694 695 type ClusterMap map[string]ClusterInput 696 697 func (ClusterMap) ElementType() reflect.Type { 698 return reflect.TypeOf((*map[string]*Cluster)(nil)).Elem() 699 } 700 701 func (i ClusterMap) ToClusterMapOutput() ClusterMapOutput { 702 return i.ToClusterMapOutputWithContext(context.Background()) 703 } 704 705 func (i ClusterMap) ToClusterMapOutputWithContext(ctx context.Context) ClusterMapOutput { 706 return pulumi.ToOutputWithContext(ctx, i).(ClusterMapOutput) 707 } 708 709 type ClusterOutput struct{ *pulumi.OutputState } 710 711 func (ClusterOutput) ElementType() reflect.Type { 712 return reflect.TypeOf((**Cluster)(nil)).Elem() 713 } 714 715 func (o ClusterOutput) ToClusterOutput() ClusterOutput { 716 return o 717 } 718 719 func (o ClusterOutput) ToClusterOutputWithContext(ctx context.Context) ClusterOutput { 720 return o 721 } 722 723 // Whether any database modifications are applied immediately, or during the next maintenance window. Default is `false`. See [Amazon ElastiCache Documentation for more information.](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html). 724 func (o ClusterOutput) ApplyImmediately() pulumi.BoolOutput { 725 return o.ApplyT(func(v *Cluster) pulumi.BoolOutput { return v.ApplyImmediately }).(pulumi.BoolOutput) 726 } 727 728 // The ARN of the created ElastiCache Cluster. 729 func (o ClusterOutput) Arn() pulumi.StringOutput { 730 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 731 } 732 733 // Specifies whether minor version engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. 734 // Only supported for engine type `"redis"` and if the engine version is 6 or higher. 735 // Defaults to `true`. 736 func (o ClusterOutput) AutoMinorVersionUpgrade() pulumi.StringPtrOutput { 737 return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.AutoMinorVersionUpgrade }).(pulumi.StringPtrOutput) 738 } 739 740 // Availability Zone for the cache cluster. If you want to create cache nodes in multi-az, use `preferredAvailabilityZones` instead. Default: System chosen Availability Zone. Changing this value will re-create the resource. 741 func (o ClusterOutput) AvailabilityZone() pulumi.StringOutput { 742 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.AvailabilityZone }).(pulumi.StringOutput) 743 } 744 745 // Whether the nodes in this Memcached node group are created in a single Availability Zone or created across multiple Availability Zones in the cluster's region. Valid values for this parameter are `single-az` or `cross-az`, default is `single-az`. If you want to choose `cross-az`, `numCacheNodes` must be greater than `1`. 746 func (o ClusterOutput) AzMode() pulumi.StringOutput { 747 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.AzMode }).(pulumi.StringOutput) 748 } 749 750 // List of node objects including `id`, `address`, `port` and `availabilityZone`. 751 func (o ClusterOutput) CacheNodes() ClusterCacheNodeArrayOutput { 752 return o.ApplyT(func(v *Cluster) ClusterCacheNodeArrayOutput { return v.CacheNodes }).(ClusterCacheNodeArrayOutput) 753 } 754 755 // (Memcached only) DNS name of the cache cluster without the port appended. 756 func (o ClusterOutput) ClusterAddress() pulumi.StringOutput { 757 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ClusterAddress }).(pulumi.StringOutput) 758 } 759 760 // Group identifier. ElastiCache converts this name to lowercase. Changing this value will re-create the resource. 761 func (o ClusterOutput) ClusterId() pulumi.StringOutput { 762 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ClusterId }).(pulumi.StringOutput) 763 } 764 765 // (Memcached only) Configuration endpoint to allow host discovery. 766 func (o ClusterOutput) ConfigurationEndpoint() pulumi.StringOutput { 767 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ConfigurationEndpoint }).(pulumi.StringOutput) 768 } 769 770 // Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`. 771 func (o ClusterOutput) Engine() pulumi.StringOutput { 772 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Engine }).(pulumi.StringOutput) 773 } 774 775 // Version number of the cache engine to be used. 776 // If not set, defaults to the latest version. 777 // See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) in the AWS Documentation for supported versions. 778 // When `engine` is `redis` and the version is 7 or higher, the major and minor version should be set, e.g., `7.2`. 779 // When the version is 6, the major and minor version can be set, e.g., `6.2`, 780 // or the minor version can be unspecified which will use the latest version at creation time, e.g., `6.x`. 781 // Otherwise, specify the full version desired, e.g., `5.0.6`. 782 // The actual engine version used is returned in the attribute `engineVersionActual`, see Attribute Reference below. Cannot be provided with `replication_group_id.` 783 func (o ClusterOutput) EngineVersion() pulumi.StringOutput { 784 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.EngineVersion }).(pulumi.StringOutput) 785 } 786 787 // Because ElastiCache pulls the latest minor or patch for a version, this attribute returns the running version of the cache engine. 788 func (o ClusterOutput) EngineVersionActual() pulumi.StringOutput { 789 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.EngineVersionActual }).(pulumi.StringOutput) 790 } 791 792 // Name of your final cluster snapshot. If omitted, no final snapshot will be made. 793 func (o ClusterOutput) FinalSnapshotIdentifier() pulumi.StringPtrOutput { 794 return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.FinalSnapshotIdentifier }).(pulumi.StringPtrOutput) 795 } 796 797 // The IP version to advertise in the discovery protocol. Valid values are `ipv4` or `ipv6`. 798 func (o ClusterOutput) IpDiscovery() pulumi.StringOutput { 799 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.IpDiscovery }).(pulumi.StringOutput) 800 } 801 802 // Specifies the destination and format of Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log). See the documentation on [Amazon ElastiCache](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Log_Delivery.html). See Log Delivery Configuration below for more details. 803 func (o ClusterOutput) LogDeliveryConfigurations() ClusterLogDeliveryConfigurationArrayOutput { 804 return o.ApplyT(func(v *Cluster) ClusterLogDeliveryConfigurationArrayOutput { return v.LogDeliveryConfigurations }).(ClusterLogDeliveryConfigurationArrayOutput) 805 } 806 807 // Specifies the weekly time range for when maintenance 808 // on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). 809 // The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00`. 810 func (o ClusterOutput) MaintenanceWindow() pulumi.StringOutput { 811 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.MaintenanceWindow }).(pulumi.StringOutput) 812 } 813 814 // The IP versions for cache cluster connections. IPv6 is supported with Redis engine `6.2` onword or Memcached version `1.6.6` for all [Nitro system](https://aws.amazon.com/ec2/nitro/) instances. Valid values are `ipv4`, `ipv6` or `dualStack`. 815 func (o ClusterOutput) NetworkType() pulumi.StringOutput { 816 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.NetworkType }).(pulumi.StringOutput) 817 } 818 819 // The instance class used. See AWS documentation for information on [supported node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Redis](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html). See AWS documentation for information on [supported node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types for Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/nodes-select-size.html). For Memcached, changing this value will re-create the resource. 820 func (o ClusterOutput) NodeType() pulumi.StringOutput { 821 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.NodeType }).(pulumi.StringOutput) 822 } 823 824 // ARN of an SNS topic to send ElastiCache notifications to. Example: `arn:aws:sns:us-east-1:012345678999:my_sns_topic`. 825 func (o ClusterOutput) NotificationTopicArn() pulumi.StringPtrOutput { 826 return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.NotificationTopicArn }).(pulumi.StringPtrOutput) 827 } 828 829 // The initial number of cache nodes that the cache cluster will have. For Redis, this value must be 1. For Memcached, this value must be between 1 and 40. If this number is reduced on subsequent runs, the highest numbered nodes will be removed. 830 func (o ClusterOutput) NumCacheNodes() pulumi.IntOutput { 831 return o.ApplyT(func(v *Cluster) pulumi.IntOutput { return v.NumCacheNodes }).(pulumi.IntOutput) 832 } 833 834 // Specify the outpost mode that will apply to the cache cluster creation. Valid values are `"single-outpost"` and `"cross-outpost"`, however AWS currently only supports `"single-outpost"` mode. 835 func (o ClusterOutput) OutpostMode() pulumi.StringPtrOutput { 836 return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.OutpostMode }).(pulumi.StringPtrOutput) 837 } 838 839 // The name of the parameter group to associate with this cache cluster. 840 // 841 // The following arguments are optional: 842 func (o ClusterOutput) ParameterGroupName() pulumi.StringOutput { 843 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ParameterGroupName }).(pulumi.StringOutput) 844 } 845 846 // The port number on which each of the cache nodes will accept connections. For Memcached the default is 11211, and for Redis the default port is 6379. Cannot be provided with `replicationGroupId`. Changing this value will re-create the resource. 847 func (o ClusterOutput) Port() pulumi.IntOutput { 848 return o.ApplyT(func(v *Cluster) pulumi.IntOutput { return v.Port }).(pulumi.IntOutput) 849 } 850 851 // List of the Availability Zones in which cache nodes are created. If you are creating your cluster in an Amazon VPC you can only locate nodes in Availability Zones that are associated with the subnets in the selected subnet group. The number of Availability Zones listed must equal the value of `numCacheNodes`. If you want all the nodes in the same Availability Zone, use `availabilityZone` instead, or repeat the Availability Zone multiple times in the list. Default: System chosen Availability Zones. Detecting drift of existing node availability zone is not currently supported. Updating this argument by itself to migrate existing node availability zones is not currently supported and will show a perpetual difference. 852 func (o ClusterOutput) PreferredAvailabilityZones() pulumi.StringArrayOutput { 853 return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.PreferredAvailabilityZones }).(pulumi.StringArrayOutput) 854 } 855 856 // The outpost ARN in which the cache cluster will be created. 857 func (o ClusterOutput) PreferredOutpostArn() pulumi.StringOutput { 858 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.PreferredOutpostArn }).(pulumi.StringOutput) 859 } 860 861 // ID of the replication group to which this cluster should belong. If this parameter is specified, the cluster is added to the specified replication group as a read replica; otherwise, the cluster is a standalone primary that is not part of any replication group. 862 func (o ClusterOutput) ReplicationGroupId() pulumi.StringOutput { 863 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ReplicationGroupId }).(pulumi.StringOutput) 864 } 865 866 // One or more VPC security groups associated with the cache cluster. Cannot be provided with `replication_group_id.` 867 func (o ClusterOutput) SecurityGroupIds() pulumi.StringArrayOutput { 868 return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.SecurityGroupIds }).(pulumi.StringArrayOutput) 869 } 870 871 // Single-element string list containing an Amazon Resource Name (ARN) of a Redis RDB snapshot file stored in Amazon S3. The object name cannot contain any commas. Changing `snapshotArns` forces a new resource. 872 func (o ClusterOutput) SnapshotArns() pulumi.StringPtrOutput { 873 return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.SnapshotArns }).(pulumi.StringPtrOutput) 874 } 875 876 // Name of a snapshot from which to restore data into the new node group. Changing `snapshotName` forces a new resource. 877 func (o ClusterOutput) SnapshotName() pulumi.StringPtrOutput { 878 return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.SnapshotName }).(pulumi.StringPtrOutput) 879 } 880 881 // Number of days for which ElastiCache will retain automatic cache cluster snapshots before deleting them. For example, if you set SnapshotRetentionLimit to 5, then a snapshot that was taken today will be retained for 5 days before being deleted. If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off. Please note that setting a `snapshotRetentionLimit` is not supported on cache.t1.micro cache nodes 882 func (o ClusterOutput) SnapshotRetentionLimit() pulumi.IntPtrOutput { 883 return o.ApplyT(func(v *Cluster) pulumi.IntPtrOutput { return v.SnapshotRetentionLimit }).(pulumi.IntPtrOutput) 884 } 885 886 // Daily time range (in UTC) during which ElastiCache will begin taking a daily snapshot of your cache cluster. Example: 05:00-09:00 887 func (o ClusterOutput) SnapshotWindow() pulumi.StringOutput { 888 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.SnapshotWindow }).(pulumi.StringOutput) 889 } 890 891 // Name of the subnet group to be used for the cache cluster. Changing this value will re-create the resource. Cannot be provided with `replication_group_id.` 892 func (o ClusterOutput) SubnetGroupName() pulumi.StringOutput { 893 return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.SubnetGroupName }).(pulumi.StringOutput) 894 } 895 896 // Map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 897 func (o ClusterOutput) Tags() pulumi.StringMapOutput { 898 return o.ApplyT(func(v *Cluster) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 899 } 900 901 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 902 // 903 // Deprecated: Please use `tags` instead. 904 func (o ClusterOutput) TagsAll() pulumi.StringMapOutput { 905 return o.ApplyT(func(v *Cluster) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 906 } 907 908 // Enable encryption in-transit. Supported only with Memcached versions `1.6.12` and later, running in a VPC. See the [ElastiCache in-transit encryption](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/in-transit-encryption-mc.html) documentation for more details. 909 func (o ClusterOutput) TransitEncryptionEnabled() pulumi.BoolOutput { 910 return o.ApplyT(func(v *Cluster) pulumi.BoolOutput { return v.TransitEncryptionEnabled }).(pulumi.BoolOutput) 911 } 912 913 type ClusterArrayOutput struct{ *pulumi.OutputState } 914 915 func (ClusterArrayOutput) ElementType() reflect.Type { 916 return reflect.TypeOf((*[]*Cluster)(nil)).Elem() 917 } 918 919 func (o ClusterArrayOutput) ToClusterArrayOutput() ClusterArrayOutput { 920 return o 921 } 922 923 func (o ClusterArrayOutput) ToClusterArrayOutputWithContext(ctx context.Context) ClusterArrayOutput { 924 return o 925 } 926 927 func (o ClusterArrayOutput) Index(i pulumi.IntInput) ClusterOutput { 928 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Cluster { 929 return vs[0].([]*Cluster)[vs[1].(int)] 930 }).(ClusterOutput) 931 } 932 933 type ClusterMapOutput struct{ *pulumi.OutputState } 934 935 func (ClusterMapOutput) ElementType() reflect.Type { 936 return reflect.TypeOf((*map[string]*Cluster)(nil)).Elem() 937 } 938 939 func (o ClusterMapOutput) ToClusterMapOutput() ClusterMapOutput { 940 return o 941 } 942 943 func (o ClusterMapOutput) ToClusterMapOutputWithContext(ctx context.Context) ClusterMapOutput { 944 return o 945 } 946 947 func (o ClusterMapOutput) MapIndex(k pulumi.StringInput) ClusterOutput { 948 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Cluster { 949 return vs[0].(map[string]*Cluster)[vs[1].(string)] 950 }).(ClusterOutput) 951 } 952 953 func init() { 954 pulumi.RegisterInputType(reflect.TypeOf((*ClusterInput)(nil)).Elem(), &Cluster{}) 955 pulumi.RegisterInputType(reflect.TypeOf((*ClusterArrayInput)(nil)).Elem(), ClusterArray{}) 956 pulumi.RegisterInputType(reflect.TypeOf((*ClusterMapInput)(nil)).Elem(), ClusterMap{}) 957 pulumi.RegisterOutputType(ClusterOutput{}) 958 pulumi.RegisterOutputType(ClusterArrayOutput{}) 959 pulumi.RegisterOutputType(ClusterMapOutput{}) 960 }