ClusterArgs

data class ClusterArgs(val aclName: Output<String>? = null, val autoMinorVersionUpgrade: Output<Boolean>? = null, val dataTiering: Output<Boolean>? = null, val description: Output<String>? = null, val engine: Output<String>? = null, val engineVersion: Output<String>? = null, val finalSnapshotName: Output<String>? = null, val kmsKeyArn: Output<String>? = null, val maintenanceWindow: Output<String>? = null, val multiRegionClusterName: Output<String>? = null, val name: Output<String>? = null, val namePrefix: Output<String>? = null, val nodeType: Output<String>? = null, val numReplicasPerShard: Output<Int>? = null, val numShards: Output<Int>? = null, val parameterGroupName: Output<String>? = null, val port: Output<Int>? = null, val securityGroupIds: Output<List<String>>? = null, val snapshotArns: Output<List<String>>? = null, val snapshotName: Output<String>? = null, val snapshotRetentionLimit: Output<Int>? = null, val snapshotWindow: Output<String>? = null, val snsTopicArn: Output<String>? = null, val subnetGroupName: Output<String>? = null, val tags: Output<Map<String, String>>? = null, val tlsEnabled: Output<Boolean>? = null) : ConvertibleToJava<ClusterArgs>

Provides a MemoryDB Cluster. More information about MemoryDB can be found in the Developer Guide.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.memorydb.Cluster("example", {
aclName: "open-access",
name: "my-cluster",
nodeType: "db.t4g.small",
engine: "redis",
engineVersion: "7.1",
numShards: 2,
securityGroupIds: [exampleAwsSecurityGroup&#46;id],
snapshotRetentionLimit: 7,
subnetGroupName: exampleAwsMemorydbSubnetGroup.id,
});
import pulumi
import pulumi_aws as aws
example = aws.memorydb.Cluster("example",
acl_name="open-access",
name="my-cluster",
node_type="db.t4g.small",
engine="redis",
engine_version="7.1",
num_shards=2,
security_group_ids=[example_aws_security_group["id"]],
snapshot_retention_limit=7,
subnet_group_name=example_aws_memorydb_subnet_group["id"])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.MemoryDb.Cluster("example", new()
{
AclName = "open-access",
Name = "my-cluster",
NodeType = "db.t4g.small",
Engine = "redis",
EngineVersion = "7.1",
NumShards = 2,
SecurityGroupIds = new[]
{
exampleAwsSecurityGroup.Id,
},
SnapshotRetentionLimit = 7,
SubnetGroupName = exampleAwsMemorydbSubnetGroup.Id,
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/memorydb"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := memorydb.NewCluster(ctx, "example", &memorydb.ClusterArgs{
AclName: pulumi.String("open-access"),
Name: pulumi.String("my-cluster"),
NodeType: pulumi.String("db.t4g.small"),
Engine: pulumi.String("redis"),
EngineVersion: pulumi.String("7.1"),
NumShards: pulumi.Int(2),
SecurityGroupIds: pulumi.StringArray{
exampleAwsSecurityGroup.Id,
},
SnapshotRetentionLimit: pulumi.Int(7),
SubnetGroupName: pulumi.Any(exampleAwsMemorydbSubnetGroup.Id),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.memorydb.Cluster;
import com.pulumi.aws.memorydb.ClusterArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new Cluster("example", ClusterArgs.builder()
.aclName("open-access")
.name("my-cluster")
.nodeType("db.t4g.small")
.engine("redis")
.engineVersion("7.1")
.numShards(2)
.securityGroupIds(exampleAwsSecurityGroup.id())
.snapshotRetentionLimit(7)
.subnetGroupName(exampleAwsMemorydbSubnetGroup.id())
.build());
}
}
resources:
example:
type: aws:memorydb:Cluster
properties:
aclName: open-access
name: my-cluster
nodeType: db.t4g.small
engine: redis
engineVersion: '7.1'
numShards: 2
securityGroupIds:
- ${exampleAwsSecurityGroup.id}
snapshotRetentionLimit: 7
subnetGroupName: ${exampleAwsMemorydbSubnetGroup.id}

Import

Using pulumi import, import a cluster using the name. For example:

$ pulumi import aws:memorydb/cluster:Cluster example my-cluster

Constructors

Link copied to clipboard
constructor(aclName: Output<String>? = null, autoMinorVersionUpgrade: Output<Boolean>? = null, dataTiering: Output<Boolean>? = null, description: Output<String>? = null, engine: Output<String>? = null, engineVersion: Output<String>? = null, finalSnapshotName: Output<String>? = null, kmsKeyArn: Output<String>? = null, maintenanceWindow: Output<String>? = null, multiRegionClusterName: Output<String>? = null, name: Output<String>? = null, namePrefix: Output<String>? = null, nodeType: Output<String>? = null, numReplicasPerShard: Output<Int>? = null, numShards: Output<Int>? = null, parameterGroupName: Output<String>? = null, port: Output<Int>? = null, securityGroupIds: Output<List<String>>? = null, snapshotArns: Output<List<String>>? = null, snapshotName: Output<String>? = null, snapshotRetentionLimit: Output<Int>? = null, snapshotWindow: Output<String>? = null, snsTopicArn: Output<String>? = null, subnetGroupName: Output<String>? = null, tags: Output<Map<String, String>>? = null, tlsEnabled: Output<Boolean>? = null)

Properties

Link copied to clipboard
val aclName: Output<String>? = null

The name of the Access Control List to associate with the cluster.

Link copied to clipboard
val autoMinorVersionUpgrade: Output<Boolean>? = null

When set to true, the cluster will automatically receive minor engine version upgrades after launch. Defaults to true.

Link copied to clipboard
val dataTiering: Output<Boolean>? = null

Enables data tiering. This option is not supported by all instance types. For more information, see Data tiering.

Link copied to clipboard
val description: Output<String>? = null

Description for the cluster. Defaults to "Managed by Pulumi".

Link copied to clipboard
val engine: Output<String>? = null

The engine that will run on your nodes. Supported values are redis and valkey.

Link copied to clipboard
val engineVersion: Output<String>? = null

Version number of the engine to be used for the cluster. Downgrades are not supported.

Link copied to clipboard
val finalSnapshotName: Output<String>? = null

Name of the final cluster snapshot to be created when this resource is deleted. If omitted, no final snapshot will be made.

Link copied to clipboard
val kmsKeyArn: Output<String>? = null

ARN of the KMS key used to encrypt the cluster at rest.

Link copied to clipboard
val maintenanceWindow: Output<String>? = null

Specifies the weekly time range during which maintenance on the cluster is performed. Specify as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: sun:23:00-mon:01:30.

Link copied to clipboard
val multiRegionClusterName: Output<String>? = null

The multi region cluster identifier specified on aws.memorydb.MultiRegionCluster.

Link copied to clipboard
val name: Output<String>? = null

Name of the cluster. If omitted, the provider will assign a random, unique name. Conflicts with name_prefix.

Link copied to clipboard
val namePrefix: Output<String>? = null

Creates a unique name beginning with the specified prefix. Conflicts with name.

Link copied to clipboard
val nodeType: Output<String>? = null

The compute and memory capacity of the nodes in the cluster. See AWS documentation on supported node types as well as vertical scaling. The following arguments are optional:

Link copied to clipboard
val numReplicasPerShard: Output<Int>? = null

The number of replicas to apply to each shard, up to a maximum of 5. Defaults to 1 (i.e. 2 nodes per shard).

Link copied to clipboard
val numShards: Output<Int>? = null

The number of shards in the cluster. Defaults to 1.

Link copied to clipboard
val parameterGroupName: Output<String>? = null

The name of the parameter group associated with the cluster.

Link copied to clipboard
val port: Output<Int>? = null

The port number on which each of the nodes accepts connections. Defaults to 6379.

Link copied to clipboard
val securityGroupIds: Output<List<String>>? = null

Set of VPC Security Group ID-s to associate with this cluster.

Link copied to clipboard
val snapshotArns: Output<List<String>>? = null

List of ARN-s that uniquely identify RDB snapshot files stored in S3. The snapshot files will be used to populate the new cluster. Object names in the ARN-s cannot contain any commas.

Link copied to clipboard
val snapshotName: Output<String>? = null

The name of a snapshot from which to restore data into the new cluster.

Link copied to clipboard
val snapshotRetentionLimit: Output<Int>? = null

The number of days for which MemoryDB retains automatic snapshots before deleting them. When set to 0, automatic backups are disabled. Defaults to 0.

Link copied to clipboard
val snapshotWindow: Output<String>? = null

The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard. Example: 05:00-09:00.

Link copied to clipboard
val snsTopicArn: Output<String>? = null

ARN of the SNS topic to which cluster notifications are sent.

Link copied to clipboard
val subnetGroupName: Output<String>? = null

The name of the subnet group to be used for the cluster. Defaults to a subnet group consisting of default VPC subnets.

Link copied to clipboard
val tags: Output<Map<String, String>>? = null

A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

Link copied to clipboard
val tlsEnabled: Output<Boolean>? = null

A flag to enable in-transit encryption on the cluster. When set to false, the acl_name must be open-access. Defaults to true.

Functions

Link copied to clipboard
open override fun toJava(): ClusterArgs