1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. redis
  5. Cluster
Google Cloud v8.23.0 published on Monday, Mar 24, 2025 by Pulumi

gcp.redis.Cluster

Explore with Pulumi AI

Example Usage

Redis Cluster Ha

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const consumerNet = new gcp.compute.Network("consumer_net", {
    name: "my-network",
    autoCreateSubnetworks: false,
});
const consumerSubnet = new gcp.compute.Subnetwork("consumer_subnet", {
    name: "my-subnet",
    ipCidrRange: "10.0.0.248/29",
    region: "us-central1",
    network: consumerNet.id,
});
const _default = new gcp.networkconnectivity.ServiceConnectionPolicy("default", {
    name: "my-policy",
    location: "us-central1",
    serviceClass: "gcp-memorystore-redis",
    description: "my basic service connection policy",
    network: consumerNet.id,
    pscConfig: {
        subnetworks: [consumerSubnet.id],
    },
});
const cluster_ha = new gcp.redis.Cluster("cluster-ha", {
    name: "ha-cluster",
    shardCount: 3,
    pscConfigs: [{
        network: consumerNet.id,
    }],
    region: "us-central1",
    replicaCount: 1,
    nodeType: "REDIS_SHARED_CORE_NANO",
    transitEncryptionMode: "TRANSIT_ENCRYPTION_MODE_DISABLED",
    authorizationMode: "AUTH_MODE_DISABLED",
    redisConfigs: {
        "maxmemory-policy": "volatile-ttl",
    },
    deletionProtectionEnabled: true,
    zoneDistributionConfig: {
        mode: "MULTI_ZONE",
    },
    maintenancePolicy: {
        weeklyMaintenanceWindows: [{
            day: "MONDAY",
            startTime: {
                hours: 1,
                minutes: 0,
                seconds: 0,
                nanos: 0,
            },
        }],
    },
}, {
    dependsOn: [_default],
});
Copy
import pulumi
import pulumi_gcp as gcp

consumer_net = gcp.compute.Network("consumer_net",
    name="my-network",
    auto_create_subnetworks=False)
consumer_subnet = gcp.compute.Subnetwork("consumer_subnet",
    name="my-subnet",
    ip_cidr_range="10.0.0.248/29",
    region="us-central1",
    network=consumer_net.id)
default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
    name="my-policy",
    location="us-central1",
    service_class="gcp-memorystore-redis",
    description="my basic service connection policy",
    network=consumer_net.id,
    psc_config={
        "subnetworks": [consumer_subnet.id],
    })
cluster_ha = gcp.redis.Cluster("cluster-ha",
    name="ha-cluster",
    shard_count=3,
    psc_configs=[{
        "network": consumer_net.id,
    }],
    region="us-central1",
    replica_count=1,
    node_type="REDIS_SHARED_CORE_NANO",
    transit_encryption_mode="TRANSIT_ENCRYPTION_MODE_DISABLED",
    authorization_mode="AUTH_MODE_DISABLED",
    redis_configs={
        "maxmemory-policy": "volatile-ttl",
    },
    deletion_protection_enabled=True,
    zone_distribution_config={
        "mode": "MULTI_ZONE",
    },
    maintenance_policy={
        "weekly_maintenance_windows": [{
            "day": "MONDAY",
            "start_time": {
                "hours": 1,
                "minutes": 0,
                "seconds": 0,
                "nanos": 0,
            },
        }],
    },
    opts = pulumi.ResourceOptions(depends_on=[default]))
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/networkconnectivity"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/redis"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		consumerNet, err := compute.NewNetwork(ctx, "consumer_net", &compute.NetworkArgs{
			Name:                  pulumi.String("my-network"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		consumerSubnet, err := compute.NewSubnetwork(ctx, "consumer_subnet", &compute.SubnetworkArgs{
			Name:        pulumi.String("my-subnet"),
			IpCidrRange: pulumi.String("10.0.0.248/29"),
			Region:      pulumi.String("us-central1"),
			Network:     consumerNet.ID(),
		})
		if err != nil {
			return err
		}
		_default, err := networkconnectivity.NewServiceConnectionPolicy(ctx, "default", &networkconnectivity.ServiceConnectionPolicyArgs{
			Name:         pulumi.String("my-policy"),
			Location:     pulumi.String("us-central1"),
			ServiceClass: pulumi.String("gcp-memorystore-redis"),
			Description:  pulumi.String("my basic service connection policy"),
			Network:      consumerNet.ID(),
			PscConfig: &networkconnectivity.ServiceConnectionPolicyPscConfigArgs{
				Subnetworks: pulumi.StringArray{
					consumerSubnet.ID(),
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = redis.NewCluster(ctx, "cluster-ha", &redis.ClusterArgs{
			Name:       pulumi.String("ha-cluster"),
			ShardCount: pulumi.Int(3),
			PscConfigs: redis.ClusterPscConfigArray{
				&redis.ClusterPscConfigArgs{
					Network: consumerNet.ID(),
				},
			},
			Region:                pulumi.String("us-central1"),
			ReplicaCount:          pulumi.Int(1),
			NodeType:              pulumi.String("REDIS_SHARED_CORE_NANO"),
			TransitEncryptionMode: pulumi.String("TRANSIT_ENCRYPTION_MODE_DISABLED"),
			AuthorizationMode:     pulumi.String("AUTH_MODE_DISABLED"),
			RedisConfigs: pulumi.StringMap{
				"maxmemory-policy": pulumi.String("volatile-ttl"),
			},
			DeletionProtectionEnabled: pulumi.Bool(true),
			ZoneDistributionConfig: &redis.ClusterZoneDistributionConfigArgs{
				Mode: pulumi.String("MULTI_ZONE"),
			},
			MaintenancePolicy: &redis.ClusterMaintenancePolicyArgs{
				WeeklyMaintenanceWindows: redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowArray{
					&redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs{
						Day: pulumi.String("MONDAY"),
						StartTime: &redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs{
							Hours:   pulumi.Int(1),
							Minutes: pulumi.Int(0),
							Seconds: pulumi.Int(0),
							Nanos:   pulumi.Int(0),
						},
					},
				},
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			_default,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var consumerNet = new Gcp.Compute.Network("consumer_net", new()
    {
        Name = "my-network",
        AutoCreateSubnetworks = false,
    });

    var consumerSubnet = new Gcp.Compute.Subnetwork("consumer_subnet", new()
    {
        Name = "my-subnet",
        IpCidrRange = "10.0.0.248/29",
        Region = "us-central1",
        Network = consumerNet.Id,
    });

    var @default = new Gcp.NetworkConnectivity.ServiceConnectionPolicy("default", new()
    {
        Name = "my-policy",
        Location = "us-central1",
        ServiceClass = "gcp-memorystore-redis",
        Description = "my basic service connection policy",
        Network = consumerNet.Id,
        PscConfig = new Gcp.NetworkConnectivity.Inputs.ServiceConnectionPolicyPscConfigArgs
        {
            Subnetworks = new[]
            {
                consumerSubnet.Id,
            },
        },
    });

    var cluster_ha = new Gcp.Redis.Cluster("cluster-ha", new()
    {
        Name = "ha-cluster",
        ShardCount = 3,
        PscConfigs = new[]
        {
            new Gcp.Redis.Inputs.ClusterPscConfigArgs
            {
                Network = consumerNet.Id,
            },
        },
        Region = "us-central1",
        ReplicaCount = 1,
        NodeType = "REDIS_SHARED_CORE_NANO",
        TransitEncryptionMode = "TRANSIT_ENCRYPTION_MODE_DISABLED",
        AuthorizationMode = "AUTH_MODE_DISABLED",
        RedisConfigs = 
        {
            { "maxmemory-policy", "volatile-ttl" },
        },
        DeletionProtectionEnabled = true,
        ZoneDistributionConfig = new Gcp.Redis.Inputs.ClusterZoneDistributionConfigArgs
        {
            Mode = "MULTI_ZONE",
        },
        MaintenancePolicy = new Gcp.Redis.Inputs.ClusterMaintenancePolicyArgs
        {
            WeeklyMaintenanceWindows = new[]
            {
                new Gcp.Redis.Inputs.ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs
                {
                    Day = "MONDAY",
                    StartTime = new Gcp.Redis.Inputs.ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs
                    {
                        Hours = 1,
                        Minutes = 0,
                        Seconds = 0,
                        Nanos = 0,
                    },
                },
            },
        },
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            @default,
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.networkconnectivity.ServiceConnectionPolicy;
import com.pulumi.gcp.networkconnectivity.ServiceConnectionPolicyArgs;
import com.pulumi.gcp.networkconnectivity.inputs.ServiceConnectionPolicyPscConfigArgs;
import com.pulumi.gcp.redis.Cluster;
import com.pulumi.gcp.redis.ClusterArgs;
import com.pulumi.gcp.redis.inputs.ClusterPscConfigArgs;
import com.pulumi.gcp.redis.inputs.ClusterZoneDistributionConfigArgs;
import com.pulumi.gcp.redis.inputs.ClusterMaintenancePolicyArgs;
import com.pulumi.resources.CustomResourceOptions;
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 consumerNet = new Network("consumerNet", NetworkArgs.builder()
            .name("my-network")
            .autoCreateSubnetworks(false)
            .build());

        var consumerSubnet = new Subnetwork("consumerSubnet", SubnetworkArgs.builder()
            .name("my-subnet")
            .ipCidrRange("10.0.0.248/29")
            .region("us-central1")
            .network(consumerNet.id())
            .build());

        var default_ = new ServiceConnectionPolicy("default", ServiceConnectionPolicyArgs.builder()
            .name("my-policy")
            .location("us-central1")
            .serviceClass("gcp-memorystore-redis")
            .description("my basic service connection policy")
            .network(consumerNet.id())
            .pscConfig(ServiceConnectionPolicyPscConfigArgs.builder()
                .subnetworks(consumerSubnet.id())
                .build())
            .build());

        var cluster_ha = new Cluster("cluster-ha", ClusterArgs.builder()
            .name("ha-cluster")
            .shardCount(3)
            .pscConfigs(ClusterPscConfigArgs.builder()
                .network(consumerNet.id())
                .build())
            .region("us-central1")
            .replicaCount(1)
            .nodeType("REDIS_SHARED_CORE_NANO")
            .transitEncryptionMode("TRANSIT_ENCRYPTION_MODE_DISABLED")
            .authorizationMode("AUTH_MODE_DISABLED")
            .redisConfigs(Map.of("maxmemory-policy", "volatile-ttl"))
            .deletionProtectionEnabled(true)
            .zoneDistributionConfig(ClusterZoneDistributionConfigArgs.builder()
                .mode("MULTI_ZONE")
                .build())
            .maintenancePolicy(ClusterMaintenancePolicyArgs.builder()
                .weeklyMaintenanceWindows(ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs.builder()
                    .day("MONDAY")
                    .startTime(ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs.builder()
                        .hours(1)
                        .minutes(0)
                        .seconds(0)
                        .nanos(0)
                        .build())
                    .build())
                .build())
            .build(), CustomResourceOptions.builder()
                .dependsOn(default_)
                .build());

    }
}
Copy
resources:
  cluster-ha:
    type: gcp:redis:Cluster
    properties:
      name: ha-cluster
      shardCount: 3
      pscConfigs:
        - network: ${consumerNet.id}
      region: us-central1
      replicaCount: 1
      nodeType: REDIS_SHARED_CORE_NANO
      transitEncryptionMode: TRANSIT_ENCRYPTION_MODE_DISABLED
      authorizationMode: AUTH_MODE_DISABLED
      redisConfigs:
        maxmemory-policy: volatile-ttl
      deletionProtectionEnabled: true
      zoneDistributionConfig:
        mode: MULTI_ZONE
      maintenancePolicy:
        weeklyMaintenanceWindows:
          - day: MONDAY
            startTime:
              hours: 1
              minutes: 0
              seconds: 0
              nanos: 0
    options:
      dependsOn:
        - ${default}
  default:
    type: gcp:networkconnectivity:ServiceConnectionPolicy
    properties:
      name: my-policy
      location: us-central1
      serviceClass: gcp-memorystore-redis
      description: my basic service connection policy
      network: ${consumerNet.id}
      pscConfig:
        subnetworks:
          - ${consumerSubnet.id}
  consumerSubnet:
    type: gcp:compute:Subnetwork
    name: consumer_subnet
    properties:
      name: my-subnet
      ipCidrRange: 10.0.0.248/29
      region: us-central1
      network: ${consumerNet.id}
  consumerNet:
    type: gcp:compute:Network
    name: consumer_net
    properties:
      name: my-network
      autoCreateSubnetworks: false
Copy

Redis Cluster Ha Single Zone

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const consumerNet = new gcp.compute.Network("consumer_net", {
    name: "my-network",
    autoCreateSubnetworks: false,
});
const consumerSubnet = new gcp.compute.Subnetwork("consumer_subnet", {
    name: "my-subnet",
    ipCidrRange: "10.0.0.248/29",
    region: "us-central1",
    network: consumerNet.id,
});
const _default = new gcp.networkconnectivity.ServiceConnectionPolicy("default", {
    name: "my-policy",
    location: "us-central1",
    serviceClass: "gcp-memorystore-redis",
    description: "my basic service connection policy",
    network: consumerNet.id,
    pscConfig: {
        subnetworks: [consumerSubnet.id],
    },
});
const cluster_ha_single_zone = new gcp.redis.Cluster("cluster-ha-single-zone", {
    name: "ha-cluster-single-zone",
    shardCount: 3,
    pscConfigs: [{
        network: consumerNet.id,
    }],
    region: "us-central1",
    zoneDistributionConfig: {
        mode: "SINGLE_ZONE",
        zone: "us-central1-f",
    },
    maintenancePolicy: {
        weeklyMaintenanceWindows: [{
            day: "MONDAY",
            startTime: {
                hours: 1,
                minutes: 0,
                seconds: 0,
                nanos: 0,
            },
        }],
    },
    deletionProtectionEnabled: true,
}, {
    dependsOn: [_default],
});
Copy
import pulumi
import pulumi_gcp as gcp

consumer_net = gcp.compute.Network("consumer_net",
    name="my-network",
    auto_create_subnetworks=False)
consumer_subnet = gcp.compute.Subnetwork("consumer_subnet",
    name="my-subnet",
    ip_cidr_range="10.0.0.248/29",
    region="us-central1",
    network=consumer_net.id)
default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
    name="my-policy",
    location="us-central1",
    service_class="gcp-memorystore-redis",
    description="my basic service connection policy",
    network=consumer_net.id,
    psc_config={
        "subnetworks": [consumer_subnet.id],
    })
cluster_ha_single_zone = gcp.redis.Cluster("cluster-ha-single-zone",
    name="ha-cluster-single-zone",
    shard_count=3,
    psc_configs=[{
        "network": consumer_net.id,
    }],
    region="us-central1",
    zone_distribution_config={
        "mode": "SINGLE_ZONE",
        "zone": "us-central1-f",
    },
    maintenance_policy={
        "weekly_maintenance_windows": [{
            "day": "MONDAY",
            "start_time": {
                "hours": 1,
                "minutes": 0,
                "seconds": 0,
                "nanos": 0,
            },
        }],
    },
    deletion_protection_enabled=True,
    opts = pulumi.ResourceOptions(depends_on=[default]))
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/networkconnectivity"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/redis"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		consumerNet, err := compute.NewNetwork(ctx, "consumer_net", &compute.NetworkArgs{
			Name:                  pulumi.String("my-network"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		consumerSubnet, err := compute.NewSubnetwork(ctx, "consumer_subnet", &compute.SubnetworkArgs{
			Name:        pulumi.String("my-subnet"),
			IpCidrRange: pulumi.String("10.0.0.248/29"),
			Region:      pulumi.String("us-central1"),
			Network:     consumerNet.ID(),
		})
		if err != nil {
			return err
		}
		_default, err := networkconnectivity.NewServiceConnectionPolicy(ctx, "default", &networkconnectivity.ServiceConnectionPolicyArgs{
			Name:         pulumi.String("my-policy"),
			Location:     pulumi.String("us-central1"),
			ServiceClass: pulumi.String("gcp-memorystore-redis"),
			Description:  pulumi.String("my basic service connection policy"),
			Network:      consumerNet.ID(),
			PscConfig: &networkconnectivity.ServiceConnectionPolicyPscConfigArgs{
				Subnetworks: pulumi.StringArray{
					consumerSubnet.ID(),
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = redis.NewCluster(ctx, "cluster-ha-single-zone", &redis.ClusterArgs{
			Name:       pulumi.String("ha-cluster-single-zone"),
			ShardCount: pulumi.Int(3),
			PscConfigs: redis.ClusterPscConfigArray{
				&redis.ClusterPscConfigArgs{
					Network: consumerNet.ID(),
				},
			},
			Region: pulumi.String("us-central1"),
			ZoneDistributionConfig: &redis.ClusterZoneDistributionConfigArgs{
				Mode: pulumi.String("SINGLE_ZONE"),
				Zone: pulumi.String("us-central1-f"),
			},
			MaintenancePolicy: &redis.ClusterMaintenancePolicyArgs{
				WeeklyMaintenanceWindows: redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowArray{
					&redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs{
						Day: pulumi.String("MONDAY"),
						StartTime: &redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs{
							Hours:   pulumi.Int(1),
							Minutes: pulumi.Int(0),
							Seconds: pulumi.Int(0),
							Nanos:   pulumi.Int(0),
						},
					},
				},
			},
			DeletionProtectionEnabled: pulumi.Bool(true),
		}, pulumi.DependsOn([]pulumi.Resource{
			_default,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var consumerNet = new Gcp.Compute.Network("consumer_net", new()
    {
        Name = "my-network",
        AutoCreateSubnetworks = false,
    });

    var consumerSubnet = new Gcp.Compute.Subnetwork("consumer_subnet", new()
    {
        Name = "my-subnet",
        IpCidrRange = "10.0.0.248/29",
        Region = "us-central1",
        Network = consumerNet.Id,
    });

    var @default = new Gcp.NetworkConnectivity.ServiceConnectionPolicy("default", new()
    {
        Name = "my-policy",
        Location = "us-central1",
        ServiceClass = "gcp-memorystore-redis",
        Description = "my basic service connection policy",
        Network = consumerNet.Id,
        PscConfig = new Gcp.NetworkConnectivity.Inputs.ServiceConnectionPolicyPscConfigArgs
        {
            Subnetworks = new[]
            {
                consumerSubnet.Id,
            },
        },
    });

    var cluster_ha_single_zone = new Gcp.Redis.Cluster("cluster-ha-single-zone", new()
    {
        Name = "ha-cluster-single-zone",
        ShardCount = 3,
        PscConfigs = new[]
        {
            new Gcp.Redis.Inputs.ClusterPscConfigArgs
            {
                Network = consumerNet.Id,
            },
        },
        Region = "us-central1",
        ZoneDistributionConfig = new Gcp.Redis.Inputs.ClusterZoneDistributionConfigArgs
        {
            Mode = "SINGLE_ZONE",
            Zone = "us-central1-f",
        },
        MaintenancePolicy = new Gcp.Redis.Inputs.ClusterMaintenancePolicyArgs
        {
            WeeklyMaintenanceWindows = new[]
            {
                new Gcp.Redis.Inputs.ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs
                {
                    Day = "MONDAY",
                    StartTime = new Gcp.Redis.Inputs.ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs
                    {
                        Hours = 1,
                        Minutes = 0,
                        Seconds = 0,
                        Nanos = 0,
                    },
                },
            },
        },
        DeletionProtectionEnabled = true,
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            @default,
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.networkconnectivity.ServiceConnectionPolicy;
import com.pulumi.gcp.networkconnectivity.ServiceConnectionPolicyArgs;
import com.pulumi.gcp.networkconnectivity.inputs.ServiceConnectionPolicyPscConfigArgs;
import com.pulumi.gcp.redis.Cluster;
import com.pulumi.gcp.redis.ClusterArgs;
import com.pulumi.gcp.redis.inputs.ClusterPscConfigArgs;
import com.pulumi.gcp.redis.inputs.ClusterZoneDistributionConfigArgs;
import com.pulumi.gcp.redis.inputs.ClusterMaintenancePolicyArgs;
import com.pulumi.resources.CustomResourceOptions;
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 consumerNet = new Network("consumerNet", NetworkArgs.builder()
            .name("my-network")
            .autoCreateSubnetworks(false)
            .build());

        var consumerSubnet = new Subnetwork("consumerSubnet", SubnetworkArgs.builder()
            .name("my-subnet")
            .ipCidrRange("10.0.0.248/29")
            .region("us-central1")
            .network(consumerNet.id())
            .build());

        var default_ = new ServiceConnectionPolicy("default", ServiceConnectionPolicyArgs.builder()
            .name("my-policy")
            .location("us-central1")
            .serviceClass("gcp-memorystore-redis")
            .description("my basic service connection policy")
            .network(consumerNet.id())
            .pscConfig(ServiceConnectionPolicyPscConfigArgs.builder()
                .subnetworks(consumerSubnet.id())
                .build())
            .build());

        var cluster_ha_single_zone = new Cluster("cluster-ha-single-zone", ClusterArgs.builder()
            .name("ha-cluster-single-zone")
            .shardCount(3)
            .pscConfigs(ClusterPscConfigArgs.builder()
                .network(consumerNet.id())
                .build())
            .region("us-central1")
            .zoneDistributionConfig(ClusterZoneDistributionConfigArgs.builder()
                .mode("SINGLE_ZONE")
                .zone("us-central1-f")
                .build())
            .maintenancePolicy(ClusterMaintenancePolicyArgs.builder()
                .weeklyMaintenanceWindows(ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs.builder()
                    .day("MONDAY")
                    .startTime(ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs.builder()
                        .hours(1)
                        .minutes(0)
                        .seconds(0)
                        .nanos(0)
                        .build())
                    .build())
                .build())
            .deletionProtectionEnabled(true)
            .build(), CustomResourceOptions.builder()
                .dependsOn(default_)
                .build());

    }
}
Copy
resources:
  cluster-ha-single-zone:
    type: gcp:redis:Cluster
    properties:
      name: ha-cluster-single-zone
      shardCount: 3
      pscConfigs:
        - network: ${consumerNet.id}
      region: us-central1
      zoneDistributionConfig:
        mode: SINGLE_ZONE
        zone: us-central1-f
      maintenancePolicy:
        weeklyMaintenanceWindows:
          - day: MONDAY
            startTime:
              hours: 1
              minutes: 0
              seconds: 0
              nanos: 0
      deletionProtectionEnabled: true
    options:
      dependsOn:
        - ${default}
  default:
    type: gcp:networkconnectivity:ServiceConnectionPolicy
    properties:
      name: my-policy
      location: us-central1
      serviceClass: gcp-memorystore-redis
      description: my basic service connection policy
      network: ${consumerNet.id}
      pscConfig:
        subnetworks:
          - ${consumerSubnet.id}
  consumerSubnet:
    type: gcp:compute:Subnetwork
    name: consumer_subnet
    properties:
      name: my-subnet
      ipCidrRange: 10.0.0.248/29
      region: us-central1
      network: ${consumerNet.id}
  consumerNet:
    type: gcp:compute:Network
    name: consumer_net
    properties:
      name: my-network
      autoCreateSubnetworks: false
Copy

Redis Cluster Secondary

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const consumerNet = new gcp.compute.Network("consumer_net", {
    name: "mynetwork",
    autoCreateSubnetworks: false,
});
const primaryClusterConsumerSubnet = new gcp.compute.Subnetwork("primary_cluster_consumer_subnet", {
    name: "mysubnet-primary-cluster",
    ipCidrRange: "10.0.1.0/29",
    region: "us-east1",
    network: consumerNet.id,
});
const primaryClusterRegionScp = new gcp.networkconnectivity.ServiceConnectionPolicy("primary_cluster_region_scp", {
    name: "mypolicy-primary-cluster",
    location: "us-east1",
    serviceClass: "gcp-memorystore-redis",
    description: "Primary cluster service connection policy",
    network: consumerNet.id,
    pscConfig: {
        subnetworks: [primaryClusterConsumerSubnet.id],
    },
});
// Primary cluster
const primaryCluster = new gcp.redis.Cluster("primary_cluster", {
    name: "my-primary-cluster",
    region: "us-east1",
    pscConfigs: [{
        network: consumerNet.id,
    }],
    authorizationMode: "AUTH_MODE_DISABLED",
    transitEncryptionMode: "TRANSIT_ENCRYPTION_MODE_DISABLED",
    shardCount: 3,
    redisConfigs: {
        "maxmemory-policy": "volatile-ttl",
    },
    nodeType: "REDIS_HIGHMEM_MEDIUM",
    persistenceConfig: {
        mode: "RDB",
        rdbConfig: {
            rdbSnapshotPeriod: "ONE_HOUR",
            rdbSnapshotStartTime: "2024-10-02T15:01:23Z",
        },
    },
    zoneDistributionConfig: {
        mode: "MULTI_ZONE",
    },
    replicaCount: 1,
    maintenancePolicy: {
        weeklyMaintenanceWindows: [{
            day: "MONDAY",
            startTime: {
                hours: 1,
                minutes: 0,
                seconds: 0,
                nanos: 0,
            },
        }],
    },
    deletionProtectionEnabled: true,
}, {
    dependsOn: [primaryClusterRegionScp],
});
const secondaryClusterConsumerSubnet = new gcp.compute.Subnetwork("secondary_cluster_consumer_subnet", {
    name: "mysubnet-secondary-cluster",
    ipCidrRange: "10.0.2.0/29",
    region: "europe-west1",
    network: consumerNet.id,
});
const secondaryClusterRegionScp = new gcp.networkconnectivity.ServiceConnectionPolicy("secondary_cluster_region_scp", {
    name: "mypolicy-secondary-cluster",
    location: "europe-west1",
    serviceClass: "gcp-memorystore-redis",
    description: "Secondary cluster service connection policy",
    network: consumerNet.id,
    pscConfig: {
        subnetworks: [secondaryClusterConsumerSubnet.id],
    },
});
// Secondary cluster
const secondaryCluster = new gcp.redis.Cluster("secondary_cluster", {
    name: "my-secondary-cluster",
    region: "europe-west1",
    pscConfigs: [{
        network: consumerNet.id,
    }],
    authorizationMode: "AUTH_MODE_DISABLED",
    transitEncryptionMode: "TRANSIT_ENCRYPTION_MODE_DISABLED",
    shardCount: 3,
    redisConfigs: {
        "maxmemory-policy": "volatile-ttl",
    },
    nodeType: "REDIS_HIGHMEM_MEDIUM",
    persistenceConfig: {
        mode: "RDB",
        rdbConfig: {
            rdbSnapshotPeriod: "ONE_HOUR",
            rdbSnapshotStartTime: "2024-10-02T15:01:23Z",
        },
    },
    zoneDistributionConfig: {
        mode: "MULTI_ZONE",
    },
    replicaCount: 2,
    maintenancePolicy: {
        weeklyMaintenanceWindows: [{
            day: "WEDNESDAY",
            startTime: {
                hours: 1,
                minutes: 0,
                seconds: 0,
                nanos: 0,
            },
        }],
    },
    deletionProtectionEnabled: true,
    crossClusterReplicationConfig: {
        clusterRole: "SECONDARY",
        primaryCluster: {
            cluster: primaryCluster.id,
        },
    },
}, {
    dependsOn: [secondaryClusterRegionScp],
});
Copy
import pulumi
import pulumi_gcp as gcp

consumer_net = gcp.compute.Network("consumer_net",
    name="mynetwork",
    auto_create_subnetworks=False)
primary_cluster_consumer_subnet = gcp.compute.Subnetwork("primary_cluster_consumer_subnet",
    name="mysubnet-primary-cluster",
    ip_cidr_range="10.0.1.0/29",
    region="us-east1",
    network=consumer_net.id)
primary_cluster_region_scp = gcp.networkconnectivity.ServiceConnectionPolicy("primary_cluster_region_scp",
    name="mypolicy-primary-cluster",
    location="us-east1",
    service_class="gcp-memorystore-redis",
    description="Primary cluster service connection policy",
    network=consumer_net.id,
    psc_config={
        "subnetworks": [primary_cluster_consumer_subnet.id],
    })
# Primary cluster
primary_cluster = gcp.redis.Cluster("primary_cluster",
    name="my-primary-cluster",
    region="us-east1",
    psc_configs=[{
        "network": consumer_net.id,
    }],
    authorization_mode="AUTH_MODE_DISABLED",
    transit_encryption_mode="TRANSIT_ENCRYPTION_MODE_DISABLED",
    shard_count=3,
    redis_configs={
        "maxmemory-policy": "volatile-ttl",
    },
    node_type="REDIS_HIGHMEM_MEDIUM",
    persistence_config={
        "mode": "RDB",
        "rdb_config": {
            "rdb_snapshot_period": "ONE_HOUR",
            "rdb_snapshot_start_time": "2024-10-02T15:01:23Z",
        },
    },
    zone_distribution_config={
        "mode": "MULTI_ZONE",
    },
    replica_count=1,
    maintenance_policy={
        "weekly_maintenance_windows": [{
            "day": "MONDAY",
            "start_time": {
                "hours": 1,
                "minutes": 0,
                "seconds": 0,
                "nanos": 0,
            },
        }],
    },
    deletion_protection_enabled=True,
    opts = pulumi.ResourceOptions(depends_on=[primary_cluster_region_scp]))
secondary_cluster_consumer_subnet = gcp.compute.Subnetwork("secondary_cluster_consumer_subnet",
    name="mysubnet-secondary-cluster",
    ip_cidr_range="10.0.2.0/29",
    region="europe-west1",
    network=consumer_net.id)
secondary_cluster_region_scp = gcp.networkconnectivity.ServiceConnectionPolicy("secondary_cluster_region_scp",
    name="mypolicy-secondary-cluster",
    location="europe-west1",
    service_class="gcp-memorystore-redis",
    description="Secondary cluster service connection policy",
    network=consumer_net.id,
    psc_config={
        "subnetworks": [secondary_cluster_consumer_subnet.id],
    })
# Secondary cluster
secondary_cluster = gcp.redis.Cluster("secondary_cluster",
    name="my-secondary-cluster",
    region="europe-west1",
    psc_configs=[{
        "network": consumer_net.id,
    }],
    authorization_mode="AUTH_MODE_DISABLED",
    transit_encryption_mode="TRANSIT_ENCRYPTION_MODE_DISABLED",
    shard_count=3,
    redis_configs={
        "maxmemory-policy": "volatile-ttl",
    },
    node_type="REDIS_HIGHMEM_MEDIUM",
    persistence_config={
        "mode": "RDB",
        "rdb_config": {
            "rdb_snapshot_period": "ONE_HOUR",
            "rdb_snapshot_start_time": "2024-10-02T15:01:23Z",
        },
    },
    zone_distribution_config={
        "mode": "MULTI_ZONE",
    },
    replica_count=2,
    maintenance_policy={
        "weekly_maintenance_windows": [{
            "day": "WEDNESDAY",
            "start_time": {
                "hours": 1,
                "minutes": 0,
                "seconds": 0,
                "nanos": 0,
            },
        }],
    },
    deletion_protection_enabled=True,
    cross_cluster_replication_config={
        "cluster_role": "SECONDARY",
        "primary_cluster": {
            "cluster": primary_cluster.id,
        },
    },
    opts = pulumi.ResourceOptions(depends_on=[secondary_cluster_region_scp]))
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/networkconnectivity"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/redis"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		consumerNet, err := compute.NewNetwork(ctx, "consumer_net", &compute.NetworkArgs{
			Name:                  pulumi.String("mynetwork"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		primaryClusterConsumerSubnet, err := compute.NewSubnetwork(ctx, "primary_cluster_consumer_subnet", &compute.SubnetworkArgs{
			Name:        pulumi.String("mysubnet-primary-cluster"),
			IpCidrRange: pulumi.String("10.0.1.0/29"),
			Region:      pulumi.String("us-east1"),
			Network:     consumerNet.ID(),
		})
		if err != nil {
			return err
		}
		primaryClusterRegionScp, err := networkconnectivity.NewServiceConnectionPolicy(ctx, "primary_cluster_region_scp", &networkconnectivity.ServiceConnectionPolicyArgs{
			Name:         pulumi.String("mypolicy-primary-cluster"),
			Location:     pulumi.String("us-east1"),
			ServiceClass: pulumi.String("gcp-memorystore-redis"),
			Description:  pulumi.String("Primary cluster service connection policy"),
			Network:      consumerNet.ID(),
			PscConfig: &networkconnectivity.ServiceConnectionPolicyPscConfigArgs{
				Subnetworks: pulumi.StringArray{
					primaryClusterConsumerSubnet.ID(),
				},
			},
		})
		if err != nil {
			return err
		}
		// Primary cluster
		primaryCluster, err := redis.NewCluster(ctx, "primary_cluster", &redis.ClusterArgs{
			Name:   pulumi.String("my-primary-cluster"),
			Region: pulumi.String("us-east1"),
			PscConfigs: redis.ClusterPscConfigArray{
				&redis.ClusterPscConfigArgs{
					Network: consumerNet.ID(),
				},
			},
			AuthorizationMode:     pulumi.String("AUTH_MODE_DISABLED"),
			TransitEncryptionMode: pulumi.String("TRANSIT_ENCRYPTION_MODE_DISABLED"),
			ShardCount:            pulumi.Int(3),
			RedisConfigs: pulumi.StringMap{
				"maxmemory-policy": pulumi.String("volatile-ttl"),
			},
			NodeType: pulumi.String("REDIS_HIGHMEM_MEDIUM"),
			PersistenceConfig: &redis.ClusterPersistenceConfigArgs{
				Mode: pulumi.String("RDB"),
				RdbConfig: &redis.ClusterPersistenceConfigRdbConfigArgs{
					RdbSnapshotPeriod:    pulumi.String("ONE_HOUR"),
					RdbSnapshotStartTime: pulumi.String("2024-10-02T15:01:23Z"),
				},
			},
			ZoneDistributionConfig: &redis.ClusterZoneDistributionConfigArgs{
				Mode: pulumi.String("MULTI_ZONE"),
			},
			ReplicaCount: pulumi.Int(1),
			MaintenancePolicy: &redis.ClusterMaintenancePolicyArgs{
				WeeklyMaintenanceWindows: redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowArray{
					&redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs{
						Day: pulumi.String("MONDAY"),
						StartTime: &redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs{
							Hours:   pulumi.Int(1),
							Minutes: pulumi.Int(0),
							Seconds: pulumi.Int(0),
							Nanos:   pulumi.Int(0),
						},
					},
				},
			},
			DeletionProtectionEnabled: pulumi.Bool(true),
		}, pulumi.DependsOn([]pulumi.Resource{
			primaryClusterRegionScp,
		}))
		if err != nil {
			return err
		}
		secondaryClusterConsumerSubnet, err := compute.NewSubnetwork(ctx, "secondary_cluster_consumer_subnet", &compute.SubnetworkArgs{
			Name:        pulumi.String("mysubnet-secondary-cluster"),
			IpCidrRange: pulumi.String("10.0.2.0/29"),
			Region:      pulumi.String("europe-west1"),
			Network:     consumerNet.ID(),
		})
		if err != nil {
			return err
		}
		secondaryClusterRegionScp, err := networkconnectivity.NewServiceConnectionPolicy(ctx, "secondary_cluster_region_scp", &networkconnectivity.ServiceConnectionPolicyArgs{
			Name:         pulumi.String("mypolicy-secondary-cluster"),
			Location:     pulumi.String("europe-west1"),
			ServiceClass: pulumi.String("gcp-memorystore-redis"),
			Description:  pulumi.String("Secondary cluster service connection policy"),
			Network:      consumerNet.ID(),
			PscConfig: &networkconnectivity.ServiceConnectionPolicyPscConfigArgs{
				Subnetworks: pulumi.StringArray{
					secondaryClusterConsumerSubnet.ID(),
				},
			},
		})
		if err != nil {
			return err
		}
		// Secondary cluster
		_, err = redis.NewCluster(ctx, "secondary_cluster", &redis.ClusterArgs{
			Name:   pulumi.String("my-secondary-cluster"),
			Region: pulumi.String("europe-west1"),
			PscConfigs: redis.ClusterPscConfigArray{
				&redis.ClusterPscConfigArgs{
					Network: consumerNet.ID(),
				},
			},
			AuthorizationMode:     pulumi.String("AUTH_MODE_DISABLED"),
			TransitEncryptionMode: pulumi.String("TRANSIT_ENCRYPTION_MODE_DISABLED"),
			ShardCount:            pulumi.Int(3),
			RedisConfigs: pulumi.StringMap{
				"maxmemory-policy": pulumi.String("volatile-ttl"),
			},
			NodeType: pulumi.String("REDIS_HIGHMEM_MEDIUM"),
			PersistenceConfig: &redis.ClusterPersistenceConfigArgs{
				Mode: pulumi.String("RDB"),
				RdbConfig: &redis.ClusterPersistenceConfigRdbConfigArgs{
					RdbSnapshotPeriod:    pulumi.String("ONE_HOUR"),
					RdbSnapshotStartTime: pulumi.String("2024-10-02T15:01:23Z"),
				},
			},
			ZoneDistributionConfig: &redis.ClusterZoneDistributionConfigArgs{
				Mode: pulumi.String("MULTI_ZONE"),
			},
			ReplicaCount: pulumi.Int(2),
			MaintenancePolicy: &redis.ClusterMaintenancePolicyArgs{
				WeeklyMaintenanceWindows: redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowArray{
					&redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs{
						Day: pulumi.String("WEDNESDAY"),
						StartTime: &redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs{
							Hours:   pulumi.Int(1),
							Minutes: pulumi.Int(0),
							Seconds: pulumi.Int(0),
							Nanos:   pulumi.Int(0),
						},
					},
				},
			},
			DeletionProtectionEnabled: pulumi.Bool(true),
			CrossClusterReplicationConfig: &redis.ClusterCrossClusterReplicationConfigArgs{
				ClusterRole: pulumi.String("SECONDARY"),
				PrimaryCluster: &redis.ClusterCrossClusterReplicationConfigPrimaryClusterArgs{
					Cluster: primaryCluster.ID(),
				},
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			secondaryClusterRegionScp,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var consumerNet = new Gcp.Compute.Network("consumer_net", new()
    {
        Name = "mynetwork",
        AutoCreateSubnetworks = false,
    });

    var primaryClusterConsumerSubnet = new Gcp.Compute.Subnetwork("primary_cluster_consumer_subnet", new()
    {
        Name = "mysubnet-primary-cluster",
        IpCidrRange = "10.0.1.0/29",
        Region = "us-east1",
        Network = consumerNet.Id,
    });

    var primaryClusterRegionScp = new Gcp.NetworkConnectivity.ServiceConnectionPolicy("primary_cluster_region_scp", new()
    {
        Name = "mypolicy-primary-cluster",
        Location = "us-east1",
        ServiceClass = "gcp-memorystore-redis",
        Description = "Primary cluster service connection policy",
        Network = consumerNet.Id,
        PscConfig = new Gcp.NetworkConnectivity.Inputs.ServiceConnectionPolicyPscConfigArgs
        {
            Subnetworks = new[]
            {
                primaryClusterConsumerSubnet.Id,
            },
        },
    });

    // Primary cluster
    var primaryCluster = new Gcp.Redis.Cluster("primary_cluster", new()
    {
        Name = "my-primary-cluster",
        Region = "us-east1",
        PscConfigs = new[]
        {
            new Gcp.Redis.Inputs.ClusterPscConfigArgs
            {
                Network = consumerNet.Id,
            },
        },
        AuthorizationMode = "AUTH_MODE_DISABLED",
        TransitEncryptionMode = "TRANSIT_ENCRYPTION_MODE_DISABLED",
        ShardCount = 3,
        RedisConfigs = 
        {
            { "maxmemory-policy", "volatile-ttl" },
        },
        NodeType = "REDIS_HIGHMEM_MEDIUM",
        PersistenceConfig = new Gcp.Redis.Inputs.ClusterPersistenceConfigArgs
        {
            Mode = "RDB",
            RdbConfig = new Gcp.Redis.Inputs.ClusterPersistenceConfigRdbConfigArgs
            {
                RdbSnapshotPeriod = "ONE_HOUR",
                RdbSnapshotStartTime = "2024-10-02T15:01:23Z",
            },
        },
        ZoneDistributionConfig = new Gcp.Redis.Inputs.ClusterZoneDistributionConfigArgs
        {
            Mode = "MULTI_ZONE",
        },
        ReplicaCount = 1,
        MaintenancePolicy = new Gcp.Redis.Inputs.ClusterMaintenancePolicyArgs
        {
            WeeklyMaintenanceWindows = new[]
            {
                new Gcp.Redis.Inputs.ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs
                {
                    Day = "MONDAY",
                    StartTime = new Gcp.Redis.Inputs.ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs
                    {
                        Hours = 1,
                        Minutes = 0,
                        Seconds = 0,
                        Nanos = 0,
                    },
                },
            },
        },
        DeletionProtectionEnabled = true,
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            primaryClusterRegionScp,
        },
    });

    var secondaryClusterConsumerSubnet = new Gcp.Compute.Subnetwork("secondary_cluster_consumer_subnet", new()
    {
        Name = "mysubnet-secondary-cluster",
        IpCidrRange = "10.0.2.0/29",
        Region = "europe-west1",
        Network = consumerNet.Id,
    });

    var secondaryClusterRegionScp = new Gcp.NetworkConnectivity.ServiceConnectionPolicy("secondary_cluster_region_scp", new()
    {
        Name = "mypolicy-secondary-cluster",
        Location = "europe-west1",
        ServiceClass = "gcp-memorystore-redis",
        Description = "Secondary cluster service connection policy",
        Network = consumerNet.Id,
        PscConfig = new Gcp.NetworkConnectivity.Inputs.ServiceConnectionPolicyPscConfigArgs
        {
            Subnetworks = new[]
            {
                secondaryClusterConsumerSubnet.Id,
            },
        },
    });

    // Secondary cluster
    var secondaryCluster = new Gcp.Redis.Cluster("secondary_cluster", new()
    {
        Name = "my-secondary-cluster",
        Region = "europe-west1",
        PscConfigs = new[]
        {
            new Gcp.Redis.Inputs.ClusterPscConfigArgs
            {
                Network = consumerNet.Id,
            },
        },
        AuthorizationMode = "AUTH_MODE_DISABLED",
        TransitEncryptionMode = "TRANSIT_ENCRYPTION_MODE_DISABLED",
        ShardCount = 3,
        RedisConfigs = 
        {
            { "maxmemory-policy", "volatile-ttl" },
        },
        NodeType = "REDIS_HIGHMEM_MEDIUM",
        PersistenceConfig = new Gcp.Redis.Inputs.ClusterPersistenceConfigArgs
        {
            Mode = "RDB",
            RdbConfig = new Gcp.Redis.Inputs.ClusterPersistenceConfigRdbConfigArgs
            {
                RdbSnapshotPeriod = "ONE_HOUR",
                RdbSnapshotStartTime = "2024-10-02T15:01:23Z",
            },
        },
        ZoneDistributionConfig = new Gcp.Redis.Inputs.ClusterZoneDistributionConfigArgs
        {
            Mode = "MULTI_ZONE",
        },
        ReplicaCount = 2,
        MaintenancePolicy = new Gcp.Redis.Inputs.ClusterMaintenancePolicyArgs
        {
            WeeklyMaintenanceWindows = new[]
            {
                new Gcp.Redis.Inputs.ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs
                {
                    Day = "WEDNESDAY",
                    StartTime = new Gcp.Redis.Inputs.ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs
                    {
                        Hours = 1,
                        Minutes = 0,
                        Seconds = 0,
                        Nanos = 0,
                    },
                },
            },
        },
        DeletionProtectionEnabled = true,
        CrossClusterReplicationConfig = new Gcp.Redis.Inputs.ClusterCrossClusterReplicationConfigArgs
        {
            ClusterRole = "SECONDARY",
            PrimaryCluster = new Gcp.Redis.Inputs.ClusterCrossClusterReplicationConfigPrimaryClusterArgs
            {
                Cluster = primaryCluster.Id,
            },
        },
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            secondaryClusterRegionScp,
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.networkconnectivity.ServiceConnectionPolicy;
import com.pulumi.gcp.networkconnectivity.ServiceConnectionPolicyArgs;
import com.pulumi.gcp.networkconnectivity.inputs.ServiceConnectionPolicyPscConfigArgs;
import com.pulumi.gcp.redis.Cluster;
import com.pulumi.gcp.redis.ClusterArgs;
import com.pulumi.gcp.redis.inputs.ClusterPscConfigArgs;
import com.pulumi.gcp.redis.inputs.ClusterPersistenceConfigArgs;
import com.pulumi.gcp.redis.inputs.ClusterPersistenceConfigRdbConfigArgs;
import com.pulumi.gcp.redis.inputs.ClusterZoneDistributionConfigArgs;
import com.pulumi.gcp.redis.inputs.ClusterMaintenancePolicyArgs;
import com.pulumi.gcp.redis.inputs.ClusterCrossClusterReplicationConfigArgs;
import com.pulumi.gcp.redis.inputs.ClusterCrossClusterReplicationConfigPrimaryClusterArgs;
import com.pulumi.resources.CustomResourceOptions;
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 consumerNet = new Network("consumerNet", NetworkArgs.builder()
            .name("mynetwork")
            .autoCreateSubnetworks(false)
            .build());

        var primaryClusterConsumerSubnet = new Subnetwork("primaryClusterConsumerSubnet", SubnetworkArgs.builder()
            .name("mysubnet-primary-cluster")
            .ipCidrRange("10.0.1.0/29")
            .region("us-east1")
            .network(consumerNet.id())
            .build());

        var primaryClusterRegionScp = new ServiceConnectionPolicy("primaryClusterRegionScp", ServiceConnectionPolicyArgs.builder()
            .name("mypolicy-primary-cluster")
            .location("us-east1")
            .serviceClass("gcp-memorystore-redis")
            .description("Primary cluster service connection policy")
            .network(consumerNet.id())
            .pscConfig(ServiceConnectionPolicyPscConfigArgs.builder()
                .subnetworks(primaryClusterConsumerSubnet.id())
                .build())
            .build());

        // Primary cluster
        var primaryCluster = new Cluster("primaryCluster", ClusterArgs.builder()
            .name("my-primary-cluster")
            .region("us-east1")
            .pscConfigs(ClusterPscConfigArgs.builder()
                .network(consumerNet.id())
                .build())
            .authorizationMode("AUTH_MODE_DISABLED")
            .transitEncryptionMode("TRANSIT_ENCRYPTION_MODE_DISABLED")
            .shardCount(3)
            .redisConfigs(Map.of("maxmemory-policy", "volatile-ttl"))
            .nodeType("REDIS_HIGHMEM_MEDIUM")
            .persistenceConfig(ClusterPersistenceConfigArgs.builder()
                .mode("RDB")
                .rdbConfig(ClusterPersistenceConfigRdbConfigArgs.builder()
                    .rdbSnapshotPeriod("ONE_HOUR")
                    .rdbSnapshotStartTime("2024-10-02T15:01:23Z")
                    .build())
                .build())
            .zoneDistributionConfig(ClusterZoneDistributionConfigArgs.builder()
                .mode("MULTI_ZONE")
                .build())
            .replicaCount(1)
            .maintenancePolicy(ClusterMaintenancePolicyArgs.builder()
                .weeklyMaintenanceWindows(ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs.builder()
                    .day("MONDAY")
                    .startTime(ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs.builder()
                        .hours(1)
                        .minutes(0)
                        .seconds(0)
                        .nanos(0)
                        .build())
                    .build())
                .build())
            .deletionProtectionEnabled(true)
            .build(), CustomResourceOptions.builder()
                .dependsOn(primaryClusterRegionScp)
                .build());

        var secondaryClusterConsumerSubnet = new Subnetwork("secondaryClusterConsumerSubnet", SubnetworkArgs.builder()
            .name("mysubnet-secondary-cluster")
            .ipCidrRange("10.0.2.0/29")
            .region("europe-west1")
            .network(consumerNet.id())
            .build());

        var secondaryClusterRegionScp = new ServiceConnectionPolicy("secondaryClusterRegionScp", ServiceConnectionPolicyArgs.builder()
            .name("mypolicy-secondary-cluster")
            .location("europe-west1")
            .serviceClass("gcp-memorystore-redis")
            .description("Secondary cluster service connection policy")
            .network(consumerNet.id())
            .pscConfig(ServiceConnectionPolicyPscConfigArgs.builder()
                .subnetworks(secondaryClusterConsumerSubnet.id())
                .build())
            .build());

        // Secondary cluster
        var secondaryCluster = new Cluster("secondaryCluster", ClusterArgs.builder()
            .name("my-secondary-cluster")
            .region("europe-west1")
            .pscConfigs(ClusterPscConfigArgs.builder()
                .network(consumerNet.id())
                .build())
            .authorizationMode("AUTH_MODE_DISABLED")
            .transitEncryptionMode("TRANSIT_ENCRYPTION_MODE_DISABLED")
            .shardCount(3)
            .redisConfigs(Map.of("maxmemory-policy", "volatile-ttl"))
            .nodeType("REDIS_HIGHMEM_MEDIUM")
            .persistenceConfig(ClusterPersistenceConfigArgs.builder()
                .mode("RDB")
                .rdbConfig(ClusterPersistenceConfigRdbConfigArgs.builder()
                    .rdbSnapshotPeriod("ONE_HOUR")
                    .rdbSnapshotStartTime("2024-10-02T15:01:23Z")
                    .build())
                .build())
            .zoneDistributionConfig(ClusterZoneDistributionConfigArgs.builder()
                .mode("MULTI_ZONE")
                .build())
            .replicaCount(2)
            .maintenancePolicy(ClusterMaintenancePolicyArgs.builder()
                .weeklyMaintenanceWindows(ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs.builder()
                    .day("WEDNESDAY")
                    .startTime(ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs.builder()
                        .hours(1)
                        .minutes(0)
                        .seconds(0)
                        .nanos(0)
                        .build())
                    .build())
                .build())
            .deletionProtectionEnabled(true)
            .crossClusterReplicationConfig(ClusterCrossClusterReplicationConfigArgs.builder()
                .clusterRole("SECONDARY")
                .primaryCluster(ClusterCrossClusterReplicationConfigPrimaryClusterArgs.builder()
                    .cluster(primaryCluster.id())
                    .build())
                .build())
            .build(), CustomResourceOptions.builder()
                .dependsOn(secondaryClusterRegionScp)
                .build());

    }
}
Copy
resources:
  # Primary cluster
  primaryCluster:
    type: gcp:redis:Cluster
    name: primary_cluster
    properties:
      name: my-primary-cluster
      region: us-east1
      pscConfigs:
        - network: ${consumerNet.id}
      authorizationMode: AUTH_MODE_DISABLED
      transitEncryptionMode: TRANSIT_ENCRYPTION_MODE_DISABLED
      shardCount: 3
      redisConfigs:
        maxmemory-policy: volatile-ttl
      nodeType: REDIS_HIGHMEM_MEDIUM
      persistenceConfig:
        mode: RDB
        rdbConfig:
          rdbSnapshotPeriod: ONE_HOUR
          rdbSnapshotStartTime: 2024-10-02T15:01:23Z
      zoneDistributionConfig:
        mode: MULTI_ZONE
      replicaCount: 1
      maintenancePolicy:
        weeklyMaintenanceWindows:
          - day: MONDAY
            startTime:
              hours: 1
              minutes: 0
              seconds: 0
              nanos: 0
      deletionProtectionEnabled: true
    options:
      dependsOn:
        - ${primaryClusterRegionScp}
  # Secondary cluster
  secondaryCluster:
    type: gcp:redis:Cluster
    name: secondary_cluster
    properties:
      name: my-secondary-cluster
      region: europe-west1
      pscConfigs:
        - network: ${consumerNet.id}
      authorizationMode: AUTH_MODE_DISABLED
      transitEncryptionMode: TRANSIT_ENCRYPTION_MODE_DISABLED
      shardCount: 3
      redisConfigs:
        maxmemory-policy: volatile-ttl
      nodeType: REDIS_HIGHMEM_MEDIUM
      persistenceConfig:
        mode: RDB
        rdbConfig:
          rdbSnapshotPeriod: ONE_HOUR
          rdbSnapshotStartTime: 2024-10-02T15:01:23Z
      zoneDistributionConfig:
        mode: MULTI_ZONE
      replicaCount: 2
      maintenancePolicy:
        weeklyMaintenanceWindows:
          - day: WEDNESDAY
            startTime:
              hours: 1
              minutes: 0
              seconds: 0
              nanos: 0
      deletionProtectionEnabled: true # Cross cluster replication config
      crossClusterReplicationConfig:
        clusterRole: SECONDARY
        primaryCluster:
          cluster: ${primaryCluster.id}
    options:
      dependsOn:
        - ${secondaryClusterRegionScp}
  primaryClusterRegionScp:
    type: gcp:networkconnectivity:ServiceConnectionPolicy
    name: primary_cluster_region_scp
    properties:
      name: mypolicy-primary-cluster
      location: us-east1
      serviceClass: gcp-memorystore-redis
      description: Primary cluster service connection policy
      network: ${consumerNet.id}
      pscConfig:
        subnetworks:
          - ${primaryClusterConsumerSubnet.id}
  primaryClusterConsumerSubnet:
    type: gcp:compute:Subnetwork
    name: primary_cluster_consumer_subnet
    properties:
      name: mysubnet-primary-cluster
      ipCidrRange: 10.0.1.0/29
      region: us-east1
      network: ${consumerNet.id}
  secondaryClusterRegionScp:
    type: gcp:networkconnectivity:ServiceConnectionPolicy
    name: secondary_cluster_region_scp
    properties:
      name: mypolicy-secondary-cluster
      location: europe-west1
      serviceClass: gcp-memorystore-redis
      description: Secondary cluster service connection policy
      network: ${consumerNet.id}
      pscConfig:
        subnetworks:
          - ${secondaryClusterConsumerSubnet.id}
  secondaryClusterConsumerSubnet:
    type: gcp:compute:Subnetwork
    name: secondary_cluster_consumer_subnet
    properties:
      name: mysubnet-secondary-cluster
      ipCidrRange: 10.0.2.0/29
      region: europe-west1
      network: ${consumerNet.id}
  consumerNet:
    type: gcp:compute:Network
    name: consumer_net
    properties:
      name: mynetwork
      autoCreateSubnetworks: false
Copy

Redis Cluster Rdb

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const consumerNet = new gcp.compute.Network("consumer_net", {
    name: "my-network",
    autoCreateSubnetworks: false,
});
const consumerSubnet = new gcp.compute.Subnetwork("consumer_subnet", {
    name: "my-subnet",
    ipCidrRange: "10.0.0.248/29",
    region: "us-central1",
    network: consumerNet.id,
});
const _default = new gcp.networkconnectivity.ServiceConnectionPolicy("default", {
    name: "my-policy",
    location: "us-central1",
    serviceClass: "gcp-memorystore-redis",
    description: "my basic service connection policy",
    network: consumerNet.id,
    pscConfig: {
        subnetworks: [consumerSubnet.id],
    },
});
const cluster_rdb = new gcp.redis.Cluster("cluster-rdb", {
    name: "rdb-cluster",
    shardCount: 3,
    pscConfigs: [{
        network: consumerNet.id,
    }],
    region: "us-central1",
    replicaCount: 0,
    nodeType: "REDIS_SHARED_CORE_NANO",
    transitEncryptionMode: "TRANSIT_ENCRYPTION_MODE_DISABLED",
    authorizationMode: "AUTH_MODE_DISABLED",
    redisConfigs: {
        "maxmemory-policy": "volatile-ttl",
    },
    deletionProtectionEnabled: true,
    zoneDistributionConfig: {
        mode: "MULTI_ZONE",
    },
    maintenancePolicy: {
        weeklyMaintenanceWindows: [{
            day: "MONDAY",
            startTime: {
                hours: 1,
                minutes: 0,
                seconds: 0,
                nanos: 0,
            },
        }],
    },
    persistenceConfig: {
        mode: "RDB",
        rdbConfig: {
            rdbSnapshotPeriod: "ONE_HOUR",
            rdbSnapshotStartTime: "2024-10-02T15:01:23Z",
        },
    },
}, {
    dependsOn: [_default],
});
Copy
import pulumi
import pulumi_gcp as gcp

consumer_net = gcp.compute.Network("consumer_net",
    name="my-network",
    auto_create_subnetworks=False)
consumer_subnet = gcp.compute.Subnetwork("consumer_subnet",
    name="my-subnet",
    ip_cidr_range="10.0.0.248/29",
    region="us-central1",
    network=consumer_net.id)
default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
    name="my-policy",
    location="us-central1",
    service_class="gcp-memorystore-redis",
    description="my basic service connection policy",
    network=consumer_net.id,
    psc_config={
        "subnetworks": [consumer_subnet.id],
    })
cluster_rdb = gcp.redis.Cluster("cluster-rdb",
    name="rdb-cluster",
    shard_count=3,
    psc_configs=[{
        "network": consumer_net.id,
    }],
    region="us-central1",
    replica_count=0,
    node_type="REDIS_SHARED_CORE_NANO",
    transit_encryption_mode="TRANSIT_ENCRYPTION_MODE_DISABLED",
    authorization_mode="AUTH_MODE_DISABLED",
    redis_configs={
        "maxmemory-policy": "volatile-ttl",
    },
    deletion_protection_enabled=True,
    zone_distribution_config={
        "mode": "MULTI_ZONE",
    },
    maintenance_policy={
        "weekly_maintenance_windows": [{
            "day": "MONDAY",
            "start_time": {
                "hours": 1,
                "minutes": 0,
                "seconds": 0,
                "nanos": 0,
            },
        }],
    },
    persistence_config={
        "mode": "RDB",
        "rdb_config": {
            "rdb_snapshot_period": "ONE_HOUR",
            "rdb_snapshot_start_time": "2024-10-02T15:01:23Z",
        },
    },
    opts = pulumi.ResourceOptions(depends_on=[default]))
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/networkconnectivity"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/redis"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		consumerNet, err := compute.NewNetwork(ctx, "consumer_net", &compute.NetworkArgs{
			Name:                  pulumi.String("my-network"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		consumerSubnet, err := compute.NewSubnetwork(ctx, "consumer_subnet", &compute.SubnetworkArgs{
			Name:        pulumi.String("my-subnet"),
			IpCidrRange: pulumi.String("10.0.0.248/29"),
			Region:      pulumi.String("us-central1"),
			Network:     consumerNet.ID(),
		})
		if err != nil {
			return err
		}
		_default, err := networkconnectivity.NewServiceConnectionPolicy(ctx, "default", &networkconnectivity.ServiceConnectionPolicyArgs{
			Name:         pulumi.String("my-policy"),
			Location:     pulumi.String("us-central1"),
			ServiceClass: pulumi.String("gcp-memorystore-redis"),
			Description:  pulumi.String("my basic service connection policy"),
			Network:      consumerNet.ID(),
			PscConfig: &networkconnectivity.ServiceConnectionPolicyPscConfigArgs{
				Subnetworks: pulumi.StringArray{
					consumerSubnet.ID(),
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = redis.NewCluster(ctx, "cluster-rdb", &redis.ClusterArgs{
			Name:       pulumi.String("rdb-cluster"),
			ShardCount: pulumi.Int(3),
			PscConfigs: redis.ClusterPscConfigArray{
				&redis.ClusterPscConfigArgs{
					Network: consumerNet.ID(),
				},
			},
			Region:                pulumi.String("us-central1"),
			ReplicaCount:          pulumi.Int(0),
			NodeType:              pulumi.String("REDIS_SHARED_CORE_NANO"),
			TransitEncryptionMode: pulumi.String("TRANSIT_ENCRYPTION_MODE_DISABLED"),
			AuthorizationMode:     pulumi.String("AUTH_MODE_DISABLED"),
			RedisConfigs: pulumi.StringMap{
				"maxmemory-policy": pulumi.String("volatile-ttl"),
			},
			DeletionProtectionEnabled: pulumi.Bool(true),
			ZoneDistributionConfig: &redis.ClusterZoneDistributionConfigArgs{
				Mode: pulumi.String("MULTI_ZONE"),
			},
			MaintenancePolicy: &redis.ClusterMaintenancePolicyArgs{
				WeeklyMaintenanceWindows: redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowArray{
					&redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs{
						Day: pulumi.String("MONDAY"),
						StartTime: &redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs{
							Hours:   pulumi.Int(1),
							Minutes: pulumi.Int(0),
							Seconds: pulumi.Int(0),
							Nanos:   pulumi.Int(0),
						},
					},
				},
			},
			PersistenceConfig: &redis.ClusterPersistenceConfigArgs{
				Mode: pulumi.String("RDB"),
				RdbConfig: &redis.ClusterPersistenceConfigRdbConfigArgs{
					RdbSnapshotPeriod:    pulumi.String("ONE_HOUR"),
					RdbSnapshotStartTime: pulumi.String("2024-10-02T15:01:23Z"),
				},
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			_default,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var consumerNet = new Gcp.Compute.Network("consumer_net", new()
    {
        Name = "my-network",
        AutoCreateSubnetworks = false,
    });

    var consumerSubnet = new Gcp.Compute.Subnetwork("consumer_subnet", new()
    {
        Name = "my-subnet",
        IpCidrRange = "10.0.0.248/29",
        Region = "us-central1",
        Network = consumerNet.Id,
    });

    var @default = new Gcp.NetworkConnectivity.ServiceConnectionPolicy("default", new()
    {
        Name = "my-policy",
        Location = "us-central1",
        ServiceClass = "gcp-memorystore-redis",
        Description = "my basic service connection policy",
        Network = consumerNet.Id,
        PscConfig = new Gcp.NetworkConnectivity.Inputs.ServiceConnectionPolicyPscConfigArgs
        {
            Subnetworks = new[]
            {
                consumerSubnet.Id,
            },
        },
    });

    var cluster_rdb = new Gcp.Redis.Cluster("cluster-rdb", new()
    {
        Name = "rdb-cluster",
        ShardCount = 3,
        PscConfigs = new[]
        {
            new Gcp.Redis.Inputs.ClusterPscConfigArgs
            {
                Network = consumerNet.Id,
            },
        },
        Region = "us-central1",
        ReplicaCount = 0,
        NodeType = "REDIS_SHARED_CORE_NANO",
        TransitEncryptionMode = "TRANSIT_ENCRYPTION_MODE_DISABLED",
        AuthorizationMode = "AUTH_MODE_DISABLED",
        RedisConfigs = 
        {
            { "maxmemory-policy", "volatile-ttl" },
        },
        DeletionProtectionEnabled = true,
        ZoneDistributionConfig = new Gcp.Redis.Inputs.ClusterZoneDistributionConfigArgs
        {
            Mode = "MULTI_ZONE",
        },
        MaintenancePolicy = new Gcp.Redis.Inputs.ClusterMaintenancePolicyArgs
        {
            WeeklyMaintenanceWindows = new[]
            {
                new Gcp.Redis.Inputs.ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs
                {
                    Day = "MONDAY",
                    StartTime = new Gcp.Redis.Inputs.ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs
                    {
                        Hours = 1,
                        Minutes = 0,
                        Seconds = 0,
                        Nanos = 0,
                    },
                },
            },
        },
        PersistenceConfig = new Gcp.Redis.Inputs.ClusterPersistenceConfigArgs
        {
            Mode = "RDB",
            RdbConfig = new Gcp.Redis.Inputs.ClusterPersistenceConfigRdbConfigArgs
            {
                RdbSnapshotPeriod = "ONE_HOUR",
                RdbSnapshotStartTime = "2024-10-02T15:01:23Z",
            },
        },
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            @default,
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.networkconnectivity.ServiceConnectionPolicy;
import com.pulumi.gcp.networkconnectivity.ServiceConnectionPolicyArgs;
import com.pulumi.gcp.networkconnectivity.inputs.ServiceConnectionPolicyPscConfigArgs;
import com.pulumi.gcp.redis.Cluster;
import com.pulumi.gcp.redis.ClusterArgs;
import com.pulumi.gcp.redis.inputs.ClusterPscConfigArgs;
import com.pulumi.gcp.redis.inputs.ClusterZoneDistributionConfigArgs;
import com.pulumi.gcp.redis.inputs.ClusterMaintenancePolicyArgs;
import com.pulumi.gcp.redis.inputs.ClusterPersistenceConfigArgs;
import com.pulumi.gcp.redis.inputs.ClusterPersistenceConfigRdbConfigArgs;
import com.pulumi.resources.CustomResourceOptions;
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 consumerNet = new Network("consumerNet", NetworkArgs.builder()
            .name("my-network")
            .autoCreateSubnetworks(false)
            .build());

        var consumerSubnet = new Subnetwork("consumerSubnet", SubnetworkArgs.builder()
            .name("my-subnet")
            .ipCidrRange("10.0.0.248/29")
            .region("us-central1")
            .network(consumerNet.id())
            .build());

        var default_ = new ServiceConnectionPolicy("default", ServiceConnectionPolicyArgs.builder()
            .name("my-policy")
            .location("us-central1")
            .serviceClass("gcp-memorystore-redis")
            .description("my basic service connection policy")
            .network(consumerNet.id())
            .pscConfig(ServiceConnectionPolicyPscConfigArgs.builder()
                .subnetworks(consumerSubnet.id())
                .build())
            .build());

        var cluster_rdb = new Cluster("cluster-rdb", ClusterArgs.builder()
            .name("rdb-cluster")
            .shardCount(3)
            .pscConfigs(ClusterPscConfigArgs.builder()
                .network(consumerNet.id())
                .build())
            .region("us-central1")
            .replicaCount(0)
            .nodeType("REDIS_SHARED_CORE_NANO")
            .transitEncryptionMode("TRANSIT_ENCRYPTION_MODE_DISABLED")
            .authorizationMode("AUTH_MODE_DISABLED")
            .redisConfigs(Map.of("maxmemory-policy", "volatile-ttl"))
            .deletionProtectionEnabled(true)
            .zoneDistributionConfig(ClusterZoneDistributionConfigArgs.builder()
                .mode("MULTI_ZONE")
                .build())
            .maintenancePolicy(ClusterMaintenancePolicyArgs.builder()
                .weeklyMaintenanceWindows(ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs.builder()
                    .day("MONDAY")
                    .startTime(ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs.builder()
                        .hours(1)
                        .minutes(0)
                        .seconds(0)
                        .nanos(0)
                        .build())
                    .build())
                .build())
            .persistenceConfig(ClusterPersistenceConfigArgs.builder()
                .mode("RDB")
                .rdbConfig(ClusterPersistenceConfigRdbConfigArgs.builder()
                    .rdbSnapshotPeriod("ONE_HOUR")
                    .rdbSnapshotStartTime("2024-10-02T15:01:23Z")
                    .build())
                .build())
            .build(), CustomResourceOptions.builder()
                .dependsOn(default_)
                .build());

    }
}
Copy
resources:
  cluster-rdb:
    type: gcp:redis:Cluster
    properties:
      name: rdb-cluster
      shardCount: 3
      pscConfigs:
        - network: ${consumerNet.id}
      region: us-central1
      replicaCount: 0
      nodeType: REDIS_SHARED_CORE_NANO
      transitEncryptionMode: TRANSIT_ENCRYPTION_MODE_DISABLED
      authorizationMode: AUTH_MODE_DISABLED
      redisConfigs:
        maxmemory-policy: volatile-ttl
      deletionProtectionEnabled: true
      zoneDistributionConfig:
        mode: MULTI_ZONE
      maintenancePolicy:
        weeklyMaintenanceWindows:
          - day: MONDAY
            startTime:
              hours: 1
              minutes: 0
              seconds: 0
              nanos: 0
      persistenceConfig:
        mode: RDB
        rdbConfig:
          rdbSnapshotPeriod: ONE_HOUR
          rdbSnapshotStartTime: 2024-10-02T15:01:23Z
    options:
      dependsOn:
        - ${default}
  default:
    type: gcp:networkconnectivity:ServiceConnectionPolicy
    properties:
      name: my-policy
      location: us-central1
      serviceClass: gcp-memorystore-redis
      description: my basic service connection policy
      network: ${consumerNet.id}
      pscConfig:
        subnetworks:
          - ${consumerSubnet.id}
  consumerSubnet:
    type: gcp:compute:Subnetwork
    name: consumer_subnet
    properties:
      name: my-subnet
      ipCidrRange: 10.0.0.248/29
      region: us-central1
      network: ${consumerNet.id}
  consumerNet:
    type: gcp:compute:Network
    name: consumer_net
    properties:
      name: my-network
      autoCreateSubnetworks: false
Copy

Redis Cluster Aof

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const consumerNet = new gcp.compute.Network("consumer_net", {
    name: "my-network",
    autoCreateSubnetworks: false,
});
const consumerSubnet = new gcp.compute.Subnetwork("consumer_subnet", {
    name: "my-subnet",
    ipCidrRange: "10.0.0.248/29",
    region: "us-central1",
    network: consumerNet.id,
});
const _default = new gcp.networkconnectivity.ServiceConnectionPolicy("default", {
    name: "my-policy",
    location: "us-central1",
    serviceClass: "gcp-memorystore-redis",
    description: "my basic service connection policy",
    network: consumerNet.id,
    pscConfig: {
        subnetworks: [consumerSubnet.id],
    },
});
const cluster_aof = new gcp.redis.Cluster("cluster-aof", {
    name: "aof-cluster",
    shardCount: 3,
    pscConfigs: [{
        network: consumerNet.id,
    }],
    region: "us-central1",
    replicaCount: 0,
    nodeType: "REDIS_SHARED_CORE_NANO",
    transitEncryptionMode: "TRANSIT_ENCRYPTION_MODE_DISABLED",
    authorizationMode: "AUTH_MODE_DISABLED",
    redisConfigs: {
        "maxmemory-policy": "volatile-ttl",
    },
    deletionProtectionEnabled: true,
    zoneDistributionConfig: {
        mode: "MULTI_ZONE",
    },
    maintenancePolicy: {
        weeklyMaintenanceWindows: [{
            day: "MONDAY",
            startTime: {
                hours: 1,
                minutes: 0,
                seconds: 0,
                nanos: 0,
            },
        }],
    },
    persistenceConfig: {
        mode: "AOF",
        aofConfig: {
            appendFsync: "EVERYSEC",
        },
    },
}, {
    dependsOn: [_default],
});
Copy
import pulumi
import pulumi_gcp as gcp

consumer_net = gcp.compute.Network("consumer_net",
    name="my-network",
    auto_create_subnetworks=False)
consumer_subnet = gcp.compute.Subnetwork("consumer_subnet",
    name="my-subnet",
    ip_cidr_range="10.0.0.248/29",
    region="us-central1",
    network=consumer_net.id)
default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
    name="my-policy",
    location="us-central1",
    service_class="gcp-memorystore-redis",
    description="my basic service connection policy",
    network=consumer_net.id,
    psc_config={
        "subnetworks": [consumer_subnet.id],
    })
cluster_aof = gcp.redis.Cluster("cluster-aof",
    name="aof-cluster",
    shard_count=3,
    psc_configs=[{
        "network": consumer_net.id,
    }],
    region="us-central1",
    replica_count=0,
    node_type="REDIS_SHARED_CORE_NANO",
    transit_encryption_mode="TRANSIT_ENCRYPTION_MODE_DISABLED",
    authorization_mode="AUTH_MODE_DISABLED",
    redis_configs={
        "maxmemory-policy": "volatile-ttl",
    },
    deletion_protection_enabled=True,
    zone_distribution_config={
        "mode": "MULTI_ZONE",
    },
    maintenance_policy={
        "weekly_maintenance_windows": [{
            "day": "MONDAY",
            "start_time": {
                "hours": 1,
                "minutes": 0,
                "seconds": 0,
                "nanos": 0,
            },
        }],
    },
    persistence_config={
        "mode": "AOF",
        "aof_config": {
            "append_fsync": "EVERYSEC",
        },
    },
    opts = pulumi.ResourceOptions(depends_on=[default]))
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/networkconnectivity"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/redis"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		consumerNet, err := compute.NewNetwork(ctx, "consumer_net", &compute.NetworkArgs{
			Name:                  pulumi.String("my-network"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		consumerSubnet, err := compute.NewSubnetwork(ctx, "consumer_subnet", &compute.SubnetworkArgs{
			Name:        pulumi.String("my-subnet"),
			IpCidrRange: pulumi.String("10.0.0.248/29"),
			Region:      pulumi.String("us-central1"),
			Network:     consumerNet.ID(),
		})
		if err != nil {
			return err
		}
		_default, err := networkconnectivity.NewServiceConnectionPolicy(ctx, "default", &networkconnectivity.ServiceConnectionPolicyArgs{
			Name:         pulumi.String("my-policy"),
			Location:     pulumi.String("us-central1"),
			ServiceClass: pulumi.String("gcp-memorystore-redis"),
			Description:  pulumi.String("my basic service connection policy"),
			Network:      consumerNet.ID(),
			PscConfig: &networkconnectivity.ServiceConnectionPolicyPscConfigArgs{
				Subnetworks: pulumi.StringArray{
					consumerSubnet.ID(),
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = redis.NewCluster(ctx, "cluster-aof", &redis.ClusterArgs{
			Name:       pulumi.String("aof-cluster"),
			ShardCount: pulumi.Int(3),
			PscConfigs: redis.ClusterPscConfigArray{
				&redis.ClusterPscConfigArgs{
					Network: consumerNet.ID(),
				},
			},
			Region:                pulumi.String("us-central1"),
			ReplicaCount:          pulumi.Int(0),
			NodeType:              pulumi.String("REDIS_SHARED_CORE_NANO"),
			TransitEncryptionMode: pulumi.String("TRANSIT_ENCRYPTION_MODE_DISABLED"),
			AuthorizationMode:     pulumi.String("AUTH_MODE_DISABLED"),
			RedisConfigs: pulumi.StringMap{
				"maxmemory-policy": pulumi.String("volatile-ttl"),
			},
			DeletionProtectionEnabled: pulumi.Bool(true),
			ZoneDistributionConfig: &redis.ClusterZoneDistributionConfigArgs{
				Mode: pulumi.String("MULTI_ZONE"),
			},
			MaintenancePolicy: &redis.ClusterMaintenancePolicyArgs{
				WeeklyMaintenanceWindows: redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowArray{
					&redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs{
						Day: pulumi.String("MONDAY"),
						StartTime: &redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs{
							Hours:   pulumi.Int(1),
							Minutes: pulumi.Int(0),
							Seconds: pulumi.Int(0),
							Nanos:   pulumi.Int(0),
						},
					},
				},
			},
			PersistenceConfig: &redis.ClusterPersistenceConfigArgs{
				Mode: pulumi.String("AOF"),
				AofConfig: &redis.ClusterPersistenceConfigAofConfigArgs{
					AppendFsync: pulumi.String("EVERYSEC"),
				},
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			_default,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var consumerNet = new Gcp.Compute.Network("consumer_net", new()
    {
        Name = "my-network",
        AutoCreateSubnetworks = false,
    });

    var consumerSubnet = new Gcp.Compute.Subnetwork("consumer_subnet", new()
    {
        Name = "my-subnet",
        IpCidrRange = "10.0.0.248/29",
        Region = "us-central1",
        Network = consumerNet.Id,
    });

    var @default = new Gcp.NetworkConnectivity.ServiceConnectionPolicy("default", new()
    {
        Name = "my-policy",
        Location = "us-central1",
        ServiceClass = "gcp-memorystore-redis",
        Description = "my basic service connection policy",
        Network = consumerNet.Id,
        PscConfig = new Gcp.NetworkConnectivity.Inputs.ServiceConnectionPolicyPscConfigArgs
        {
            Subnetworks = new[]
            {
                consumerSubnet.Id,
            },
        },
    });

    var cluster_aof = new Gcp.Redis.Cluster("cluster-aof", new()
    {
        Name = "aof-cluster",
        ShardCount = 3,
        PscConfigs = new[]
        {
            new Gcp.Redis.Inputs.ClusterPscConfigArgs
            {
                Network = consumerNet.Id,
            },
        },
        Region = "us-central1",
        ReplicaCount = 0,
        NodeType = "REDIS_SHARED_CORE_NANO",
        TransitEncryptionMode = "TRANSIT_ENCRYPTION_MODE_DISABLED",
        AuthorizationMode = "AUTH_MODE_DISABLED",
        RedisConfigs = 
        {
            { "maxmemory-policy", "volatile-ttl" },
        },
        DeletionProtectionEnabled = true,
        ZoneDistributionConfig = new Gcp.Redis.Inputs.ClusterZoneDistributionConfigArgs
        {
            Mode = "MULTI_ZONE",
        },
        MaintenancePolicy = new Gcp.Redis.Inputs.ClusterMaintenancePolicyArgs
        {
            WeeklyMaintenanceWindows = new[]
            {
                new Gcp.Redis.Inputs.ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs
                {
                    Day = "MONDAY",
                    StartTime = new Gcp.Redis.Inputs.ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs
                    {
                        Hours = 1,
                        Minutes = 0,
                        Seconds = 0,
                        Nanos = 0,
                    },
                },
            },
        },
        PersistenceConfig = new Gcp.Redis.Inputs.ClusterPersistenceConfigArgs
        {
            Mode = "AOF",
            AofConfig = new Gcp.Redis.Inputs.ClusterPersistenceConfigAofConfigArgs
            {
                AppendFsync = "EVERYSEC",
            },
        },
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            @default,
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.networkconnectivity.ServiceConnectionPolicy;
import com.pulumi.gcp.networkconnectivity.ServiceConnectionPolicyArgs;
import com.pulumi.gcp.networkconnectivity.inputs.ServiceConnectionPolicyPscConfigArgs;
import com.pulumi.gcp.redis.Cluster;
import com.pulumi.gcp.redis.ClusterArgs;
import com.pulumi.gcp.redis.inputs.ClusterPscConfigArgs;
import com.pulumi.gcp.redis.inputs.ClusterZoneDistributionConfigArgs;
import com.pulumi.gcp.redis.inputs.ClusterMaintenancePolicyArgs;
import com.pulumi.gcp.redis.inputs.ClusterPersistenceConfigArgs;
import com.pulumi.gcp.redis.inputs.ClusterPersistenceConfigAofConfigArgs;
import com.pulumi.resources.CustomResourceOptions;
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 consumerNet = new Network("consumerNet", NetworkArgs.builder()
            .name("my-network")
            .autoCreateSubnetworks(false)
            .build());

        var consumerSubnet = new Subnetwork("consumerSubnet", SubnetworkArgs.builder()
            .name("my-subnet")
            .ipCidrRange("10.0.0.248/29")
            .region("us-central1")
            .network(consumerNet.id())
            .build());

        var default_ = new ServiceConnectionPolicy("default", ServiceConnectionPolicyArgs.builder()
            .name("my-policy")
            .location("us-central1")
            .serviceClass("gcp-memorystore-redis")
            .description("my basic service connection policy")
            .network(consumerNet.id())
            .pscConfig(ServiceConnectionPolicyPscConfigArgs.builder()
                .subnetworks(consumerSubnet.id())
                .build())
            .build());

        var cluster_aof = new Cluster("cluster-aof", ClusterArgs.builder()
            .name("aof-cluster")
            .shardCount(3)
            .pscConfigs(ClusterPscConfigArgs.builder()
                .network(consumerNet.id())
                .build())
            .region("us-central1")
            .replicaCount(0)
            .nodeType("REDIS_SHARED_CORE_NANO")
            .transitEncryptionMode("TRANSIT_ENCRYPTION_MODE_DISABLED")
            .authorizationMode("AUTH_MODE_DISABLED")
            .redisConfigs(Map.of("maxmemory-policy", "volatile-ttl"))
            .deletionProtectionEnabled(true)
            .zoneDistributionConfig(ClusterZoneDistributionConfigArgs.builder()
                .mode("MULTI_ZONE")
                .build())
            .maintenancePolicy(ClusterMaintenancePolicyArgs.builder()
                .weeklyMaintenanceWindows(ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs.builder()
                    .day("MONDAY")
                    .startTime(ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs.builder()
                        .hours(1)
                        .minutes(0)
                        .seconds(0)
                        .nanos(0)
                        .build())
                    .build())
                .build())
            .persistenceConfig(ClusterPersistenceConfigArgs.builder()
                .mode("AOF")
                .aofConfig(ClusterPersistenceConfigAofConfigArgs.builder()
                    .appendFsync("EVERYSEC")
                    .build())
                .build())
            .build(), CustomResourceOptions.builder()
                .dependsOn(default_)
                .build());

    }
}
Copy
resources:
  cluster-aof:
    type: gcp:redis:Cluster
    properties:
      name: aof-cluster
      shardCount: 3
      pscConfigs:
        - network: ${consumerNet.id}
      region: us-central1
      replicaCount: 0
      nodeType: REDIS_SHARED_CORE_NANO
      transitEncryptionMode: TRANSIT_ENCRYPTION_MODE_DISABLED
      authorizationMode: AUTH_MODE_DISABLED
      redisConfigs:
        maxmemory-policy: volatile-ttl
      deletionProtectionEnabled: true
      zoneDistributionConfig:
        mode: MULTI_ZONE
      maintenancePolicy:
        weeklyMaintenanceWindows:
          - day: MONDAY
            startTime:
              hours: 1
              minutes: 0
              seconds: 0
              nanos: 0
      persistenceConfig:
        mode: AOF
        aofConfig:
          appendFsync: EVERYSEC
    options:
      dependsOn:
        - ${default}
  default:
    type: gcp:networkconnectivity:ServiceConnectionPolicy
    properties:
      name: my-policy
      location: us-central1
      serviceClass: gcp-memorystore-redis
      description: my basic service connection policy
      network: ${consumerNet.id}
      pscConfig:
        subnetworks:
          - ${consumerSubnet.id}
  consumerSubnet:
    type: gcp:compute:Subnetwork
    name: consumer_subnet
    properties:
      name: my-subnet
      ipCidrRange: 10.0.0.248/29
      region: us-central1
      network: ${consumerNet.id}
  consumerNet:
    type: gcp:compute:Network
    name: consumer_net
    properties:
      name: my-network
      autoCreateSubnetworks: false
Copy

Redis Cluster Cmek

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const consumerNet = new gcp.compute.Network("consumer_net", {
    name: "my-network",
    autoCreateSubnetworks: false,
});
const consumerSubnet = new gcp.compute.Subnetwork("consumer_subnet", {
    name: "my-subnet",
    ipCidrRange: "10.0.0.248/29",
    region: "us-central1",
    network: consumerNet.id,
});
const _default = new gcp.networkconnectivity.ServiceConnectionPolicy("default", {
    name: "my-policy",
    location: "us-central1",
    serviceClass: "gcp-memorystore-redis",
    description: "my basic service connection policy",
    network: consumerNet.id,
    pscConfig: {
        subnetworks: [consumerSubnet.id],
    },
});
const cluster_cmek = new gcp.redis.Cluster("cluster-cmek", {
    name: "cmek-cluster",
    shardCount: 3,
    pscConfigs: [{
        network: consumerNet.id,
    }],
    kmsKey: "my-key",
    region: "us-central1",
    deletionProtectionEnabled: true,
}, {
    dependsOn: [_default],
});
const project = gcp.organizations.getProject({});
Copy
import pulumi
import pulumi_gcp as gcp

consumer_net = gcp.compute.Network("consumer_net",
    name="my-network",
    auto_create_subnetworks=False)
consumer_subnet = gcp.compute.Subnetwork("consumer_subnet",
    name="my-subnet",
    ip_cidr_range="10.0.0.248/29",
    region="us-central1",
    network=consumer_net.id)
default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
    name="my-policy",
    location="us-central1",
    service_class="gcp-memorystore-redis",
    description="my basic service connection policy",
    network=consumer_net.id,
    psc_config={
        "subnetworks": [consumer_subnet.id],
    })
cluster_cmek = gcp.redis.Cluster("cluster-cmek",
    name="cmek-cluster",
    shard_count=3,
    psc_configs=[{
        "network": consumer_net.id,
    }],
    kms_key="my-key",
    region="us-central1",
    deletion_protection_enabled=True,
    opts = pulumi.ResourceOptions(depends_on=[default]))
project = gcp.organizations.get_project()
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/networkconnectivity"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/redis"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		consumerNet, err := compute.NewNetwork(ctx, "consumer_net", &compute.NetworkArgs{
			Name:                  pulumi.String("my-network"),
			AutoCreateSubnetworks: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		consumerSubnet, err := compute.NewSubnetwork(ctx, "consumer_subnet", &compute.SubnetworkArgs{
			Name:        pulumi.String("my-subnet"),
			IpCidrRange: pulumi.String("10.0.0.248/29"),
			Region:      pulumi.String("us-central1"),
			Network:     consumerNet.ID(),
		})
		if err != nil {
			return err
		}
		_default, err := networkconnectivity.NewServiceConnectionPolicy(ctx, "default", &networkconnectivity.ServiceConnectionPolicyArgs{
			Name:         pulumi.String("my-policy"),
			Location:     pulumi.String("us-central1"),
			ServiceClass: pulumi.String("gcp-memorystore-redis"),
			Description:  pulumi.String("my basic service connection policy"),
			Network:      consumerNet.ID(),
			PscConfig: &networkconnectivity.ServiceConnectionPolicyPscConfigArgs{
				Subnetworks: pulumi.StringArray{
					consumerSubnet.ID(),
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = redis.NewCluster(ctx, "cluster-cmek", &redis.ClusterArgs{
			Name:       pulumi.String("cmek-cluster"),
			ShardCount: pulumi.Int(3),
			PscConfigs: redis.ClusterPscConfigArray{
				&redis.ClusterPscConfigArgs{
					Network: consumerNet.ID(),
				},
			},
			KmsKey:                    pulumi.String("my-key"),
			Region:                    pulumi.String("us-central1"),
			DeletionProtectionEnabled: pulumi.Bool(true),
		}, pulumi.DependsOn([]pulumi.Resource{
			_default,
		}))
		if err != nil {
			return err
		}
		_, err = organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var consumerNet = new Gcp.Compute.Network("consumer_net", new()
    {
        Name = "my-network",
        AutoCreateSubnetworks = false,
    });

    var consumerSubnet = new Gcp.Compute.Subnetwork("consumer_subnet", new()
    {
        Name = "my-subnet",
        IpCidrRange = "10.0.0.248/29",
        Region = "us-central1",
        Network = consumerNet.Id,
    });

    var @default = new Gcp.NetworkConnectivity.ServiceConnectionPolicy("default", new()
    {
        Name = "my-policy",
        Location = "us-central1",
        ServiceClass = "gcp-memorystore-redis",
        Description = "my basic service connection policy",
        Network = consumerNet.Id,
        PscConfig = new Gcp.NetworkConnectivity.Inputs.ServiceConnectionPolicyPscConfigArgs
        {
            Subnetworks = new[]
            {
                consumerSubnet.Id,
            },
        },
    });

    var cluster_cmek = new Gcp.Redis.Cluster("cluster-cmek", new()
    {
        Name = "cmek-cluster",
        ShardCount = 3,
        PscConfigs = new[]
        {
            new Gcp.Redis.Inputs.ClusterPscConfigArgs
            {
                Network = consumerNet.Id,
            },
        },
        KmsKey = "my-key",
        Region = "us-central1",
        DeletionProtectionEnabled = true,
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            @default,
        },
    });

    var project = Gcp.Organizations.GetProject.Invoke();

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.Subnetwork;
import com.pulumi.gcp.compute.SubnetworkArgs;
import com.pulumi.gcp.networkconnectivity.ServiceConnectionPolicy;
import com.pulumi.gcp.networkconnectivity.ServiceConnectionPolicyArgs;
import com.pulumi.gcp.networkconnectivity.inputs.ServiceConnectionPolicyPscConfigArgs;
import com.pulumi.gcp.redis.Cluster;
import com.pulumi.gcp.redis.ClusterArgs;
import com.pulumi.gcp.redis.inputs.ClusterPscConfigArgs;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.resources.CustomResourceOptions;
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 consumerNet = new Network("consumerNet", NetworkArgs.builder()
            .name("my-network")
            .autoCreateSubnetworks(false)
            .build());

        var consumerSubnet = new Subnetwork("consumerSubnet", SubnetworkArgs.builder()
            .name("my-subnet")
            .ipCidrRange("10.0.0.248/29")
            .region("us-central1")
            .network(consumerNet.id())
            .build());

        var default_ = new ServiceConnectionPolicy("default", ServiceConnectionPolicyArgs.builder()
            .name("my-policy")
            .location("us-central1")
            .serviceClass("gcp-memorystore-redis")
            .description("my basic service connection policy")
            .network(consumerNet.id())
            .pscConfig(ServiceConnectionPolicyPscConfigArgs.builder()
                .subnetworks(consumerSubnet.id())
                .build())
            .build());

        var cluster_cmek = new Cluster("cluster-cmek", ClusterArgs.builder()
            .name("cmek-cluster")
            .shardCount(3)
            .pscConfigs(ClusterPscConfigArgs.builder()
                .network(consumerNet.id())
                .build())
            .kmsKey("my-key")
            .region("us-central1")
            .deletionProtectionEnabled(true)
            .build(), CustomResourceOptions.builder()
                .dependsOn(default_)
                .build());

        final var project = OrganizationsFunctions.getProject();

    }
}
Copy
resources:
  cluster-cmek:
    type: gcp:redis:Cluster
    properties:
      name: cmek-cluster
      shardCount: 3
      pscConfigs:
        - network: ${consumerNet.id}
      kmsKey: my-key
      region: us-central1
      deletionProtectionEnabled: true
    options:
      dependsOn:
        - ${default}
  default:
    type: gcp:networkconnectivity:ServiceConnectionPolicy
    properties:
      name: my-policy
      location: us-central1
      serviceClass: gcp-memorystore-redis
      description: my basic service connection policy
      network: ${consumerNet.id}
      pscConfig:
        subnetworks:
          - ${consumerSubnet.id}
  consumerSubnet:
    type: gcp:compute:Subnetwork
    name: consumer_subnet
    properties:
      name: my-subnet
      ipCidrRange: 10.0.0.248/29
      region: us-central1
      network: ${consumerNet.id}
  consumerNet:
    type: gcp:compute:Network
    name: consumer_net
    properties:
      name: my-network
      autoCreateSubnetworks: false
variables:
  project:
    fn::invoke:
      function: gcp:organizations:getProject
      arguments: {}
Copy

Create Cluster Resource

Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

Constructor syntax

new Cluster(name: string, args: ClusterArgs, opts?: CustomResourceOptions);
@overload
def Cluster(resource_name: str,
            args: ClusterArgs,
            opts: Optional[ResourceOptions] = None)

@overload
def Cluster(resource_name: str,
            opts: Optional[ResourceOptions] = None,
            shard_count: Optional[int] = None,
            project: Optional[str] = None,
            psc_configs: Optional[Sequence[ClusterPscConfigArgs]] = None,
            kms_key: Optional[str] = None,
            maintenance_policy: Optional[ClusterMaintenancePolicyArgs] = None,
            name: Optional[str] = None,
            node_type: Optional[str] = None,
            deletion_protection_enabled: Optional[bool] = None,
            authorization_mode: Optional[str] = None,
            persistence_config: Optional[ClusterPersistenceConfigArgs] = None,
            redis_configs: Optional[Mapping[str, str]] = None,
            region: Optional[str] = None,
            replica_count: Optional[int] = None,
            cross_cluster_replication_config: Optional[ClusterCrossClusterReplicationConfigArgs] = None,
            transit_encryption_mode: Optional[str] = None,
            zone_distribution_config: Optional[ClusterZoneDistributionConfigArgs] = None)
func NewCluster(ctx *Context, name string, args ClusterArgs, opts ...ResourceOption) (*Cluster, error)
public Cluster(string name, ClusterArgs args, CustomResourceOptions? opts = null)
public Cluster(String name, ClusterArgs args)
public Cluster(String name, ClusterArgs args, CustomResourceOptions options)
type: gcp:redis:Cluster
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

name This property is required. string
The unique name of the resource.
args This property is required. ClusterArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args This property is required. ClusterArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name This property is required. string
The unique name of the resource.
args This property is required. ClusterArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args This property is required. ClusterArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. ClusterArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

Constructor example

The following reference example uses placeholder values for all input properties.

var exampleclusterResourceResourceFromRediscluster = new Gcp.Redis.Cluster("exampleclusterResourceResourceFromRediscluster", new()
{
    ShardCount = 0,
    Project = "string",
    PscConfigs = new[]
    {
        new Gcp.Redis.Inputs.ClusterPscConfigArgs
        {
            Network = "string",
        },
    },
    KmsKey = "string",
    MaintenancePolicy = new Gcp.Redis.Inputs.ClusterMaintenancePolicyArgs
    {
        CreateTime = "string",
        UpdateTime = "string",
        WeeklyMaintenanceWindows = new[]
        {
            new Gcp.Redis.Inputs.ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs
            {
                Day = "string",
                StartTime = new Gcp.Redis.Inputs.ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs
                {
                    Hours = 0,
                    Minutes = 0,
                    Nanos = 0,
                    Seconds = 0,
                },
                Duration = "string",
            },
        },
    },
    Name = "string",
    NodeType = "string",
    DeletionProtectionEnabled = false,
    AuthorizationMode = "string",
    PersistenceConfig = new Gcp.Redis.Inputs.ClusterPersistenceConfigArgs
    {
        AofConfig = new Gcp.Redis.Inputs.ClusterPersistenceConfigAofConfigArgs
        {
            AppendFsync = "string",
        },
        Mode = "string",
        RdbConfig = new Gcp.Redis.Inputs.ClusterPersistenceConfigRdbConfigArgs
        {
            RdbSnapshotPeriod = "string",
            RdbSnapshotStartTime = "string",
        },
    },
    RedisConfigs = 
    {
        { "string", "string" },
    },
    Region = "string",
    ReplicaCount = 0,
    CrossClusterReplicationConfig = new Gcp.Redis.Inputs.ClusterCrossClusterReplicationConfigArgs
    {
        ClusterRole = "string",
        Memberships = new[]
        {
            new Gcp.Redis.Inputs.ClusterCrossClusterReplicationConfigMembershipArgs
            {
                PrimaryClusters = new[]
                {
                    new Gcp.Redis.Inputs.ClusterCrossClusterReplicationConfigMembershipPrimaryClusterArgs
                    {
                        Cluster = "string",
                        Uid = "string",
                    },
                },
                SecondaryClusters = new[]
                {
                    new Gcp.Redis.Inputs.ClusterCrossClusterReplicationConfigMembershipSecondaryClusterArgs
                    {
                        Cluster = "string",
                        Uid = "string",
                    },
                },
            },
        },
        PrimaryCluster = new Gcp.Redis.Inputs.ClusterCrossClusterReplicationConfigPrimaryClusterArgs
        {
            Cluster = "string",
            Uid = "string",
        },
        SecondaryClusters = new[]
        {
            new Gcp.Redis.Inputs.ClusterCrossClusterReplicationConfigSecondaryClusterArgs
            {
                Cluster = "string",
                Uid = "string",
            },
        },
        UpdateTime = "string",
    },
    TransitEncryptionMode = "string",
    ZoneDistributionConfig = new Gcp.Redis.Inputs.ClusterZoneDistributionConfigArgs
    {
        Mode = "string",
        Zone = "string",
    },
});
Copy
example, err := redis.NewCluster(ctx, "exampleclusterResourceResourceFromRediscluster", &redis.ClusterArgs{
	ShardCount: pulumi.Int(0),
	Project:    pulumi.String("string"),
	PscConfigs: redis.ClusterPscConfigArray{
		&redis.ClusterPscConfigArgs{
			Network: pulumi.String("string"),
		},
	},
	KmsKey: pulumi.String("string"),
	MaintenancePolicy: &redis.ClusterMaintenancePolicyArgs{
		CreateTime: pulumi.String("string"),
		UpdateTime: pulumi.String("string"),
		WeeklyMaintenanceWindows: redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowArray{
			&redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs{
				Day: pulumi.String("string"),
				StartTime: &redis.ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs{
					Hours:   pulumi.Int(0),
					Minutes: pulumi.Int(0),
					Nanos:   pulumi.Int(0),
					Seconds: pulumi.Int(0),
				},
				Duration: pulumi.String("string"),
			},
		},
	},
	Name:                      pulumi.String("string"),
	NodeType:                  pulumi.String("string"),
	DeletionProtectionEnabled: pulumi.Bool(false),
	AuthorizationMode:         pulumi.String("string"),
	PersistenceConfig: &redis.ClusterPersistenceConfigArgs{
		AofConfig: &redis.ClusterPersistenceConfigAofConfigArgs{
			AppendFsync: pulumi.String("string"),
		},
		Mode: pulumi.String("string"),
		RdbConfig: &redis.ClusterPersistenceConfigRdbConfigArgs{
			RdbSnapshotPeriod:    pulumi.String("string"),
			RdbSnapshotStartTime: pulumi.String("string"),
		},
	},
	RedisConfigs: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	Region:       pulumi.String("string"),
	ReplicaCount: pulumi.Int(0),
	CrossClusterReplicationConfig: &redis.ClusterCrossClusterReplicationConfigArgs{
		ClusterRole: pulumi.String("string"),
		Memberships: redis.ClusterCrossClusterReplicationConfigMembershipArray{
			&redis.ClusterCrossClusterReplicationConfigMembershipArgs{
				PrimaryClusters: redis.ClusterCrossClusterReplicationConfigMembershipPrimaryClusterArray{
					&redis.ClusterCrossClusterReplicationConfigMembershipPrimaryClusterArgs{
						Cluster: pulumi.String("string"),
						Uid:     pulumi.String("string"),
					},
				},
				SecondaryClusters: redis.ClusterCrossClusterReplicationConfigMembershipSecondaryClusterArray{
					&redis.ClusterCrossClusterReplicationConfigMembershipSecondaryClusterArgs{
						Cluster: pulumi.String("string"),
						Uid:     pulumi.String("string"),
					},
				},
			},
		},
		PrimaryCluster: &redis.ClusterCrossClusterReplicationConfigPrimaryClusterArgs{
			Cluster: pulumi.String("string"),
			Uid:     pulumi.String("string"),
		},
		SecondaryClusters: redis.ClusterCrossClusterReplicationConfigSecondaryClusterArray{
			&redis.ClusterCrossClusterReplicationConfigSecondaryClusterArgs{
				Cluster: pulumi.String("string"),
				Uid:     pulumi.String("string"),
			},
		},
		UpdateTime: pulumi.String("string"),
	},
	TransitEncryptionMode: pulumi.String("string"),
	ZoneDistributionConfig: &redis.ClusterZoneDistributionConfigArgs{
		Mode: pulumi.String("string"),
		Zone: pulumi.String("string"),
	},
})
Copy
var exampleclusterResourceResourceFromRediscluster = new Cluster("exampleclusterResourceResourceFromRediscluster", ClusterArgs.builder()
    .shardCount(0)
    .project("string")
    .pscConfigs(ClusterPscConfigArgs.builder()
        .network("string")
        .build())
    .kmsKey("string")
    .maintenancePolicy(ClusterMaintenancePolicyArgs.builder()
        .createTime("string")
        .updateTime("string")
        .weeklyMaintenanceWindows(ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs.builder()
            .day("string")
            .startTime(ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs.builder()
                .hours(0)
                .minutes(0)
                .nanos(0)
                .seconds(0)
                .build())
            .duration("string")
            .build())
        .build())
    .name("string")
    .nodeType("string")
    .deletionProtectionEnabled(false)
    .authorizationMode("string")
    .persistenceConfig(ClusterPersistenceConfigArgs.builder()
        .aofConfig(ClusterPersistenceConfigAofConfigArgs.builder()
            .appendFsync("string")
            .build())
        .mode("string")
        .rdbConfig(ClusterPersistenceConfigRdbConfigArgs.builder()
            .rdbSnapshotPeriod("string")
            .rdbSnapshotStartTime("string")
            .build())
        .build())
    .redisConfigs(Map.of("string", "string"))
    .region("string")
    .replicaCount(0)
    .crossClusterReplicationConfig(ClusterCrossClusterReplicationConfigArgs.builder()
        .clusterRole("string")
        .memberships(ClusterCrossClusterReplicationConfigMembershipArgs.builder()
            .primaryClusters(ClusterCrossClusterReplicationConfigMembershipPrimaryClusterArgs.builder()
                .cluster("string")
                .uid("string")
                .build())
            .secondaryClusters(ClusterCrossClusterReplicationConfigMembershipSecondaryClusterArgs.builder()
                .cluster("string")
                .uid("string")
                .build())
            .build())
        .primaryCluster(ClusterCrossClusterReplicationConfigPrimaryClusterArgs.builder()
            .cluster("string")
            .uid("string")
            .build())
        .secondaryClusters(ClusterCrossClusterReplicationConfigSecondaryClusterArgs.builder()
            .cluster("string")
            .uid("string")
            .build())
        .updateTime("string")
        .build())
    .transitEncryptionMode("string")
    .zoneDistributionConfig(ClusterZoneDistributionConfigArgs.builder()
        .mode("string")
        .zone("string")
        .build())
    .build());
Copy
examplecluster_resource_resource_from_rediscluster = gcp.redis.Cluster("exampleclusterResourceResourceFromRediscluster",
    shard_count=0,
    project="string",
    psc_configs=[{
        "network": "string",
    }],
    kms_key="string",
    maintenance_policy={
        "create_time": "string",
        "update_time": "string",
        "weekly_maintenance_windows": [{
            "day": "string",
            "start_time": {
                "hours": 0,
                "minutes": 0,
                "nanos": 0,
                "seconds": 0,
            },
            "duration": "string",
        }],
    },
    name="string",
    node_type="string",
    deletion_protection_enabled=False,
    authorization_mode="string",
    persistence_config={
        "aof_config": {
            "append_fsync": "string",
        },
        "mode": "string",
        "rdb_config": {
            "rdb_snapshot_period": "string",
            "rdb_snapshot_start_time": "string",
        },
    },
    redis_configs={
        "string": "string",
    },
    region="string",
    replica_count=0,
    cross_cluster_replication_config={
        "cluster_role": "string",
        "memberships": [{
            "primary_clusters": [{
                "cluster": "string",
                "uid": "string",
            }],
            "secondary_clusters": [{
                "cluster": "string",
                "uid": "string",
            }],
        }],
        "primary_cluster": {
            "cluster": "string",
            "uid": "string",
        },
        "secondary_clusters": [{
            "cluster": "string",
            "uid": "string",
        }],
        "update_time": "string",
    },
    transit_encryption_mode="string",
    zone_distribution_config={
        "mode": "string",
        "zone": "string",
    })
Copy
const exampleclusterResourceResourceFromRediscluster = new gcp.redis.Cluster("exampleclusterResourceResourceFromRediscluster", {
    shardCount: 0,
    project: "string",
    pscConfigs: [{
        network: "string",
    }],
    kmsKey: "string",
    maintenancePolicy: {
        createTime: "string",
        updateTime: "string",
        weeklyMaintenanceWindows: [{
            day: "string",
            startTime: {
                hours: 0,
                minutes: 0,
                nanos: 0,
                seconds: 0,
            },
            duration: "string",
        }],
    },
    name: "string",
    nodeType: "string",
    deletionProtectionEnabled: false,
    authorizationMode: "string",
    persistenceConfig: {
        aofConfig: {
            appendFsync: "string",
        },
        mode: "string",
        rdbConfig: {
            rdbSnapshotPeriod: "string",
            rdbSnapshotStartTime: "string",
        },
    },
    redisConfigs: {
        string: "string",
    },
    region: "string",
    replicaCount: 0,
    crossClusterReplicationConfig: {
        clusterRole: "string",
        memberships: [{
            primaryClusters: [{
                cluster: "string",
                uid: "string",
            }],
            secondaryClusters: [{
                cluster: "string",
                uid: "string",
            }],
        }],
        primaryCluster: {
            cluster: "string",
            uid: "string",
        },
        secondaryClusters: [{
            cluster: "string",
            uid: "string",
        }],
        updateTime: "string",
    },
    transitEncryptionMode: "string",
    zoneDistributionConfig: {
        mode: "string",
        zone: "string",
    },
});
Copy
type: gcp:redis:Cluster
properties:
    authorizationMode: string
    crossClusterReplicationConfig:
        clusterRole: string
        memberships:
            - primaryClusters:
                - cluster: string
                  uid: string
              secondaryClusters:
                - cluster: string
                  uid: string
        primaryCluster:
            cluster: string
            uid: string
        secondaryClusters:
            - cluster: string
              uid: string
        updateTime: string
    deletionProtectionEnabled: false
    kmsKey: string
    maintenancePolicy:
        createTime: string
        updateTime: string
        weeklyMaintenanceWindows:
            - day: string
              duration: string
              startTime:
                hours: 0
                minutes: 0
                nanos: 0
                seconds: 0
    name: string
    nodeType: string
    persistenceConfig:
        aofConfig:
            appendFsync: string
        mode: string
        rdbConfig:
            rdbSnapshotPeriod: string
            rdbSnapshotStartTime: string
    project: string
    pscConfigs:
        - network: string
    redisConfigs:
        string: string
    region: string
    replicaCount: 0
    shardCount: 0
    transitEncryptionMode: string
    zoneDistributionConfig:
        mode: string
        zone: string
Copy

Cluster Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

The Cluster resource accepts the following input properties:

ShardCount This property is required. int
Required. Number of shards for the Redis cluster.
AuthorizationMode Changes to this property will trigger replacement. string
Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster. Default value is AUTH_MODE_DISABLED. Possible values are: AUTH_MODE_UNSPECIFIED, AUTH_MODE_IAM_AUTH, AUTH_MODE_DISABLED.
CrossClusterReplicationConfig ClusterCrossClusterReplicationConfig
Cross cluster replication config Structure is documented below.
DeletionProtectionEnabled bool
Optional. Indicates if the cluster is deletion protected or not. If the value if set to true, any delete cluster operation will fail. Default value is true.
KmsKey string
The KMS key used to encrypt the at-rest data of the cluster.
MaintenancePolicy ClusterMaintenancePolicy
Maintenance policy for a cluster Structure is documented below.
Name Changes to this property will trigger replacement. string
Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


NodeType Changes to this property will trigger replacement. string
The nodeType for the Redis cluster. If not provided, REDIS_HIGHMEM_MEDIUM will be used as default Possible values are: REDIS_SHARED_CORE_NANO, REDIS_HIGHMEM_MEDIUM, REDIS_HIGHMEM_XLARGE, REDIS_STANDARD_SMALL.
PersistenceConfig ClusterPersistenceConfig
Persistence config (RDB, AOF) for the cluster. Structure is documented below.
Project Changes to this property will trigger replacement. string
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
PscConfigs List<ClusterPscConfig>
Required. Each PscConfig configures the consumer network where two network addresses will be designated to the cluster for client access. Currently, only one PscConfig is supported. Structure is documented below.
RedisConfigs Dictionary<string, string>
Configure Redis Cluster behavior using a subset of native Redis configuration parameters. Please check Memorystore documentation for the list of supported parameters: https://cloud.google.com/memorystore/docs/cluster/supported-instance-configurations
Region Changes to this property will trigger replacement. string
The name of the region of the Redis cluster.
ReplicaCount int
Optional. The number of replica nodes per shard.
TransitEncryptionMode Changes to this property will trigger replacement. string
Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster. Default value is TRANSIT_ENCRYPTION_MODE_DISABLED. Possible values are: TRANSIT_ENCRYPTION_MODE_UNSPECIFIED, TRANSIT_ENCRYPTION_MODE_DISABLED, TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION.
ZoneDistributionConfig Changes to this property will trigger replacement. ClusterZoneDistributionConfig
Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
ShardCount This property is required. int
Required. Number of shards for the Redis cluster.
AuthorizationMode Changes to this property will trigger replacement. string
Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster. Default value is AUTH_MODE_DISABLED. Possible values are: AUTH_MODE_UNSPECIFIED, AUTH_MODE_IAM_AUTH, AUTH_MODE_DISABLED.
CrossClusterReplicationConfig ClusterCrossClusterReplicationConfigArgs
Cross cluster replication config Structure is documented below.
DeletionProtectionEnabled bool
Optional. Indicates if the cluster is deletion protected or not. If the value if set to true, any delete cluster operation will fail. Default value is true.
KmsKey string
The KMS key used to encrypt the at-rest data of the cluster.
MaintenancePolicy ClusterMaintenancePolicyArgs
Maintenance policy for a cluster Structure is documented below.
Name Changes to this property will trigger replacement. string
Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


NodeType Changes to this property will trigger replacement. string
The nodeType for the Redis cluster. If not provided, REDIS_HIGHMEM_MEDIUM will be used as default Possible values are: REDIS_SHARED_CORE_NANO, REDIS_HIGHMEM_MEDIUM, REDIS_HIGHMEM_XLARGE, REDIS_STANDARD_SMALL.
PersistenceConfig ClusterPersistenceConfigArgs
Persistence config (RDB, AOF) for the cluster. Structure is documented below.
Project Changes to this property will trigger replacement. string
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
PscConfigs []ClusterPscConfigArgs
Required. Each PscConfig configures the consumer network where two network addresses will be designated to the cluster for client access. Currently, only one PscConfig is supported. Structure is documented below.
RedisConfigs map[string]string
Configure Redis Cluster behavior using a subset of native Redis configuration parameters. Please check Memorystore documentation for the list of supported parameters: https://cloud.google.com/memorystore/docs/cluster/supported-instance-configurations
Region Changes to this property will trigger replacement. string
The name of the region of the Redis cluster.
ReplicaCount int
Optional. The number of replica nodes per shard.
TransitEncryptionMode Changes to this property will trigger replacement. string
Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster. Default value is TRANSIT_ENCRYPTION_MODE_DISABLED. Possible values are: TRANSIT_ENCRYPTION_MODE_UNSPECIFIED, TRANSIT_ENCRYPTION_MODE_DISABLED, TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION.
ZoneDistributionConfig Changes to this property will trigger replacement. ClusterZoneDistributionConfigArgs
Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
shardCount This property is required. Integer
Required. Number of shards for the Redis cluster.
authorizationMode Changes to this property will trigger replacement. String
Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster. Default value is AUTH_MODE_DISABLED. Possible values are: AUTH_MODE_UNSPECIFIED, AUTH_MODE_IAM_AUTH, AUTH_MODE_DISABLED.
crossClusterReplicationConfig ClusterCrossClusterReplicationConfig
Cross cluster replication config Structure is documented below.
deletionProtectionEnabled Boolean
Optional. Indicates if the cluster is deletion protected or not. If the value if set to true, any delete cluster operation will fail. Default value is true.
kmsKey String
The KMS key used to encrypt the at-rest data of the cluster.
maintenancePolicy ClusterMaintenancePolicy
Maintenance policy for a cluster Structure is documented below.
name Changes to this property will trigger replacement. String
Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


nodeType Changes to this property will trigger replacement. String
The nodeType for the Redis cluster. If not provided, REDIS_HIGHMEM_MEDIUM will be used as default Possible values are: REDIS_SHARED_CORE_NANO, REDIS_HIGHMEM_MEDIUM, REDIS_HIGHMEM_XLARGE, REDIS_STANDARD_SMALL.
persistenceConfig ClusterPersistenceConfig
Persistence config (RDB, AOF) for the cluster. Structure is documented below.
project Changes to this property will trigger replacement. String
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
pscConfigs List<ClusterPscConfig>
Required. Each PscConfig configures the consumer network where two network addresses will be designated to the cluster for client access. Currently, only one PscConfig is supported. Structure is documented below.
redisConfigs Map<String,String>
Configure Redis Cluster behavior using a subset of native Redis configuration parameters. Please check Memorystore documentation for the list of supported parameters: https://cloud.google.com/memorystore/docs/cluster/supported-instance-configurations
region Changes to this property will trigger replacement. String
The name of the region of the Redis cluster.
replicaCount Integer
Optional. The number of replica nodes per shard.
transitEncryptionMode Changes to this property will trigger replacement. String
Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster. Default value is TRANSIT_ENCRYPTION_MODE_DISABLED. Possible values are: TRANSIT_ENCRYPTION_MODE_UNSPECIFIED, TRANSIT_ENCRYPTION_MODE_DISABLED, TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION.
zoneDistributionConfig Changes to this property will trigger replacement. ClusterZoneDistributionConfig
Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
shardCount This property is required. number
Required. Number of shards for the Redis cluster.
authorizationMode Changes to this property will trigger replacement. string
Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster. Default value is AUTH_MODE_DISABLED. Possible values are: AUTH_MODE_UNSPECIFIED, AUTH_MODE_IAM_AUTH, AUTH_MODE_DISABLED.
crossClusterReplicationConfig ClusterCrossClusterReplicationConfig
Cross cluster replication config Structure is documented below.
deletionProtectionEnabled boolean
Optional. Indicates if the cluster is deletion protected or not. If the value if set to true, any delete cluster operation will fail. Default value is true.
kmsKey string
The KMS key used to encrypt the at-rest data of the cluster.
maintenancePolicy ClusterMaintenancePolicy
Maintenance policy for a cluster Structure is documented below.
name Changes to this property will trigger replacement. string
Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


nodeType Changes to this property will trigger replacement. string
The nodeType for the Redis cluster. If not provided, REDIS_HIGHMEM_MEDIUM will be used as default Possible values are: REDIS_SHARED_CORE_NANO, REDIS_HIGHMEM_MEDIUM, REDIS_HIGHMEM_XLARGE, REDIS_STANDARD_SMALL.
persistenceConfig ClusterPersistenceConfig
Persistence config (RDB, AOF) for the cluster. Structure is documented below.
project Changes to this property will trigger replacement. string
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
pscConfigs ClusterPscConfig[]
Required. Each PscConfig configures the consumer network where two network addresses will be designated to the cluster for client access. Currently, only one PscConfig is supported. Structure is documented below.
redisConfigs {[key: string]: string}
Configure Redis Cluster behavior using a subset of native Redis configuration parameters. Please check Memorystore documentation for the list of supported parameters: https://cloud.google.com/memorystore/docs/cluster/supported-instance-configurations
region Changes to this property will trigger replacement. string
The name of the region of the Redis cluster.
replicaCount number
Optional. The number of replica nodes per shard.
transitEncryptionMode Changes to this property will trigger replacement. string
Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster. Default value is TRANSIT_ENCRYPTION_MODE_DISABLED. Possible values are: TRANSIT_ENCRYPTION_MODE_UNSPECIFIED, TRANSIT_ENCRYPTION_MODE_DISABLED, TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION.
zoneDistributionConfig Changes to this property will trigger replacement. ClusterZoneDistributionConfig
Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
shard_count This property is required. int
Required. Number of shards for the Redis cluster.
authorization_mode Changes to this property will trigger replacement. str
Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster. Default value is AUTH_MODE_DISABLED. Possible values are: AUTH_MODE_UNSPECIFIED, AUTH_MODE_IAM_AUTH, AUTH_MODE_DISABLED.
cross_cluster_replication_config ClusterCrossClusterReplicationConfigArgs
Cross cluster replication config Structure is documented below.
deletion_protection_enabled bool
Optional. Indicates if the cluster is deletion protected or not. If the value if set to true, any delete cluster operation will fail. Default value is true.
kms_key str
The KMS key used to encrypt the at-rest data of the cluster.
maintenance_policy ClusterMaintenancePolicyArgs
Maintenance policy for a cluster Structure is documented below.
name Changes to this property will trigger replacement. str
Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


node_type Changes to this property will trigger replacement. str
The nodeType for the Redis cluster. If not provided, REDIS_HIGHMEM_MEDIUM will be used as default Possible values are: REDIS_SHARED_CORE_NANO, REDIS_HIGHMEM_MEDIUM, REDIS_HIGHMEM_XLARGE, REDIS_STANDARD_SMALL.
persistence_config ClusterPersistenceConfigArgs
Persistence config (RDB, AOF) for the cluster. Structure is documented below.
project Changes to this property will trigger replacement. str
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
psc_configs Sequence[ClusterPscConfigArgs]
Required. Each PscConfig configures the consumer network where two network addresses will be designated to the cluster for client access. Currently, only one PscConfig is supported. Structure is documented below.
redis_configs Mapping[str, str]
Configure Redis Cluster behavior using a subset of native Redis configuration parameters. Please check Memorystore documentation for the list of supported parameters: https://cloud.google.com/memorystore/docs/cluster/supported-instance-configurations
region Changes to this property will trigger replacement. str
The name of the region of the Redis cluster.
replica_count int
Optional. The number of replica nodes per shard.
transit_encryption_mode Changes to this property will trigger replacement. str
Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster. Default value is TRANSIT_ENCRYPTION_MODE_DISABLED. Possible values are: TRANSIT_ENCRYPTION_MODE_UNSPECIFIED, TRANSIT_ENCRYPTION_MODE_DISABLED, TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION.
zone_distribution_config Changes to this property will trigger replacement. ClusterZoneDistributionConfigArgs
Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
shardCount This property is required. Number
Required. Number of shards for the Redis cluster.
authorizationMode Changes to this property will trigger replacement. String
Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster. Default value is AUTH_MODE_DISABLED. Possible values are: AUTH_MODE_UNSPECIFIED, AUTH_MODE_IAM_AUTH, AUTH_MODE_DISABLED.
crossClusterReplicationConfig Property Map
Cross cluster replication config Structure is documented below.
deletionProtectionEnabled Boolean
Optional. Indicates if the cluster is deletion protected or not. If the value if set to true, any delete cluster operation will fail. Default value is true.
kmsKey String
The KMS key used to encrypt the at-rest data of the cluster.
maintenancePolicy Property Map
Maintenance policy for a cluster Structure is documented below.
name Changes to this property will trigger replacement. String
Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


nodeType Changes to this property will trigger replacement. String
The nodeType for the Redis cluster. If not provided, REDIS_HIGHMEM_MEDIUM will be used as default Possible values are: REDIS_SHARED_CORE_NANO, REDIS_HIGHMEM_MEDIUM, REDIS_HIGHMEM_XLARGE, REDIS_STANDARD_SMALL.
persistenceConfig Property Map
Persistence config (RDB, AOF) for the cluster. Structure is documented below.
project Changes to this property will trigger replacement. String
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
pscConfigs List<Property Map>
Required. Each PscConfig configures the consumer network where two network addresses will be designated to the cluster for client access. Currently, only one PscConfig is supported. Structure is documented below.
redisConfigs Map<String>
Configure Redis Cluster behavior using a subset of native Redis configuration parameters. Please check Memorystore documentation for the list of supported parameters: https://cloud.google.com/memorystore/docs/cluster/supported-instance-configurations
region Changes to this property will trigger replacement. String
The name of the region of the Redis cluster.
replicaCount Number
Optional. The number of replica nodes per shard.
transitEncryptionMode Changes to this property will trigger replacement. String
Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster. Default value is TRANSIT_ENCRYPTION_MODE_DISABLED. Possible values are: TRANSIT_ENCRYPTION_MODE_UNSPECIFIED, TRANSIT_ENCRYPTION_MODE_DISABLED, TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION.
zoneDistributionConfig Changes to this property will trigger replacement. Property Map
Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.

Outputs

All input properties are implicitly available as output properties. Additionally, the Cluster resource produces the following output properties:

CreateTime string
The timestamp associated with the cluster creation request. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
DiscoveryEndpoints List<ClusterDiscoveryEndpoint>
Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one endpoint is supported. Structure is documented below.
Id string
The provider-assigned unique ID for this managed resource.
MaintenanceSchedules List<ClusterMaintenanceSchedule>
Upcoming maintenance schedule. Structure is documented below.
PreciseSizeGb double
Output only. Redis memory precise size in GB for the entire cluster.
PscConnections List<ClusterPscConnection>
Output only. PSC connections for discovery of the cluster topology and accessing the cluster. Structure is documented below.
PscServiceAttachments List<ClusterPscServiceAttachment>
Service attachment details to configure Psc connections. Structure is documented below.
SizeGb int
Output only. Redis memory size in GB for the entire cluster.
State string
The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED
StateInfos List<ClusterStateInfo>
Output only. Additional information about the current state of the cluster. Structure is documented below.
Uid string
System assigned, unique identifier for the cluster.
CreateTime string
The timestamp associated with the cluster creation request. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
DiscoveryEndpoints []ClusterDiscoveryEndpoint
Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one endpoint is supported. Structure is documented below.
Id string
The provider-assigned unique ID for this managed resource.
MaintenanceSchedules []ClusterMaintenanceSchedule
Upcoming maintenance schedule. Structure is documented below.
PreciseSizeGb float64
Output only. Redis memory precise size in GB for the entire cluster.
PscConnections []ClusterPscConnection
Output only. PSC connections for discovery of the cluster topology and accessing the cluster. Structure is documented below.
PscServiceAttachments []ClusterPscServiceAttachment
Service attachment details to configure Psc connections. Structure is documented below.
SizeGb int
Output only. Redis memory size in GB for the entire cluster.
State string
The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED
StateInfos []ClusterStateInfo
Output only. Additional information about the current state of the cluster. Structure is documented below.
Uid string
System assigned, unique identifier for the cluster.
createTime String
The timestamp associated with the cluster creation request. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
discoveryEndpoints List<ClusterDiscoveryEndpoint>
Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one endpoint is supported. Structure is documented below.
id String
The provider-assigned unique ID for this managed resource.
maintenanceSchedules List<ClusterMaintenanceSchedule>
Upcoming maintenance schedule. Structure is documented below.
preciseSizeGb Double
Output only. Redis memory precise size in GB for the entire cluster.
pscConnections List<ClusterPscConnection>
Output only. PSC connections for discovery of the cluster topology and accessing the cluster. Structure is documented below.
pscServiceAttachments List<ClusterPscServiceAttachment>
Service attachment details to configure Psc connections. Structure is documented below.
sizeGb Integer
Output only. Redis memory size in GB for the entire cluster.
state String
The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED
stateInfos List<ClusterStateInfo>
Output only. Additional information about the current state of the cluster. Structure is documented below.
uid String
System assigned, unique identifier for the cluster.
createTime string
The timestamp associated with the cluster creation request. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
discoveryEndpoints ClusterDiscoveryEndpoint[]
Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one endpoint is supported. Structure is documented below.
id string
The provider-assigned unique ID for this managed resource.
maintenanceSchedules ClusterMaintenanceSchedule[]
Upcoming maintenance schedule. Structure is documented below.
preciseSizeGb number
Output only. Redis memory precise size in GB for the entire cluster.
pscConnections ClusterPscConnection[]
Output only. PSC connections for discovery of the cluster topology and accessing the cluster. Structure is documented below.
pscServiceAttachments ClusterPscServiceAttachment[]
Service attachment details to configure Psc connections. Structure is documented below.
sizeGb number
Output only. Redis memory size in GB for the entire cluster.
state string
The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED
stateInfos ClusterStateInfo[]
Output only. Additional information about the current state of the cluster. Structure is documented below.
uid string
System assigned, unique identifier for the cluster.
create_time str
The timestamp associated with the cluster creation request. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
discovery_endpoints Sequence[ClusterDiscoveryEndpoint]
Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one endpoint is supported. Structure is documented below.
id str
The provider-assigned unique ID for this managed resource.
maintenance_schedules Sequence[ClusterMaintenanceSchedule]
Upcoming maintenance schedule. Structure is documented below.
precise_size_gb float
Output only. Redis memory precise size in GB for the entire cluster.
psc_connections Sequence[ClusterPscConnection]
Output only. PSC connections for discovery of the cluster topology and accessing the cluster. Structure is documented below.
psc_service_attachments Sequence[ClusterPscServiceAttachment]
Service attachment details to configure Psc connections. Structure is documented below.
size_gb int
Output only. Redis memory size in GB for the entire cluster.
state str
The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED
state_infos Sequence[ClusterStateInfo]
Output only. Additional information about the current state of the cluster. Structure is documented below.
uid str
System assigned, unique identifier for the cluster.
createTime String
The timestamp associated with the cluster creation request. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
discoveryEndpoints List<Property Map>
Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one endpoint is supported. Structure is documented below.
id String
The provider-assigned unique ID for this managed resource.
maintenanceSchedules List<Property Map>
Upcoming maintenance schedule. Structure is documented below.
preciseSizeGb Number
Output only. Redis memory precise size in GB for the entire cluster.
pscConnections List<Property Map>
Output only. PSC connections for discovery of the cluster topology and accessing the cluster. Structure is documented below.
pscServiceAttachments List<Property Map>
Service attachment details to configure Psc connections. Structure is documented below.
sizeGb Number
Output only. Redis memory size in GB for the entire cluster.
state String
The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED
stateInfos List<Property Map>
Output only. Additional information about the current state of the cluster. Structure is documented below.
uid String
System assigned, unique identifier for the cluster.

Look up Existing Cluster Resource

Get an existing Cluster resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: ClusterState, opts?: CustomResourceOptions): Cluster
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        authorization_mode: Optional[str] = None,
        create_time: Optional[str] = None,
        cross_cluster_replication_config: Optional[ClusterCrossClusterReplicationConfigArgs] = None,
        deletion_protection_enabled: Optional[bool] = None,
        discovery_endpoints: Optional[Sequence[ClusterDiscoveryEndpointArgs]] = None,
        kms_key: Optional[str] = None,
        maintenance_policy: Optional[ClusterMaintenancePolicyArgs] = None,
        maintenance_schedules: Optional[Sequence[ClusterMaintenanceScheduleArgs]] = None,
        name: Optional[str] = None,
        node_type: Optional[str] = None,
        persistence_config: Optional[ClusterPersistenceConfigArgs] = None,
        precise_size_gb: Optional[float] = None,
        project: Optional[str] = None,
        psc_configs: Optional[Sequence[ClusterPscConfigArgs]] = None,
        psc_connections: Optional[Sequence[ClusterPscConnectionArgs]] = None,
        psc_service_attachments: Optional[Sequence[ClusterPscServiceAttachmentArgs]] = None,
        redis_configs: Optional[Mapping[str, str]] = None,
        region: Optional[str] = None,
        replica_count: Optional[int] = None,
        shard_count: Optional[int] = None,
        size_gb: Optional[int] = None,
        state: Optional[str] = None,
        state_infos: Optional[Sequence[ClusterStateInfoArgs]] = None,
        transit_encryption_mode: Optional[str] = None,
        uid: Optional[str] = None,
        zone_distribution_config: Optional[ClusterZoneDistributionConfigArgs] = None) -> Cluster
func GetCluster(ctx *Context, name string, id IDInput, state *ClusterState, opts ...ResourceOption) (*Cluster, error)
public static Cluster Get(string name, Input<string> id, ClusterState? state, CustomResourceOptions? opts = null)
public static Cluster get(String name, Output<String> id, ClusterState state, CustomResourceOptions options)
resources:  _:    type: gcp:redis:Cluster    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
AuthorizationMode Changes to this property will trigger replacement. string
Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster. Default value is AUTH_MODE_DISABLED. Possible values are: AUTH_MODE_UNSPECIFIED, AUTH_MODE_IAM_AUTH, AUTH_MODE_DISABLED.
CreateTime string
The timestamp associated with the cluster creation request. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
CrossClusterReplicationConfig ClusterCrossClusterReplicationConfig
Cross cluster replication config Structure is documented below.
DeletionProtectionEnabled bool
Optional. Indicates if the cluster is deletion protected or not. If the value if set to true, any delete cluster operation will fail. Default value is true.
DiscoveryEndpoints List<ClusterDiscoveryEndpoint>
Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one endpoint is supported. Structure is documented below.
KmsKey string
The KMS key used to encrypt the at-rest data of the cluster.
MaintenancePolicy ClusterMaintenancePolicy
Maintenance policy for a cluster Structure is documented below.
MaintenanceSchedules List<ClusterMaintenanceSchedule>
Upcoming maintenance schedule. Structure is documented below.
Name Changes to this property will trigger replacement. string
Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


NodeType Changes to this property will trigger replacement. string
The nodeType for the Redis cluster. If not provided, REDIS_HIGHMEM_MEDIUM will be used as default Possible values are: REDIS_SHARED_CORE_NANO, REDIS_HIGHMEM_MEDIUM, REDIS_HIGHMEM_XLARGE, REDIS_STANDARD_SMALL.
PersistenceConfig ClusterPersistenceConfig
Persistence config (RDB, AOF) for the cluster. Structure is documented below.
PreciseSizeGb double
Output only. Redis memory precise size in GB for the entire cluster.
Project Changes to this property will trigger replacement. string
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
PscConfigs List<ClusterPscConfig>
Required. Each PscConfig configures the consumer network where two network addresses will be designated to the cluster for client access. Currently, only one PscConfig is supported. Structure is documented below.
PscConnections List<ClusterPscConnection>
Output only. PSC connections for discovery of the cluster topology and accessing the cluster. Structure is documented below.
PscServiceAttachments List<ClusterPscServiceAttachment>
Service attachment details to configure Psc connections. Structure is documented below.
RedisConfigs Dictionary<string, string>
Configure Redis Cluster behavior using a subset of native Redis configuration parameters. Please check Memorystore documentation for the list of supported parameters: https://cloud.google.com/memorystore/docs/cluster/supported-instance-configurations
Region Changes to this property will trigger replacement. string
The name of the region of the Redis cluster.
ReplicaCount int
Optional. The number of replica nodes per shard.
ShardCount int
Required. Number of shards for the Redis cluster.
SizeGb int
Output only. Redis memory size in GB for the entire cluster.
State string
The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED
StateInfos List<ClusterStateInfo>
Output only. Additional information about the current state of the cluster. Structure is documented below.
TransitEncryptionMode Changes to this property will trigger replacement. string
Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster. Default value is TRANSIT_ENCRYPTION_MODE_DISABLED. Possible values are: TRANSIT_ENCRYPTION_MODE_UNSPECIFIED, TRANSIT_ENCRYPTION_MODE_DISABLED, TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION.
Uid string
System assigned, unique identifier for the cluster.
ZoneDistributionConfig Changes to this property will trigger replacement. ClusterZoneDistributionConfig
Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
AuthorizationMode Changes to this property will trigger replacement. string
Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster. Default value is AUTH_MODE_DISABLED. Possible values are: AUTH_MODE_UNSPECIFIED, AUTH_MODE_IAM_AUTH, AUTH_MODE_DISABLED.
CreateTime string
The timestamp associated with the cluster creation request. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
CrossClusterReplicationConfig ClusterCrossClusterReplicationConfigArgs
Cross cluster replication config Structure is documented below.
DeletionProtectionEnabled bool
Optional. Indicates if the cluster is deletion protected or not. If the value if set to true, any delete cluster operation will fail. Default value is true.
DiscoveryEndpoints []ClusterDiscoveryEndpointArgs
Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one endpoint is supported. Structure is documented below.
KmsKey string
The KMS key used to encrypt the at-rest data of the cluster.
MaintenancePolicy ClusterMaintenancePolicyArgs
Maintenance policy for a cluster Structure is documented below.
MaintenanceSchedules []ClusterMaintenanceScheduleArgs
Upcoming maintenance schedule. Structure is documented below.
Name Changes to this property will trigger replacement. string
Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


NodeType Changes to this property will trigger replacement. string
The nodeType for the Redis cluster. If not provided, REDIS_HIGHMEM_MEDIUM will be used as default Possible values are: REDIS_SHARED_CORE_NANO, REDIS_HIGHMEM_MEDIUM, REDIS_HIGHMEM_XLARGE, REDIS_STANDARD_SMALL.
PersistenceConfig ClusterPersistenceConfigArgs
Persistence config (RDB, AOF) for the cluster. Structure is documented below.
PreciseSizeGb float64
Output only. Redis memory precise size in GB for the entire cluster.
Project Changes to this property will trigger replacement. string
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
PscConfigs []ClusterPscConfigArgs
Required. Each PscConfig configures the consumer network where two network addresses will be designated to the cluster for client access. Currently, only one PscConfig is supported. Structure is documented below.
PscConnections []ClusterPscConnectionArgs
Output only. PSC connections for discovery of the cluster topology and accessing the cluster. Structure is documented below.
PscServiceAttachments []ClusterPscServiceAttachmentArgs
Service attachment details to configure Psc connections. Structure is documented below.
RedisConfigs map[string]string
Configure Redis Cluster behavior using a subset of native Redis configuration parameters. Please check Memorystore documentation for the list of supported parameters: https://cloud.google.com/memorystore/docs/cluster/supported-instance-configurations
Region Changes to this property will trigger replacement. string
The name of the region of the Redis cluster.
ReplicaCount int
Optional. The number of replica nodes per shard.
ShardCount int
Required. Number of shards for the Redis cluster.
SizeGb int
Output only. Redis memory size in GB for the entire cluster.
State string
The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED
StateInfos []ClusterStateInfoArgs
Output only. Additional information about the current state of the cluster. Structure is documented below.
TransitEncryptionMode Changes to this property will trigger replacement. string
Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster. Default value is TRANSIT_ENCRYPTION_MODE_DISABLED. Possible values are: TRANSIT_ENCRYPTION_MODE_UNSPECIFIED, TRANSIT_ENCRYPTION_MODE_DISABLED, TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION.
Uid string
System assigned, unique identifier for the cluster.
ZoneDistributionConfig Changes to this property will trigger replacement. ClusterZoneDistributionConfigArgs
Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
authorizationMode Changes to this property will trigger replacement. String
Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster. Default value is AUTH_MODE_DISABLED. Possible values are: AUTH_MODE_UNSPECIFIED, AUTH_MODE_IAM_AUTH, AUTH_MODE_DISABLED.
createTime String
The timestamp associated with the cluster creation request. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
crossClusterReplicationConfig ClusterCrossClusterReplicationConfig
Cross cluster replication config Structure is documented below.
deletionProtectionEnabled Boolean
Optional. Indicates if the cluster is deletion protected or not. If the value if set to true, any delete cluster operation will fail. Default value is true.
discoveryEndpoints List<ClusterDiscoveryEndpoint>
Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one endpoint is supported. Structure is documented below.
kmsKey String
The KMS key used to encrypt the at-rest data of the cluster.
maintenancePolicy ClusterMaintenancePolicy
Maintenance policy for a cluster Structure is documented below.
maintenanceSchedules List<ClusterMaintenanceSchedule>
Upcoming maintenance schedule. Structure is documented below.
name Changes to this property will trigger replacement. String
Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


nodeType Changes to this property will trigger replacement. String
The nodeType for the Redis cluster. If not provided, REDIS_HIGHMEM_MEDIUM will be used as default Possible values are: REDIS_SHARED_CORE_NANO, REDIS_HIGHMEM_MEDIUM, REDIS_HIGHMEM_XLARGE, REDIS_STANDARD_SMALL.
persistenceConfig ClusterPersistenceConfig
Persistence config (RDB, AOF) for the cluster. Structure is documented below.
preciseSizeGb Double
Output only. Redis memory precise size in GB for the entire cluster.
project Changes to this property will trigger replacement. String
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
pscConfigs List<ClusterPscConfig>
Required. Each PscConfig configures the consumer network where two network addresses will be designated to the cluster for client access. Currently, only one PscConfig is supported. Structure is documented below.
pscConnections List<ClusterPscConnection>
Output only. PSC connections for discovery of the cluster topology and accessing the cluster. Structure is documented below.
pscServiceAttachments List<ClusterPscServiceAttachment>
Service attachment details to configure Psc connections. Structure is documented below.
redisConfigs Map<String,String>
Configure Redis Cluster behavior using a subset of native Redis configuration parameters. Please check Memorystore documentation for the list of supported parameters: https://cloud.google.com/memorystore/docs/cluster/supported-instance-configurations
region Changes to this property will trigger replacement. String
The name of the region of the Redis cluster.
replicaCount Integer
Optional. The number of replica nodes per shard.
shardCount Integer
Required. Number of shards for the Redis cluster.
sizeGb Integer
Output only. Redis memory size in GB for the entire cluster.
state String
The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED
stateInfos List<ClusterStateInfo>
Output only. Additional information about the current state of the cluster. Structure is documented below.
transitEncryptionMode Changes to this property will trigger replacement. String
Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster. Default value is TRANSIT_ENCRYPTION_MODE_DISABLED. Possible values are: TRANSIT_ENCRYPTION_MODE_UNSPECIFIED, TRANSIT_ENCRYPTION_MODE_DISABLED, TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION.
uid String
System assigned, unique identifier for the cluster.
zoneDistributionConfig Changes to this property will trigger replacement. ClusterZoneDistributionConfig
Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
authorizationMode Changes to this property will trigger replacement. string
Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster. Default value is AUTH_MODE_DISABLED. Possible values are: AUTH_MODE_UNSPECIFIED, AUTH_MODE_IAM_AUTH, AUTH_MODE_DISABLED.
createTime string
The timestamp associated with the cluster creation request. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
crossClusterReplicationConfig ClusterCrossClusterReplicationConfig
Cross cluster replication config Structure is documented below.
deletionProtectionEnabled boolean
Optional. Indicates if the cluster is deletion protected or not. If the value if set to true, any delete cluster operation will fail. Default value is true.
discoveryEndpoints ClusterDiscoveryEndpoint[]
Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one endpoint is supported. Structure is documented below.
kmsKey string
The KMS key used to encrypt the at-rest data of the cluster.
maintenancePolicy ClusterMaintenancePolicy
Maintenance policy for a cluster Structure is documented below.
maintenanceSchedules ClusterMaintenanceSchedule[]
Upcoming maintenance schedule. Structure is documented below.
name Changes to this property will trigger replacement. string
Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


nodeType Changes to this property will trigger replacement. string
The nodeType for the Redis cluster. If not provided, REDIS_HIGHMEM_MEDIUM will be used as default Possible values are: REDIS_SHARED_CORE_NANO, REDIS_HIGHMEM_MEDIUM, REDIS_HIGHMEM_XLARGE, REDIS_STANDARD_SMALL.
persistenceConfig ClusterPersistenceConfig
Persistence config (RDB, AOF) for the cluster. Structure is documented below.
preciseSizeGb number
Output only. Redis memory precise size in GB for the entire cluster.
project Changes to this property will trigger replacement. string
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
pscConfigs ClusterPscConfig[]
Required. Each PscConfig configures the consumer network where two network addresses will be designated to the cluster for client access. Currently, only one PscConfig is supported. Structure is documented below.
pscConnections ClusterPscConnection[]
Output only. PSC connections for discovery of the cluster topology and accessing the cluster. Structure is documented below.
pscServiceAttachments ClusterPscServiceAttachment[]
Service attachment details to configure Psc connections. Structure is documented below.
redisConfigs {[key: string]: string}
Configure Redis Cluster behavior using a subset of native Redis configuration parameters. Please check Memorystore documentation for the list of supported parameters: https://cloud.google.com/memorystore/docs/cluster/supported-instance-configurations
region Changes to this property will trigger replacement. string
The name of the region of the Redis cluster.
replicaCount number
Optional. The number of replica nodes per shard.
shardCount number
Required. Number of shards for the Redis cluster.
sizeGb number
Output only. Redis memory size in GB for the entire cluster.
state string
The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED
stateInfos ClusterStateInfo[]
Output only. Additional information about the current state of the cluster. Structure is documented below.
transitEncryptionMode Changes to this property will trigger replacement. string
Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster. Default value is TRANSIT_ENCRYPTION_MODE_DISABLED. Possible values are: TRANSIT_ENCRYPTION_MODE_UNSPECIFIED, TRANSIT_ENCRYPTION_MODE_DISABLED, TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION.
uid string
System assigned, unique identifier for the cluster.
zoneDistributionConfig Changes to this property will trigger replacement. ClusterZoneDistributionConfig
Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
authorization_mode Changes to this property will trigger replacement. str
Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster. Default value is AUTH_MODE_DISABLED. Possible values are: AUTH_MODE_UNSPECIFIED, AUTH_MODE_IAM_AUTH, AUTH_MODE_DISABLED.
create_time str
The timestamp associated with the cluster creation request. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
cross_cluster_replication_config ClusterCrossClusterReplicationConfigArgs
Cross cluster replication config Structure is documented below.
deletion_protection_enabled bool
Optional. Indicates if the cluster is deletion protected or not. If the value if set to true, any delete cluster operation will fail. Default value is true.
discovery_endpoints Sequence[ClusterDiscoveryEndpointArgs]
Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one endpoint is supported. Structure is documented below.
kms_key str
The KMS key used to encrypt the at-rest data of the cluster.
maintenance_policy ClusterMaintenancePolicyArgs
Maintenance policy for a cluster Structure is documented below.
maintenance_schedules Sequence[ClusterMaintenanceScheduleArgs]
Upcoming maintenance schedule. Structure is documented below.
name Changes to this property will trigger replacement. str
Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


node_type Changes to this property will trigger replacement. str
The nodeType for the Redis cluster. If not provided, REDIS_HIGHMEM_MEDIUM will be used as default Possible values are: REDIS_SHARED_CORE_NANO, REDIS_HIGHMEM_MEDIUM, REDIS_HIGHMEM_XLARGE, REDIS_STANDARD_SMALL.
persistence_config ClusterPersistenceConfigArgs
Persistence config (RDB, AOF) for the cluster. Structure is documented below.
precise_size_gb float
Output only. Redis memory precise size in GB for the entire cluster.
project Changes to this property will trigger replacement. str
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
psc_configs Sequence[ClusterPscConfigArgs]
Required. Each PscConfig configures the consumer network where two network addresses will be designated to the cluster for client access. Currently, only one PscConfig is supported. Structure is documented below.
psc_connections Sequence[ClusterPscConnectionArgs]
Output only. PSC connections for discovery of the cluster topology and accessing the cluster. Structure is documented below.
psc_service_attachments Sequence[ClusterPscServiceAttachmentArgs]
Service attachment details to configure Psc connections. Structure is documented below.
redis_configs Mapping[str, str]
Configure Redis Cluster behavior using a subset of native Redis configuration parameters. Please check Memorystore documentation for the list of supported parameters: https://cloud.google.com/memorystore/docs/cluster/supported-instance-configurations
region Changes to this property will trigger replacement. str
The name of the region of the Redis cluster.
replica_count int
Optional. The number of replica nodes per shard.
shard_count int
Required. Number of shards for the Redis cluster.
size_gb int
Output only. Redis memory size in GB for the entire cluster.
state str
The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED
state_infos Sequence[ClusterStateInfoArgs]
Output only. Additional information about the current state of the cluster. Structure is documented below.
transit_encryption_mode Changes to this property will trigger replacement. str
Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster. Default value is TRANSIT_ENCRYPTION_MODE_DISABLED. Possible values are: TRANSIT_ENCRYPTION_MODE_UNSPECIFIED, TRANSIT_ENCRYPTION_MODE_DISABLED, TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION.
uid str
System assigned, unique identifier for the cluster.
zone_distribution_config Changes to this property will trigger replacement. ClusterZoneDistributionConfigArgs
Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
authorizationMode Changes to this property will trigger replacement. String
Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster. Default value is AUTH_MODE_DISABLED. Possible values are: AUTH_MODE_UNSPECIFIED, AUTH_MODE_IAM_AUTH, AUTH_MODE_DISABLED.
createTime String
The timestamp associated with the cluster creation request. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
crossClusterReplicationConfig Property Map
Cross cluster replication config Structure is documented below.
deletionProtectionEnabled Boolean
Optional. Indicates if the cluster is deletion protected or not. If the value if set to true, any delete cluster operation will fail. Default value is true.
discoveryEndpoints List<Property Map>
Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one endpoint is supported. Structure is documented below.
kmsKey String
The KMS key used to encrypt the at-rest data of the cluster.
maintenancePolicy Property Map
Maintenance policy for a cluster Structure is documented below.
maintenanceSchedules List<Property Map>
Upcoming maintenance schedule. Structure is documented below.
name Changes to this property will trigger replacement. String
Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


nodeType Changes to this property will trigger replacement. String
The nodeType for the Redis cluster. If not provided, REDIS_HIGHMEM_MEDIUM will be used as default Possible values are: REDIS_SHARED_CORE_NANO, REDIS_HIGHMEM_MEDIUM, REDIS_HIGHMEM_XLARGE, REDIS_STANDARD_SMALL.
persistenceConfig Property Map
Persistence config (RDB, AOF) for the cluster. Structure is documented below.
preciseSizeGb Number
Output only. Redis memory precise size in GB for the entire cluster.
project Changes to this property will trigger replacement. String
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
pscConfigs List<Property Map>
Required. Each PscConfig configures the consumer network where two network addresses will be designated to the cluster for client access. Currently, only one PscConfig is supported. Structure is documented below.
pscConnections List<Property Map>
Output only. PSC connections for discovery of the cluster topology and accessing the cluster. Structure is documented below.
pscServiceAttachments List<Property Map>
Service attachment details to configure Psc connections. Structure is documented below.
redisConfigs Map<String>
Configure Redis Cluster behavior using a subset of native Redis configuration parameters. Please check Memorystore documentation for the list of supported parameters: https://cloud.google.com/memorystore/docs/cluster/supported-instance-configurations
region Changes to this property will trigger replacement. String
The name of the region of the Redis cluster.
replicaCount Number
Optional. The number of replica nodes per shard.
shardCount Number
Required. Number of shards for the Redis cluster.
sizeGb Number
Output only. Redis memory size in GB for the entire cluster.
state String
The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED
stateInfos List<Property Map>
Output only. Additional information about the current state of the cluster. Structure is documented below.
transitEncryptionMode Changes to this property will trigger replacement. String
Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster. Default value is TRANSIT_ENCRYPTION_MODE_DISABLED. Possible values are: TRANSIT_ENCRYPTION_MODE_UNSPECIFIED, TRANSIT_ENCRYPTION_MODE_DISABLED, TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION.
uid String
System assigned, unique identifier for the cluster.
zoneDistributionConfig Changes to this property will trigger replacement. Property Map
Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.

Supporting Types

ClusterCrossClusterReplicationConfig
, ClusterCrossClusterReplicationConfigArgs

ClusterRole string
The role of the cluster in cross cluster replication. Supported values are:

  1. CLUSTER_ROLE_UNSPECIFIED: This is an independent cluster that has never participated in cross cluster replication. It allows both reads and writes.
  2. NONE: This is an independent cluster that previously participated in cross cluster replication(either as a PRIMARY or SECONDARY cluster). It allows both reads and writes.
  3. PRIMARY: This cluster serves as the replication source for secondary clusters that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
  4. SECONDARY: This cluster replicates data from the primary cluster. It allows only reads. Possible values are: CLUSTER_ROLE_UNSPECIFIED, NONE, PRIMARY, SECONDARY.
Memberships List<ClusterCrossClusterReplicationConfigMembership>
(Output) An output only view of all the member clusters participating in cross cluster replication. This field is populated for all the member clusters irrespective of their cluster role. Structure is documented below.
PrimaryCluster ClusterCrossClusterReplicationConfigPrimaryCluster
Details of the primary cluster that is used as the replication source for this secondary cluster. This is allowed to be set only for clusters whose cluster role is of type SECONDARY. Structure is documented below.
SecondaryClusters List<ClusterCrossClusterReplicationConfigSecondaryCluster>
List of secondary clusters that are replicating from this primary cluster. This is allowed to be set only for clusters whose cluster role is of type PRIMARY. Structure is documented below.
UpdateTime string
(Output) The last time cross cluster replication config was updated.
ClusterRole string
The role of the cluster in cross cluster replication. Supported values are:

  1. CLUSTER_ROLE_UNSPECIFIED: This is an independent cluster that has never participated in cross cluster replication. It allows both reads and writes.
  2. NONE: This is an independent cluster that previously participated in cross cluster replication(either as a PRIMARY or SECONDARY cluster). It allows both reads and writes.
  3. PRIMARY: This cluster serves as the replication source for secondary clusters that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
  4. SECONDARY: This cluster replicates data from the primary cluster. It allows only reads. Possible values are: CLUSTER_ROLE_UNSPECIFIED, NONE, PRIMARY, SECONDARY.
Memberships []ClusterCrossClusterReplicationConfigMembership
(Output) An output only view of all the member clusters participating in cross cluster replication. This field is populated for all the member clusters irrespective of their cluster role. Structure is documented below.
PrimaryCluster ClusterCrossClusterReplicationConfigPrimaryCluster
Details of the primary cluster that is used as the replication source for this secondary cluster. This is allowed to be set only for clusters whose cluster role is of type SECONDARY. Structure is documented below.
SecondaryClusters []ClusterCrossClusterReplicationConfigSecondaryCluster
List of secondary clusters that are replicating from this primary cluster. This is allowed to be set only for clusters whose cluster role is of type PRIMARY. Structure is documented below.
UpdateTime string
(Output) The last time cross cluster replication config was updated.
clusterRole String
The role of the cluster in cross cluster replication. Supported values are:

  1. CLUSTER_ROLE_UNSPECIFIED: This is an independent cluster that has never participated in cross cluster replication. It allows both reads and writes.
  2. NONE: This is an independent cluster that previously participated in cross cluster replication(either as a PRIMARY or SECONDARY cluster). It allows both reads and writes.
  3. PRIMARY: This cluster serves as the replication source for secondary clusters that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
  4. SECONDARY: This cluster replicates data from the primary cluster. It allows only reads. Possible values are: CLUSTER_ROLE_UNSPECIFIED, NONE, PRIMARY, SECONDARY.
memberships List<ClusterCrossClusterReplicationConfigMembership>
(Output) An output only view of all the member clusters participating in cross cluster replication. This field is populated for all the member clusters irrespective of their cluster role. Structure is documented below.
primaryCluster ClusterCrossClusterReplicationConfigPrimaryCluster
Details of the primary cluster that is used as the replication source for this secondary cluster. This is allowed to be set only for clusters whose cluster role is of type SECONDARY. Structure is documented below.
secondaryClusters List<ClusterCrossClusterReplicationConfigSecondaryCluster>
List of secondary clusters that are replicating from this primary cluster. This is allowed to be set only for clusters whose cluster role is of type PRIMARY. Structure is documented below.
updateTime String
(Output) The last time cross cluster replication config was updated.
clusterRole string
The role of the cluster in cross cluster replication. Supported values are:

  1. CLUSTER_ROLE_UNSPECIFIED: This is an independent cluster that has never participated in cross cluster replication. It allows both reads and writes.
  2. NONE: This is an independent cluster that previously participated in cross cluster replication(either as a PRIMARY or SECONDARY cluster). It allows both reads and writes.
  3. PRIMARY: This cluster serves as the replication source for secondary clusters that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
  4. SECONDARY: This cluster replicates data from the primary cluster. It allows only reads. Possible values are: CLUSTER_ROLE_UNSPECIFIED, NONE, PRIMARY, SECONDARY.
memberships ClusterCrossClusterReplicationConfigMembership[]
(Output) An output only view of all the member clusters participating in cross cluster replication. This field is populated for all the member clusters irrespective of their cluster role. Structure is documented below.
primaryCluster ClusterCrossClusterReplicationConfigPrimaryCluster
Details of the primary cluster that is used as the replication source for this secondary cluster. This is allowed to be set only for clusters whose cluster role is of type SECONDARY. Structure is documented below.
secondaryClusters ClusterCrossClusterReplicationConfigSecondaryCluster[]
List of secondary clusters that are replicating from this primary cluster. This is allowed to be set only for clusters whose cluster role is of type PRIMARY. Structure is documented below.
updateTime string
(Output) The last time cross cluster replication config was updated.
cluster_role str
The role of the cluster in cross cluster replication. Supported values are:

  1. CLUSTER_ROLE_UNSPECIFIED: This is an independent cluster that has never participated in cross cluster replication. It allows both reads and writes.
  2. NONE: This is an independent cluster that previously participated in cross cluster replication(either as a PRIMARY or SECONDARY cluster). It allows both reads and writes.
  3. PRIMARY: This cluster serves as the replication source for secondary clusters that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
  4. SECONDARY: This cluster replicates data from the primary cluster. It allows only reads. Possible values are: CLUSTER_ROLE_UNSPECIFIED, NONE, PRIMARY, SECONDARY.
memberships Sequence[ClusterCrossClusterReplicationConfigMembership]
(Output) An output only view of all the member clusters participating in cross cluster replication. This field is populated for all the member clusters irrespective of their cluster role. Structure is documented below.
primary_cluster ClusterCrossClusterReplicationConfigPrimaryCluster
Details of the primary cluster that is used as the replication source for this secondary cluster. This is allowed to be set only for clusters whose cluster role is of type SECONDARY. Structure is documented below.
secondary_clusters Sequence[ClusterCrossClusterReplicationConfigSecondaryCluster]
List of secondary clusters that are replicating from this primary cluster. This is allowed to be set only for clusters whose cluster role is of type PRIMARY. Structure is documented below.
update_time str
(Output) The last time cross cluster replication config was updated.
clusterRole String
The role of the cluster in cross cluster replication. Supported values are:

  1. CLUSTER_ROLE_UNSPECIFIED: This is an independent cluster that has never participated in cross cluster replication. It allows both reads and writes.
  2. NONE: This is an independent cluster that previously participated in cross cluster replication(either as a PRIMARY or SECONDARY cluster). It allows both reads and writes.
  3. PRIMARY: This cluster serves as the replication source for secondary clusters that are replicating from it. Any data written to it is automatically replicated to its secondary clusters. It allows both reads and writes.
  4. SECONDARY: This cluster replicates data from the primary cluster. It allows only reads. Possible values are: CLUSTER_ROLE_UNSPECIFIED, NONE, PRIMARY, SECONDARY.
memberships List<Property Map>
(Output) An output only view of all the member clusters participating in cross cluster replication. This field is populated for all the member clusters irrespective of their cluster role. Structure is documented below.
primaryCluster Property Map
Details of the primary cluster that is used as the replication source for this secondary cluster. This is allowed to be set only for clusters whose cluster role is of type SECONDARY. Structure is documented below.
secondaryClusters List<Property Map>
List of secondary clusters that are replicating from this primary cluster. This is allowed to be set only for clusters whose cluster role is of type PRIMARY. Structure is documented below.
updateTime String
(Output) The last time cross cluster replication config was updated.

ClusterCrossClusterReplicationConfigMembership
, ClusterCrossClusterReplicationConfigMembershipArgs

PrimaryClusters List<ClusterCrossClusterReplicationConfigMembershipPrimaryCluster>
Details of the primary cluster that is used as the replication source for all the secondary clusters.
SecondaryClusters List<ClusterCrossClusterReplicationConfigMembershipSecondaryCluster>
List of secondary clusters that are replicating from the primary cluster.
PrimaryClusters []ClusterCrossClusterReplicationConfigMembershipPrimaryCluster
Details of the primary cluster that is used as the replication source for all the secondary clusters.
SecondaryClusters []ClusterCrossClusterReplicationConfigMembershipSecondaryCluster
List of secondary clusters that are replicating from the primary cluster.
primaryClusters List<ClusterCrossClusterReplicationConfigMembershipPrimaryCluster>
Details of the primary cluster that is used as the replication source for all the secondary clusters.
secondaryClusters List<ClusterCrossClusterReplicationConfigMembershipSecondaryCluster>
List of secondary clusters that are replicating from the primary cluster.
primaryClusters ClusterCrossClusterReplicationConfigMembershipPrimaryCluster[]
Details of the primary cluster that is used as the replication source for all the secondary clusters.
secondaryClusters ClusterCrossClusterReplicationConfigMembershipSecondaryCluster[]
List of secondary clusters that are replicating from the primary cluster.
primary_clusters Sequence[ClusterCrossClusterReplicationConfigMembershipPrimaryCluster]
Details of the primary cluster that is used as the replication source for all the secondary clusters.
secondary_clusters Sequence[ClusterCrossClusterReplicationConfigMembershipSecondaryCluster]
List of secondary clusters that are replicating from the primary cluster.
primaryClusters List<Property Map>
Details of the primary cluster that is used as the replication source for all the secondary clusters.
secondaryClusters List<Property Map>
List of secondary clusters that are replicating from the primary cluster.

ClusterCrossClusterReplicationConfigMembershipPrimaryCluster
, ClusterCrossClusterReplicationConfigMembershipPrimaryClusterArgs

Cluster string
The full resource path of the primary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
Uid string
(Output) The unique id of the primary cluster.
Cluster string
The full resource path of the primary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
Uid string
(Output) The unique id of the primary cluster.
cluster String
The full resource path of the primary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
uid String
(Output) The unique id of the primary cluster.
cluster string
The full resource path of the primary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
uid string
(Output) The unique id of the primary cluster.
cluster str
The full resource path of the primary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
uid str
(Output) The unique id of the primary cluster.
cluster String
The full resource path of the primary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
uid String
(Output) The unique id of the primary cluster.

ClusterCrossClusterReplicationConfigMembershipSecondaryCluster
, ClusterCrossClusterReplicationConfigMembershipSecondaryClusterArgs

Cluster string
(Output) The full resource path of the secondary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
Uid string
(Output) The unique id of the secondary cluster.
Cluster string
(Output) The full resource path of the secondary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
Uid string
(Output) The unique id of the secondary cluster.
cluster String
(Output) The full resource path of the secondary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
uid String
(Output) The unique id of the secondary cluster.
cluster string
(Output) The full resource path of the secondary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
uid string
(Output) The unique id of the secondary cluster.
cluster str
(Output) The full resource path of the secondary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
uid str
(Output) The unique id of the secondary cluster.
cluster String
(Output) The full resource path of the secondary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
uid String
(Output) The unique id of the secondary cluster.

ClusterCrossClusterReplicationConfigPrimaryCluster
, ClusterCrossClusterReplicationConfigPrimaryClusterArgs

Cluster string
The full resource path of the primary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
Uid string
(Output) The unique id of the primary cluster.
Cluster string
The full resource path of the primary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
Uid string
(Output) The unique id of the primary cluster.
cluster String
The full resource path of the primary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
uid String
(Output) The unique id of the primary cluster.
cluster string
The full resource path of the primary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
uid string
(Output) The unique id of the primary cluster.
cluster str
The full resource path of the primary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
uid str
(Output) The unique id of the primary cluster.
cluster String
The full resource path of the primary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
uid String
(Output) The unique id of the primary cluster.

ClusterCrossClusterReplicationConfigSecondaryCluster
, ClusterCrossClusterReplicationConfigSecondaryClusterArgs

Cluster string
(Output) The full resource path of the secondary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
Uid string
(Output) The unique id of the secondary cluster.
Cluster string
(Output) The full resource path of the secondary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
Uid string
(Output) The unique id of the secondary cluster.
cluster String
(Output) The full resource path of the secondary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
uid String
(Output) The unique id of the secondary cluster.
cluster string
(Output) The full resource path of the secondary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
uid string
(Output) The unique id of the secondary cluster.
cluster str
(Output) The full resource path of the secondary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
uid str
(Output) The unique id of the secondary cluster.
cluster String
(Output) The full resource path of the secondary cluster in the format: projects/{project}/locations/{region}/clusters/{cluster-id}
uid String
(Output) The unique id of the secondary cluster.

ClusterDiscoveryEndpoint
, ClusterDiscoveryEndpointArgs

Address string
Output only. The IP allocated on the consumer network for the PSC forwarding rule.
Port int
Output only. The port number of the exposed Redis endpoint.
PscConfig ClusterDiscoveryEndpointPscConfig
Output only. Customer configuration for where the endpoint is created and accessed from. Structure is documented below.
Address string
Output only. The IP allocated on the consumer network for the PSC forwarding rule.
Port int
Output only. The port number of the exposed Redis endpoint.
PscConfig ClusterDiscoveryEndpointPscConfig
Output only. Customer configuration for where the endpoint is created and accessed from. Structure is documented below.
address String
Output only. The IP allocated on the consumer network for the PSC forwarding rule.
port Integer
Output only. The port number of the exposed Redis endpoint.
pscConfig ClusterDiscoveryEndpointPscConfig
Output only. Customer configuration for where the endpoint is created and accessed from. Structure is documented below.
address string
Output only. The IP allocated on the consumer network for the PSC forwarding rule.
port number
Output only. The port number of the exposed Redis endpoint.
pscConfig ClusterDiscoveryEndpointPscConfig
Output only. Customer configuration for where the endpoint is created and accessed from. Structure is documented below.
address str
Output only. The IP allocated on the consumer network for the PSC forwarding rule.
port int
Output only. The port number of the exposed Redis endpoint.
psc_config ClusterDiscoveryEndpointPscConfig
Output only. Customer configuration for where the endpoint is created and accessed from. Structure is documented below.
address String
Output only. The IP allocated on the consumer network for the PSC forwarding rule.
port Number
Output only. The port number of the exposed Redis endpoint.
pscConfig Property Map
Output only. Customer configuration for where the endpoint is created and accessed from. Structure is documented below.

ClusterDiscoveryEndpointPscConfig
, ClusterDiscoveryEndpointPscConfigArgs

Network string
The consumer network where the IP address resides, in the form of projects/{projectId}/global/networks/{network_id}.
Network string
The consumer network where the IP address resides, in the form of projects/{projectId}/global/networks/{network_id}.
network String
The consumer network where the IP address resides, in the form of projects/{projectId}/global/networks/{network_id}.
network string
The consumer network where the IP address resides, in the form of projects/{projectId}/global/networks/{network_id}.
network str
The consumer network where the IP address resides, in the form of projects/{projectId}/global/networks/{network_id}.
network String
The consumer network where the IP address resides, in the form of projects/{projectId}/global/networks/{network_id}.

ClusterMaintenancePolicy
, ClusterMaintenancePolicyArgs

CreateTime string
(Output) Output only. The time when the policy was created. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
UpdateTime string
(Output) Output only. The time when the policy was last updated. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
WeeklyMaintenanceWindows List<ClusterMaintenancePolicyWeeklyMaintenanceWindow>
Optional. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_window is expected to be one. Structure is documented below.
CreateTime string
(Output) Output only. The time when the policy was created. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
UpdateTime string
(Output) Output only. The time when the policy was last updated. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
WeeklyMaintenanceWindows []ClusterMaintenancePolicyWeeklyMaintenanceWindow
Optional. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_window is expected to be one. Structure is documented below.
createTime String
(Output) Output only. The time when the policy was created. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
updateTime String
(Output) Output only. The time when the policy was last updated. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
weeklyMaintenanceWindows List<ClusterMaintenancePolicyWeeklyMaintenanceWindow>
Optional. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_window is expected to be one. Structure is documented below.
createTime string
(Output) Output only. The time when the policy was created. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
updateTime string
(Output) Output only. The time when the policy was last updated. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
weeklyMaintenanceWindows ClusterMaintenancePolicyWeeklyMaintenanceWindow[]
Optional. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_window is expected to be one. Structure is documented below.
create_time str
(Output) Output only. The time when the policy was created. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
update_time str
(Output) Output only. The time when the policy was last updated. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
weekly_maintenance_windows Sequence[ClusterMaintenancePolicyWeeklyMaintenanceWindow]
Optional. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_window is expected to be one. Structure is documented below.
createTime String
(Output) Output only. The time when the policy was created. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
updateTime String
(Output) Output only. The time when the policy was last updated. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
weeklyMaintenanceWindows List<Property Map>
Optional. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_window is expected to be one. Structure is documented below.

ClusterMaintenancePolicyWeeklyMaintenanceWindow
, ClusterMaintenancePolicyWeeklyMaintenanceWindowArgs

Day This property is required. string
Required. The day of week that maintenance updates occur.

  • DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.
  • MONDAY: Monday
  • TUESDAY: Tuesday
  • WEDNESDAY: Wednesday
  • THURSDAY: Thursday
  • FRIDAY: Friday
  • SATURDAY: Saturday
  • SUNDAY: Sunday Possible values are: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
StartTime This property is required. ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTime
Required. Start time of the window in UTC time. Structure is documented below.
Duration string
(Output) Output only. Duration of the maintenance window. The current window is fixed at 1 hour. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
Day This property is required. string
Required. The day of week that maintenance updates occur.

  • DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.
  • MONDAY: Monday
  • TUESDAY: Tuesday
  • WEDNESDAY: Wednesday
  • THURSDAY: Thursday
  • FRIDAY: Friday
  • SATURDAY: Saturday
  • SUNDAY: Sunday Possible values are: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
StartTime This property is required. ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTime
Required. Start time of the window in UTC time. Structure is documented below.
Duration string
(Output) Output only. Duration of the maintenance window. The current window is fixed at 1 hour. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
day This property is required. String
Required. The day of week that maintenance updates occur.

  • DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.
  • MONDAY: Monday
  • TUESDAY: Tuesday
  • WEDNESDAY: Wednesday
  • THURSDAY: Thursday
  • FRIDAY: Friday
  • SATURDAY: Saturday
  • SUNDAY: Sunday Possible values are: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
startTime This property is required. ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTime
Required. Start time of the window in UTC time. Structure is documented below.
duration String
(Output) Output only. Duration of the maintenance window. The current window is fixed at 1 hour. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
day This property is required. string
Required. The day of week that maintenance updates occur.

  • DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.
  • MONDAY: Monday
  • TUESDAY: Tuesday
  • WEDNESDAY: Wednesday
  • THURSDAY: Thursday
  • FRIDAY: Friday
  • SATURDAY: Saturday
  • SUNDAY: Sunday Possible values are: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
startTime This property is required. ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTime
Required. Start time of the window in UTC time. Structure is documented below.
duration string
(Output) Output only. Duration of the maintenance window. The current window is fixed at 1 hour. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
day This property is required. str
Required. The day of week that maintenance updates occur.

  • DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.
  • MONDAY: Monday
  • TUESDAY: Tuesday
  • WEDNESDAY: Wednesday
  • THURSDAY: Thursday
  • FRIDAY: Friday
  • SATURDAY: Saturday
  • SUNDAY: Sunday Possible values are: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
start_time This property is required. ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTime
Required. Start time of the window in UTC time. Structure is documented below.
duration str
(Output) Output only. Duration of the maintenance window. The current window is fixed at 1 hour. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
day This property is required. String
Required. The day of week that maintenance updates occur.

  • DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.
  • MONDAY: Monday
  • TUESDAY: Tuesday
  • WEDNESDAY: Wednesday
  • THURSDAY: Thursday
  • FRIDAY: Friday
  • SATURDAY: Saturday
  • SUNDAY: Sunday Possible values are: DAY_OF_WEEK_UNSPECIFIED, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
startTime This property is required. Property Map
Required. Start time of the window in UTC time. Structure is documented below.
duration String
(Output) Output only. Duration of the maintenance window. The current window is fixed at 1 hour. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".

ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTime
, ClusterMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs

Hours int
Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
Minutes int
Minutes of hour of day. Must be from 0 to 59.
Nanos int
Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Seconds int
Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
Hours int
Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
Minutes int
Minutes of hour of day. Must be from 0 to 59.
Nanos int
Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
Seconds int
Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
hours Integer
Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
minutes Integer
Minutes of hour of day. Must be from 0 to 59.
nanos Integer
Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
seconds Integer
Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
hours number
Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
minutes number
Minutes of hour of day. Must be from 0 to 59.
nanos number
Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
seconds number
Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
hours int
Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
minutes int
Minutes of hour of day. Must be from 0 to 59.
nanos int
Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
seconds int
Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
hours Number
Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
minutes Number
Minutes of hour of day. Must be from 0 to 59.
nanos Number
Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
seconds Number
Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.

ClusterMaintenanceSchedule
, ClusterMaintenanceScheduleArgs

EndTime string
(Output) Output only. The end time of any upcoming scheduled maintenance for this cluster. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
ScheduleDeadlineTime string
(Output) Output only. The deadline that the maintenance schedule start time can not go beyond, including reschedule. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
StartTime string
(Output) Output only. The start time of any upcoming scheduled maintenance for this cluster. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
EndTime string
(Output) Output only. The end time of any upcoming scheduled maintenance for this cluster. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
ScheduleDeadlineTime string
(Output) Output only. The deadline that the maintenance schedule start time can not go beyond, including reschedule. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
StartTime string
(Output) Output only. The start time of any upcoming scheduled maintenance for this cluster. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
endTime String
(Output) Output only. The end time of any upcoming scheduled maintenance for this cluster. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
scheduleDeadlineTime String
(Output) Output only. The deadline that the maintenance schedule start time can not go beyond, including reschedule. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
startTime String
(Output) Output only. The start time of any upcoming scheduled maintenance for this cluster. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
endTime string
(Output) Output only. The end time of any upcoming scheduled maintenance for this cluster. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
scheduleDeadlineTime string
(Output) Output only. The deadline that the maintenance schedule start time can not go beyond, including reschedule. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
startTime string
(Output) Output only. The start time of any upcoming scheduled maintenance for this cluster. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
end_time str
(Output) Output only. The end time of any upcoming scheduled maintenance for this cluster. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
schedule_deadline_time str
(Output) Output only. The deadline that the maintenance schedule start time can not go beyond, including reschedule. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
start_time str
(Output) Output only. The start time of any upcoming scheduled maintenance for this cluster. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
endTime String
(Output) Output only. The end time of any upcoming scheduled maintenance for this cluster. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
scheduleDeadlineTime String
(Output) Output only. The deadline that the maintenance schedule start time can not go beyond, including reschedule. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
startTime String
(Output) Output only. The start time of any upcoming scheduled maintenance for this cluster. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.

ClusterPersistenceConfig
, ClusterPersistenceConfigArgs

AofConfig ClusterPersistenceConfigAofConfig
AOF configuration. This field will be ignored if mode is not AOF. Structure is documented below.
Mode string
Optional. Controls whether Persistence features are enabled. If not provided, the existing value will be used.

  • DISABLED: Persistence (both backup and restore) is disabled for the cluster.
  • RDB: RDB based Persistence is enabled.
  • AOF: AOF based Persistence is enabled. Possible values are: PERSISTENCE_MODE_UNSPECIFIED, DISABLED, RDB, AOF.
RdbConfig ClusterPersistenceConfigRdbConfig
RDB configuration. This field will be ignored if mode is not RDB. Structure is documented below.
AofConfig ClusterPersistenceConfigAofConfig
AOF configuration. This field will be ignored if mode is not AOF. Structure is documented below.
Mode string
Optional. Controls whether Persistence features are enabled. If not provided, the existing value will be used.

  • DISABLED: Persistence (both backup and restore) is disabled for the cluster.
  • RDB: RDB based Persistence is enabled.
  • AOF: AOF based Persistence is enabled. Possible values are: PERSISTENCE_MODE_UNSPECIFIED, DISABLED, RDB, AOF.
RdbConfig ClusterPersistenceConfigRdbConfig
RDB configuration. This field will be ignored if mode is not RDB. Structure is documented below.
aofConfig ClusterPersistenceConfigAofConfig
AOF configuration. This field will be ignored if mode is not AOF. Structure is documented below.
mode String
Optional. Controls whether Persistence features are enabled. If not provided, the existing value will be used.

  • DISABLED: Persistence (both backup and restore) is disabled for the cluster.
  • RDB: RDB based Persistence is enabled.
  • AOF: AOF based Persistence is enabled. Possible values are: PERSISTENCE_MODE_UNSPECIFIED, DISABLED, RDB, AOF.
rdbConfig ClusterPersistenceConfigRdbConfig
RDB configuration. This field will be ignored if mode is not RDB. Structure is documented below.
aofConfig ClusterPersistenceConfigAofConfig
AOF configuration. This field will be ignored if mode is not AOF. Structure is documented below.
mode string
Optional. Controls whether Persistence features are enabled. If not provided, the existing value will be used.

  • DISABLED: Persistence (both backup and restore) is disabled for the cluster.
  • RDB: RDB based Persistence is enabled.
  • AOF: AOF based Persistence is enabled. Possible values are: PERSISTENCE_MODE_UNSPECIFIED, DISABLED, RDB, AOF.
rdbConfig ClusterPersistenceConfigRdbConfig
RDB configuration. This field will be ignored if mode is not RDB. Structure is documented below.
aof_config ClusterPersistenceConfigAofConfig
AOF configuration. This field will be ignored if mode is not AOF. Structure is documented below.
mode str
Optional. Controls whether Persistence features are enabled. If not provided, the existing value will be used.

  • DISABLED: Persistence (both backup and restore) is disabled for the cluster.
  • RDB: RDB based Persistence is enabled.
  • AOF: AOF based Persistence is enabled. Possible values are: PERSISTENCE_MODE_UNSPECIFIED, DISABLED, RDB, AOF.
rdb_config ClusterPersistenceConfigRdbConfig
RDB configuration. This field will be ignored if mode is not RDB. Structure is documented below.
aofConfig Property Map
AOF configuration. This field will be ignored if mode is not AOF. Structure is documented below.
mode String
Optional. Controls whether Persistence features are enabled. If not provided, the existing value will be used.

  • DISABLED: Persistence (both backup and restore) is disabled for the cluster.
  • RDB: RDB based Persistence is enabled.
  • AOF: AOF based Persistence is enabled. Possible values are: PERSISTENCE_MODE_UNSPECIFIED, DISABLED, RDB, AOF.
rdbConfig Property Map
RDB configuration. This field will be ignored if mode is not RDB. Structure is documented below.

ClusterPersistenceConfigAofConfig
, ClusterPersistenceConfigAofConfigArgs

AppendFsync string
Optional. Available fsync modes.

  • NO - Do not explicitly call fsync(). Rely on OS defaults.
  • EVERYSEC - Call fsync() once per second in a background thread. A balance between performance and durability.
  • ALWAYS - Call fsync() for earch write command. Possible values are: APPEND_FSYNC_UNSPECIFIED, NO, EVERYSEC, ALWAYS.
AppendFsync string
Optional. Available fsync modes.

  • NO - Do not explicitly call fsync(). Rely on OS defaults.
  • EVERYSEC - Call fsync() once per second in a background thread. A balance between performance and durability.
  • ALWAYS - Call fsync() for earch write command. Possible values are: APPEND_FSYNC_UNSPECIFIED, NO, EVERYSEC, ALWAYS.
appendFsync String
Optional. Available fsync modes.

  • NO - Do not explicitly call fsync(). Rely on OS defaults.
  • EVERYSEC - Call fsync() once per second in a background thread. A balance between performance and durability.
  • ALWAYS - Call fsync() for earch write command. Possible values are: APPEND_FSYNC_UNSPECIFIED, NO, EVERYSEC, ALWAYS.
appendFsync string
Optional. Available fsync modes.

  • NO - Do not explicitly call fsync(). Rely on OS defaults.
  • EVERYSEC - Call fsync() once per second in a background thread. A balance between performance and durability.
  • ALWAYS - Call fsync() for earch write command. Possible values are: APPEND_FSYNC_UNSPECIFIED, NO, EVERYSEC, ALWAYS.
append_fsync str
Optional. Available fsync modes.

  • NO - Do not explicitly call fsync(). Rely on OS defaults.
  • EVERYSEC - Call fsync() once per second in a background thread. A balance between performance and durability.
  • ALWAYS - Call fsync() for earch write command. Possible values are: APPEND_FSYNC_UNSPECIFIED, NO, EVERYSEC, ALWAYS.
appendFsync String
Optional. Available fsync modes.

  • NO - Do not explicitly call fsync(). Rely on OS defaults.
  • EVERYSEC - Call fsync() once per second in a background thread. A balance between performance and durability.
  • ALWAYS - Call fsync() for earch write command. Possible values are: APPEND_FSYNC_UNSPECIFIED, NO, EVERYSEC, ALWAYS.

ClusterPersistenceConfigRdbConfig
, ClusterPersistenceConfigRdbConfigArgs

RdbSnapshotPeriod string
Optional. Available snapshot periods for scheduling.

  • ONE_HOUR: Snapshot every 1 hour.
  • SIX_HOURS: Snapshot every 6 hours.
  • TWELVE_HOURS: Snapshot every 12 hours.
  • TWENTY_FOUR_HOURS: Snapshot every 24 hours. Possible values are: SNAPSHOT_PERIOD_UNSPECIFIED, ONE_HOUR, SIX_HOURS, TWELVE_HOURS, TWENTY_FOUR_HOURS.
RdbSnapshotStartTime string
The time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used.
RdbSnapshotPeriod string
Optional. Available snapshot periods for scheduling.

  • ONE_HOUR: Snapshot every 1 hour.
  • SIX_HOURS: Snapshot every 6 hours.
  • TWELVE_HOURS: Snapshot every 12 hours.
  • TWENTY_FOUR_HOURS: Snapshot every 24 hours. Possible values are: SNAPSHOT_PERIOD_UNSPECIFIED, ONE_HOUR, SIX_HOURS, TWELVE_HOURS, TWENTY_FOUR_HOURS.
RdbSnapshotStartTime string
The time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used.
rdbSnapshotPeriod String
Optional. Available snapshot periods for scheduling.

  • ONE_HOUR: Snapshot every 1 hour.
  • SIX_HOURS: Snapshot every 6 hours.
  • TWELVE_HOURS: Snapshot every 12 hours.
  • TWENTY_FOUR_HOURS: Snapshot every 24 hours. Possible values are: SNAPSHOT_PERIOD_UNSPECIFIED, ONE_HOUR, SIX_HOURS, TWELVE_HOURS, TWENTY_FOUR_HOURS.
rdbSnapshotStartTime String
The time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used.
rdbSnapshotPeriod string
Optional. Available snapshot periods for scheduling.

  • ONE_HOUR: Snapshot every 1 hour.
  • SIX_HOURS: Snapshot every 6 hours.
  • TWELVE_HOURS: Snapshot every 12 hours.
  • TWENTY_FOUR_HOURS: Snapshot every 24 hours. Possible values are: SNAPSHOT_PERIOD_UNSPECIFIED, ONE_HOUR, SIX_HOURS, TWELVE_HOURS, TWENTY_FOUR_HOURS.
rdbSnapshotStartTime string
The time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used.
rdb_snapshot_period str
Optional. Available snapshot periods for scheduling.

  • ONE_HOUR: Snapshot every 1 hour.
  • SIX_HOURS: Snapshot every 6 hours.
  • TWELVE_HOURS: Snapshot every 12 hours.
  • TWENTY_FOUR_HOURS: Snapshot every 24 hours. Possible values are: SNAPSHOT_PERIOD_UNSPECIFIED, ONE_HOUR, SIX_HOURS, TWELVE_HOURS, TWENTY_FOUR_HOURS.
rdb_snapshot_start_time str
The time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used.
rdbSnapshotPeriod String
Optional. Available snapshot periods for scheduling.

  • ONE_HOUR: Snapshot every 1 hour.
  • SIX_HOURS: Snapshot every 6 hours.
  • TWELVE_HOURS: Snapshot every 12 hours.
  • TWENTY_FOUR_HOURS: Snapshot every 24 hours. Possible values are: SNAPSHOT_PERIOD_UNSPECIFIED, ONE_HOUR, SIX_HOURS, TWELVE_HOURS, TWENTY_FOUR_HOURS.
rdbSnapshotStartTime String
The time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used.

ClusterPscConfig
, ClusterPscConfigArgs

Network This property is required. string
Required. The consumer network where the network address of the discovery endpoint will be reserved, in the form of projects/{network_project_id_or_number}/global/networks/{network_id}.
Network This property is required. string
Required. The consumer network where the network address of the discovery endpoint will be reserved, in the form of projects/{network_project_id_or_number}/global/networks/{network_id}.
network This property is required. String
Required. The consumer network where the network address of the discovery endpoint will be reserved, in the form of projects/{network_project_id_or_number}/global/networks/{network_id}.
network This property is required. string
Required. The consumer network where the network address of the discovery endpoint will be reserved, in the form of projects/{network_project_id_or_number}/global/networks/{network_id}.
network This property is required. str
Required. The consumer network where the network address of the discovery endpoint will be reserved, in the form of projects/{network_project_id_or_number}/global/networks/{network_id}.
network This property is required. String
Required. The consumer network where the network address of the discovery endpoint will be reserved, in the form of projects/{network_project_id_or_number}/global/networks/{network_id}.

ClusterPscConnection
, ClusterPscConnectionArgs

Address string
Output only. The IP allocated on the consumer network for the PSC forwarding rule.
ForwardingRule string
Output only. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
Network string
The consumer network where the IP address resides, in the form of projects/{projectId}/global/networks/{network_id}.
ProjectId string
Output only. The consumer projectId where the forwarding rule is created from.
PscConnectionId string
Output only. The PSC connection id of the forwarding rule connected to the service attachment.
Address string
Output only. The IP allocated on the consumer network for the PSC forwarding rule.
ForwardingRule string
Output only. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
Network string
The consumer network where the IP address resides, in the form of projects/{projectId}/global/networks/{network_id}.
ProjectId string
Output only. The consumer projectId where the forwarding rule is created from.
PscConnectionId string
Output only. The PSC connection id of the forwarding rule connected to the service attachment.
address String
Output only. The IP allocated on the consumer network for the PSC forwarding rule.
forwardingRule String
Output only. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
network String
The consumer network where the IP address resides, in the form of projects/{projectId}/global/networks/{network_id}.
projectId String
Output only. The consumer projectId where the forwarding rule is created from.
pscConnectionId String
Output only. The PSC connection id of the forwarding rule connected to the service attachment.
address string
Output only. The IP allocated on the consumer network for the PSC forwarding rule.
forwardingRule string
Output only. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
network string
The consumer network where the IP address resides, in the form of projects/{projectId}/global/networks/{network_id}.
projectId string
Output only. The consumer projectId where the forwarding rule is created from.
pscConnectionId string
Output only. The PSC connection id of the forwarding rule connected to the service attachment.
address str
Output only. The IP allocated on the consumer network for the PSC forwarding rule.
forwarding_rule str
Output only. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
network str
The consumer network where the IP address resides, in the form of projects/{projectId}/global/networks/{network_id}.
project_id str
Output only. The consumer projectId where the forwarding rule is created from.
psc_connection_id str
Output only. The PSC connection id of the forwarding rule connected to the service attachment.
address String
Output only. The IP allocated on the consumer network for the PSC forwarding rule.
forwardingRule String
Output only. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.
network String
The consumer network where the IP address resides, in the form of projects/{projectId}/global/networks/{network_id}.
projectId String
Output only. The consumer projectId where the forwarding rule is created from.
pscConnectionId String
Output only. The PSC connection id of the forwarding rule connected to the service attachment.

ClusterPscServiceAttachment
, ClusterPscServiceAttachmentArgs

ConnectionType string
(Output) Type of a PSC connection targeting this service attachment.
ServiceAttachment string
(Output) Service attachment URI which your self-created PscConnection should use as
ConnectionType string
(Output) Type of a PSC connection targeting this service attachment.
ServiceAttachment string
(Output) Service attachment URI which your self-created PscConnection should use as
connectionType String
(Output) Type of a PSC connection targeting this service attachment.
serviceAttachment String
(Output) Service attachment URI which your self-created PscConnection should use as
connectionType string
(Output) Type of a PSC connection targeting this service attachment.
serviceAttachment string
(Output) Service attachment URI which your self-created PscConnection should use as
connection_type str
(Output) Type of a PSC connection targeting this service attachment.
service_attachment str
(Output) Service attachment URI which your self-created PscConnection should use as
connectionType String
(Output) Type of a PSC connection targeting this service attachment.
serviceAttachment String
(Output) Service attachment URI which your self-created PscConnection should use as

ClusterStateInfo
, ClusterStateInfoArgs

UpdateInfo ClusterStateInfoUpdateInfo
A nested object resource. Structure is documented below.
UpdateInfo ClusterStateInfoUpdateInfo
A nested object resource. Structure is documented below.
updateInfo ClusterStateInfoUpdateInfo
A nested object resource. Structure is documented below.
updateInfo ClusterStateInfoUpdateInfo
A nested object resource. Structure is documented below.
update_info ClusterStateInfoUpdateInfo
A nested object resource. Structure is documented below.
updateInfo Property Map
A nested object resource. Structure is documented below.

ClusterStateInfoUpdateInfo
, ClusterStateInfoUpdateInfoArgs

TargetReplicaCount int
Target number of replica nodes per shard.
TargetShardCount int
Target number of shards for redis cluster.
TargetReplicaCount int
Target number of replica nodes per shard.
TargetShardCount int
Target number of shards for redis cluster.
targetReplicaCount Integer
Target number of replica nodes per shard.
targetShardCount Integer
Target number of shards for redis cluster.
targetReplicaCount number
Target number of replica nodes per shard.
targetShardCount number
Target number of shards for redis cluster.
target_replica_count int
Target number of replica nodes per shard.
target_shard_count int
Target number of shards for redis cluster.
targetReplicaCount Number
Target number of replica nodes per shard.
targetShardCount Number
Target number of shards for redis cluster.

ClusterZoneDistributionConfig
, ClusterZoneDistributionConfigArgs

Mode string
Immutable. The mode for zone distribution for Memorystore Redis cluster. If not provided, MULTI_ZONE will be used as default Possible values are: MULTI_ZONE, SINGLE_ZONE.
Zone string
Immutable. The zone for single zone Memorystore Redis cluster.
Mode string
Immutable. The mode for zone distribution for Memorystore Redis cluster. If not provided, MULTI_ZONE will be used as default Possible values are: MULTI_ZONE, SINGLE_ZONE.
Zone string
Immutable. The zone for single zone Memorystore Redis cluster.
mode String
Immutable. The mode for zone distribution for Memorystore Redis cluster. If not provided, MULTI_ZONE will be used as default Possible values are: MULTI_ZONE, SINGLE_ZONE.
zone String
Immutable. The zone for single zone Memorystore Redis cluster.
mode string
Immutable. The mode for zone distribution for Memorystore Redis cluster. If not provided, MULTI_ZONE will be used as default Possible values are: MULTI_ZONE, SINGLE_ZONE.
zone string
Immutable. The zone for single zone Memorystore Redis cluster.
mode str
Immutable. The mode for zone distribution for Memorystore Redis cluster. If not provided, MULTI_ZONE will be used as default Possible values are: MULTI_ZONE, SINGLE_ZONE.
zone str
Immutable. The zone for single zone Memorystore Redis cluster.
mode String
Immutable. The mode for zone distribution for Memorystore Redis cluster. If not provided, MULTI_ZONE will be used as default Possible values are: MULTI_ZONE, SINGLE_ZONE.
zone String
Immutable. The zone for single zone Memorystore Redis cluster.

Import

Cluster can be imported using any of these accepted formats:

  • projects/{{project}}/locations/{{region}}/clusters/{{name}}

  • {{project}}/{{region}}/{{name}}

  • {{region}}/{{name}}

  • {{name}}

When using the pulumi import command, Cluster can be imported using one of the formats above. For example:

$ pulumi import gcp:redis/cluster:Cluster default projects/{{project}}/locations/{{region}}/clusters/{{name}}
Copy
$ pulumi import gcp:redis/cluster:Cluster default {{project}}/{{region}}/{{name}}
Copy
$ pulumi import gcp:redis/cluster:Cluster default {{region}}/{{name}}
Copy
$ pulumi import gcp:redis/cluster:Cluster default {{name}}
Copy

To learn more about importing existing cloud resources, see Importing resources.

Package Details

Repository
Google Cloud (GCP) Classic pulumi/pulumi-gcp
License
Apache-2.0
Notes
This Pulumi package is based on the google-beta Terraform Provider.