1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. redis
  5. Cluster
Google Cloud v8.18.0 published on Tuesday, Feb 4, 2025 by Pulumi

gcp.redis.Cluster

Explore with Pulumi AI

gcp logo
Google Cloud v8.18.0 published on Tuesday, Feb 4, 2025 by Pulumi

    Example Usage

    Redis Cluster Ha

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const producerNet = new gcp.compute.Network("producer_net", {
        name: "mynetwork",
        autoCreateSubnetworks: false,
    });
    const producerSubnet = new gcp.compute.Subnetwork("producer_subnet", {
        name: "mysubnet",
        ipCidrRange: "10.0.0.248/29",
        region: "us-central1",
        network: producerNet.id,
    });
    const _default = new gcp.networkconnectivity.ServiceConnectionPolicy("default", {
        name: "mypolicy",
        location: "us-central1",
        serviceClass: "gcp-memorystore-redis",
        description: "my basic service connection policy",
        network: producerNet.id,
        pscConfig: {
            subnetworks: [producerSubnet.id],
        },
    });
    const cluster_ha = new gcp.redis.Cluster("cluster-ha", {
        name: "ha-cluster",
        shardCount: 3,
        pscConfigs: [{
            network: producerNet.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],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    producer_net = gcp.compute.Network("producer_net",
        name="mynetwork",
        auto_create_subnetworks=False)
    producer_subnet = gcp.compute.Subnetwork("producer_subnet",
        name="mysubnet",
        ip_cidr_range="10.0.0.248/29",
        region="us-central1",
        network=producer_net.id)
    default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
        name="mypolicy",
        location="us-central1",
        service_class="gcp-memorystore-redis",
        description="my basic service connection policy",
        network=producer_net.id,
        psc_config={
            "subnetworks": [producer_subnet.id],
        })
    cluster_ha = gcp.redis.Cluster("cluster-ha",
        name="ha-cluster",
        shard_count=3,
        psc_configs=[{
            "network": producer_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]))
    
    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 {
    		producerNet, err := compute.NewNetwork(ctx, "producer_net", &compute.NetworkArgs{
    			Name:                  pulumi.String("mynetwork"),
    			AutoCreateSubnetworks: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		producerSubnet, err := compute.NewSubnetwork(ctx, "producer_subnet", &compute.SubnetworkArgs{
    			Name:        pulumi.String("mysubnet"),
    			IpCidrRange: pulumi.String("10.0.0.248/29"),
    			Region:      pulumi.String("us-central1"),
    			Network:     producerNet.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = networkconnectivity.NewServiceConnectionPolicy(ctx, "default", &networkconnectivity.ServiceConnectionPolicyArgs{
    			Name:         pulumi.String("mypolicy"),
    			Location:     pulumi.String("us-central1"),
    			ServiceClass: pulumi.String("gcp-memorystore-redis"),
    			Description:  pulumi.String("my basic service connection policy"),
    			Network:      producerNet.ID(),
    			PscConfig: &networkconnectivity.ServiceConnectionPolicyPscConfigArgs{
    				Subnetworks: pulumi.StringArray{
    					producerSubnet.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: producerNet.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
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var producerNet = new Gcp.Compute.Network("producer_net", new()
        {
            Name = "mynetwork",
            AutoCreateSubnetworks = false,
        });
    
        var producerSubnet = new Gcp.Compute.Subnetwork("producer_subnet", new()
        {
            Name = "mysubnet",
            IpCidrRange = "10.0.0.248/29",
            Region = "us-central1",
            Network = producerNet.Id,
        });
    
        var @default = new Gcp.NetworkConnectivity.ServiceConnectionPolicy("default", new()
        {
            Name = "mypolicy",
            Location = "us-central1",
            ServiceClass = "gcp-memorystore-redis",
            Description = "my basic service connection policy",
            Network = producerNet.Id,
            PscConfig = new Gcp.NetworkConnectivity.Inputs.ServiceConnectionPolicyPscConfigArgs
            {
                Subnetworks = new[]
                {
                    producerSubnet.Id,
                },
            },
        });
    
        var cluster_ha = new Gcp.Redis.Cluster("cluster-ha", new()
        {
            Name = "ha-cluster",
            ShardCount = 3,
            PscConfigs = new[]
            {
                new Gcp.Redis.Inputs.ClusterPscConfigArgs
                {
                    Network = producerNet.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,
            },
        });
    
    });
    
    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 producerNet = new Network("producerNet", NetworkArgs.builder()
                .name("mynetwork")
                .autoCreateSubnetworks(false)
                .build());
    
            var producerSubnet = new Subnetwork("producerSubnet", SubnetworkArgs.builder()
                .name("mysubnet")
                .ipCidrRange("10.0.0.248/29")
                .region("us-central1")
                .network(producerNet.id())
                .build());
    
            var default_ = new ServiceConnectionPolicy("default", ServiceConnectionPolicyArgs.builder()
                .name("mypolicy")
                .location("us-central1")
                .serviceClass("gcp-memorystore-redis")
                .description("my basic service connection policy")
                .network(producerNet.id())
                .pscConfig(ServiceConnectionPolicyPscConfigArgs.builder()
                    .subnetworks(producerSubnet.id())
                    .build())
                .build());
    
            var cluster_ha = new Cluster("cluster-ha", ClusterArgs.builder()
                .name("ha-cluster")
                .shardCount(3)
                .pscConfigs(ClusterPscConfigArgs.builder()
                    .network(producerNet.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());
    
        }
    }
    
    resources:
      cluster-ha:
        type: gcp:redis:Cluster
        properties:
          name: ha-cluster
          shardCount: 3
          pscConfigs:
            - network: ${producerNet.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: mypolicy
          location: us-central1
          serviceClass: gcp-memorystore-redis
          description: my basic service connection policy
          network: ${producerNet.id}
          pscConfig:
            subnetworks:
              - ${producerSubnet.id}
      producerSubnet:
        type: gcp:compute:Subnetwork
        name: producer_subnet
        properties:
          name: mysubnet
          ipCidrRange: 10.0.0.248/29
          region: us-central1
          network: ${producerNet.id}
      producerNet:
        type: gcp:compute:Network
        name: producer_net
        properties:
          name: mynetwork
          autoCreateSubnetworks: false
    

    Redis Cluster Ha Single Zone

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const producerNet = new gcp.compute.Network("producer_net", {
        name: "mynetwork",
        autoCreateSubnetworks: false,
    });
    const producerSubnet = new gcp.compute.Subnetwork("producer_subnet", {
        name: "mysubnet",
        ipCidrRange: "10.0.0.248/29",
        region: "us-central1",
        network: producerNet.id,
    });
    const _default = new gcp.networkconnectivity.ServiceConnectionPolicy("default", {
        name: "mypolicy",
        location: "us-central1",
        serviceClass: "gcp-memorystore-redis",
        description: "my basic service connection policy",
        network: producerNet.id,
        pscConfig: {
            subnetworks: [producerSubnet.id],
        },
    });
    const cluster_ha_single_zone = new gcp.redis.Cluster("cluster-ha-single-zone", {
        name: "ha-cluster-single-zone",
        shardCount: 3,
        pscConfigs: [{
            network: producerNet.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],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    producer_net = gcp.compute.Network("producer_net",
        name="mynetwork",
        auto_create_subnetworks=False)
    producer_subnet = gcp.compute.Subnetwork("producer_subnet",
        name="mysubnet",
        ip_cidr_range="10.0.0.248/29",
        region="us-central1",
        network=producer_net.id)
    default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
        name="mypolicy",
        location="us-central1",
        service_class="gcp-memorystore-redis",
        description="my basic service connection policy",
        network=producer_net.id,
        psc_config={
            "subnetworks": [producer_subnet.id],
        })
    cluster_ha_single_zone = gcp.redis.Cluster("cluster-ha-single-zone",
        name="ha-cluster-single-zone",
        shard_count=3,
        psc_configs=[{
            "network": producer_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]))
    
    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 {
    		producerNet, err := compute.NewNetwork(ctx, "producer_net", &compute.NetworkArgs{
    			Name:                  pulumi.String("mynetwork"),
    			AutoCreateSubnetworks: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		producerSubnet, err := compute.NewSubnetwork(ctx, "producer_subnet", &compute.SubnetworkArgs{
    			Name:        pulumi.String("mysubnet"),
    			IpCidrRange: pulumi.String("10.0.0.248/29"),
    			Region:      pulumi.String("us-central1"),
    			Network:     producerNet.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = networkconnectivity.NewServiceConnectionPolicy(ctx, "default", &networkconnectivity.ServiceConnectionPolicyArgs{
    			Name:         pulumi.String("mypolicy"),
    			Location:     pulumi.String("us-central1"),
    			ServiceClass: pulumi.String("gcp-memorystore-redis"),
    			Description:  pulumi.String("my basic service connection policy"),
    			Network:      producerNet.ID(),
    			PscConfig: &networkconnectivity.ServiceConnectionPolicyPscConfigArgs{
    				Subnetworks: pulumi.StringArray{
    					producerSubnet.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: producerNet.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
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var producerNet = new Gcp.Compute.Network("producer_net", new()
        {
            Name = "mynetwork",
            AutoCreateSubnetworks = false,
        });
    
        var producerSubnet = new Gcp.Compute.Subnetwork("producer_subnet", new()
        {
            Name = "mysubnet",
            IpCidrRange = "10.0.0.248/29",
            Region = "us-central1",
            Network = producerNet.Id,
        });
    
        var @default = new Gcp.NetworkConnectivity.ServiceConnectionPolicy("default", new()
        {
            Name = "mypolicy",
            Location = "us-central1",
            ServiceClass = "gcp-memorystore-redis",
            Description = "my basic service connection policy",
            Network = producerNet.Id,
            PscConfig = new Gcp.NetworkConnectivity.Inputs.ServiceConnectionPolicyPscConfigArgs
            {
                Subnetworks = new[]
                {
                    producerSubnet.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 = producerNet.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,
            },
        });
    
    });
    
    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 producerNet = new Network("producerNet", NetworkArgs.builder()
                .name("mynetwork")
                .autoCreateSubnetworks(false)
                .build());
    
            var producerSubnet = new Subnetwork("producerSubnet", SubnetworkArgs.builder()
                .name("mysubnet")
                .ipCidrRange("10.0.0.248/29")
                .region("us-central1")
                .network(producerNet.id())
                .build());
    
            var default_ = new ServiceConnectionPolicy("default", ServiceConnectionPolicyArgs.builder()
                .name("mypolicy")
                .location("us-central1")
                .serviceClass("gcp-memorystore-redis")
                .description("my basic service connection policy")
                .network(producerNet.id())
                .pscConfig(ServiceConnectionPolicyPscConfigArgs.builder()
                    .subnetworks(producerSubnet.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(producerNet.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());
    
        }
    }
    
    resources:
      cluster-ha-single-zone:
        type: gcp:redis:Cluster
        properties:
          name: ha-cluster-single-zone
          shardCount: 3
          pscConfigs:
            - network: ${producerNet.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: mypolicy
          location: us-central1
          serviceClass: gcp-memorystore-redis
          description: my basic service connection policy
          network: ${producerNet.id}
          pscConfig:
            subnetworks:
              - ${producerSubnet.id}
      producerSubnet:
        type: gcp:compute:Subnetwork
        name: producer_subnet
        properties:
          name: mysubnet
          ipCidrRange: 10.0.0.248/29
          region: us-central1
          network: ${producerNet.id}
      producerNet:
        type: gcp:compute:Network
        name: producer_net
        properties:
          name: mynetwork
          autoCreateSubnetworks: false
    

    Redis Cluster Secondary

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const producerNet = new gcp.compute.Network("producer_net", {
        name: "mynetwork",
        autoCreateSubnetworks: false,
    });
    const primaryClusterProducerSubnet = new gcp.compute.Subnetwork("primary_cluster_producer_subnet", {
        name: "mysubnet-primary-cluster",
        ipCidrRange: "10.0.1.0/29",
        region: "us-east1",
        network: producerNet.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: producerNet.id,
        pscConfig: {
            subnetworks: [primaryClusterProducerSubnet.id],
        },
    });
    // Primary cluster
    const primaryCluster = new gcp.redis.Cluster("primary_cluster", {
        name: "my-primary-cluster",
        region: "us-east1",
        pscConfigs: [{
            network: producerNet.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 secondaryClusterProducerSubnet = new gcp.compute.Subnetwork("secondary_cluster_producer_subnet", {
        name: "mysubnet-secondary-cluster",
        ipCidrRange: "10.0.2.0/29",
        region: "europe-west1",
        network: producerNet.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: producerNet.id,
        pscConfig: {
            subnetworks: [secondaryClusterProducerSubnet.id],
        },
    });
    // Secondary cluster
    const secondaryCluster = new gcp.redis.Cluster("secondary_cluster", {
        name: "my-secondary-cluster",
        region: "europe-west1",
        pscConfigs: [{
            network: producerNet.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],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    producer_net = gcp.compute.Network("producer_net",
        name="mynetwork",
        auto_create_subnetworks=False)
    primary_cluster_producer_subnet = gcp.compute.Subnetwork("primary_cluster_producer_subnet",
        name="mysubnet-primary-cluster",
        ip_cidr_range="10.0.1.0/29",
        region="us-east1",
        network=producer_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=producer_net.id,
        psc_config={
            "subnetworks": [primary_cluster_producer_subnet.id],
        })
    # Primary cluster
    primary_cluster = gcp.redis.Cluster("primary_cluster",
        name="my-primary-cluster",
        region="us-east1",
        psc_configs=[{
            "network": producer_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_producer_subnet = gcp.compute.Subnetwork("secondary_cluster_producer_subnet",
        name="mysubnet-secondary-cluster",
        ip_cidr_range="10.0.2.0/29",
        region="europe-west1",
        network=producer_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=producer_net.id,
        psc_config={
            "subnetworks": [secondary_cluster_producer_subnet.id],
        })
    # Secondary cluster
    secondary_cluster = gcp.redis.Cluster("secondary_cluster",
        name="my-secondary-cluster",
        region="europe-west1",
        psc_configs=[{
            "network": producer_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]))
    
    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 {
    		producerNet, err := compute.NewNetwork(ctx, "producer_net", &compute.NetworkArgs{
    			Name:                  pulumi.String("mynetwork"),
    			AutoCreateSubnetworks: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		primaryClusterProducerSubnet, err := compute.NewSubnetwork(ctx, "primary_cluster_producer_subnet", &compute.SubnetworkArgs{
    			Name:        pulumi.String("mysubnet-primary-cluster"),
    			IpCidrRange: pulumi.String("10.0.1.0/29"),
    			Region:      pulumi.String("us-east1"),
    			Network:     producerNet.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:      producerNet.ID(),
    			PscConfig: &networkconnectivity.ServiceConnectionPolicyPscConfigArgs{
    				Subnetworks: pulumi.StringArray{
    					primaryClusterProducerSubnet.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: producerNet.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
    		}
    		secondaryClusterProducerSubnet, err := compute.NewSubnetwork(ctx, "secondary_cluster_producer_subnet", &compute.SubnetworkArgs{
    			Name:        pulumi.String("mysubnet-secondary-cluster"),
    			IpCidrRange: pulumi.String("10.0.2.0/29"),
    			Region:      pulumi.String("europe-west1"),
    			Network:     producerNet.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:      producerNet.ID(),
    			PscConfig: &networkconnectivity.ServiceConnectionPolicyPscConfigArgs{
    				Subnetworks: pulumi.StringArray{
    					secondaryClusterProducerSubnet.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: producerNet.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
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var producerNet = new Gcp.Compute.Network("producer_net", new()
        {
            Name = "mynetwork",
            AutoCreateSubnetworks = false,
        });
    
        var primaryClusterProducerSubnet = new Gcp.Compute.Subnetwork("primary_cluster_producer_subnet", new()
        {
            Name = "mysubnet-primary-cluster",
            IpCidrRange = "10.0.1.0/29",
            Region = "us-east1",
            Network = producerNet.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 = producerNet.Id,
            PscConfig = new Gcp.NetworkConnectivity.Inputs.ServiceConnectionPolicyPscConfigArgs
            {
                Subnetworks = new[]
                {
                    primaryClusterProducerSubnet.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 = producerNet.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 secondaryClusterProducerSubnet = new Gcp.Compute.Subnetwork("secondary_cluster_producer_subnet", new()
        {
            Name = "mysubnet-secondary-cluster",
            IpCidrRange = "10.0.2.0/29",
            Region = "europe-west1",
            Network = producerNet.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 = producerNet.Id,
            PscConfig = new Gcp.NetworkConnectivity.Inputs.ServiceConnectionPolicyPscConfigArgs
            {
                Subnetworks = new[]
                {
                    secondaryClusterProducerSubnet.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 = producerNet.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,
            },
        });
    
    });
    
    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 producerNet = new Network("producerNet", NetworkArgs.builder()
                .name("mynetwork")
                .autoCreateSubnetworks(false)
                .build());
    
            var primaryClusterProducerSubnet = new Subnetwork("primaryClusterProducerSubnet", SubnetworkArgs.builder()
                .name("mysubnet-primary-cluster")
                .ipCidrRange("10.0.1.0/29")
                .region("us-east1")
                .network(producerNet.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(producerNet.id())
                .pscConfig(ServiceConnectionPolicyPscConfigArgs.builder()
                    .subnetworks(primaryClusterProducerSubnet.id())
                    .build())
                .build());
    
            // Primary cluster
            var primaryCluster = new Cluster("primaryCluster", ClusterArgs.builder()
                .name("my-primary-cluster")
                .region("us-east1")
                .pscConfigs(ClusterPscConfigArgs.builder()
                    .network(producerNet.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 secondaryClusterProducerSubnet = new Subnetwork("secondaryClusterProducerSubnet", SubnetworkArgs.builder()
                .name("mysubnet-secondary-cluster")
                .ipCidrRange("10.0.2.0/29")
                .region("europe-west1")
                .network(producerNet.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(producerNet.id())
                .pscConfig(ServiceConnectionPolicyPscConfigArgs.builder()
                    .subnetworks(secondaryClusterProducerSubnet.id())
                    .build())
                .build());
    
            // Secondary cluster
            var secondaryCluster = new Cluster("secondaryCluster", ClusterArgs.builder()
                .name("my-secondary-cluster")
                .region("europe-west1")
                .pscConfigs(ClusterPscConfigArgs.builder()
                    .network(producerNet.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());
    
        }
    }
    
    resources:
      # Primary cluster
      primaryCluster:
        type: gcp:redis:Cluster
        name: primary_cluster
        properties:
          name: my-primary-cluster
          region: us-east1
          pscConfigs:
            - network: ${producerNet.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: ${producerNet.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: ${producerNet.id}
          pscConfig:
            subnetworks:
              - ${primaryClusterProducerSubnet.id}
      primaryClusterProducerSubnet:
        type: gcp:compute:Subnetwork
        name: primary_cluster_producer_subnet
        properties:
          name: mysubnet-primary-cluster
          ipCidrRange: 10.0.1.0/29
          region: us-east1
          network: ${producerNet.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: ${producerNet.id}
          pscConfig:
            subnetworks:
              - ${secondaryClusterProducerSubnet.id}
      secondaryClusterProducerSubnet:
        type: gcp:compute:Subnetwork
        name: secondary_cluster_producer_subnet
        properties:
          name: mysubnet-secondary-cluster
          ipCidrRange: 10.0.2.0/29
          region: europe-west1
          network: ${producerNet.id}
      producerNet:
        type: gcp:compute:Network
        name: producer_net
        properties:
          name: mynetwork
          autoCreateSubnetworks: false
    

    Redis Cluster Rdb

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const producerNet = new gcp.compute.Network("producer_net", {
        name: "mynetwork",
        autoCreateSubnetworks: false,
    });
    const producerSubnet = new gcp.compute.Subnetwork("producer_subnet", {
        name: "mysubnet",
        ipCidrRange: "10.0.0.248/29",
        region: "us-central1",
        network: producerNet.id,
    });
    const _default = new gcp.networkconnectivity.ServiceConnectionPolicy("default", {
        name: "mypolicy",
        location: "us-central1",
        serviceClass: "gcp-memorystore-redis",
        description: "my basic service connection policy",
        network: producerNet.id,
        pscConfig: {
            subnetworks: [producerSubnet.id],
        },
    });
    const cluster_rdb = new gcp.redis.Cluster("cluster-rdb", {
        name: "rdb-cluster",
        shardCount: 3,
        pscConfigs: [{
            network: producerNet.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],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    producer_net = gcp.compute.Network("producer_net",
        name="mynetwork",
        auto_create_subnetworks=False)
    producer_subnet = gcp.compute.Subnetwork("producer_subnet",
        name="mysubnet",
        ip_cidr_range="10.0.0.248/29",
        region="us-central1",
        network=producer_net.id)
    default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
        name="mypolicy",
        location="us-central1",
        service_class="gcp-memorystore-redis",
        description="my basic service connection policy",
        network=producer_net.id,
        psc_config={
            "subnetworks": [producer_subnet.id],
        })
    cluster_rdb = gcp.redis.Cluster("cluster-rdb",
        name="rdb-cluster",
        shard_count=3,
        psc_configs=[{
            "network": producer_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]))
    
    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 {
    		producerNet, err := compute.NewNetwork(ctx, "producer_net", &compute.NetworkArgs{
    			Name:                  pulumi.String("mynetwork"),
    			AutoCreateSubnetworks: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		producerSubnet, err := compute.NewSubnetwork(ctx, "producer_subnet", &compute.SubnetworkArgs{
    			Name:        pulumi.String("mysubnet"),
    			IpCidrRange: pulumi.String("10.0.0.248/29"),
    			Region:      pulumi.String("us-central1"),
    			Network:     producerNet.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = networkconnectivity.NewServiceConnectionPolicy(ctx, "default", &networkconnectivity.ServiceConnectionPolicyArgs{
    			Name:         pulumi.String("mypolicy"),
    			Location:     pulumi.String("us-central1"),
    			ServiceClass: pulumi.String("gcp-memorystore-redis"),
    			Description:  pulumi.String("my basic service connection policy"),
    			Network:      producerNet.ID(),
    			PscConfig: &networkconnectivity.ServiceConnectionPolicyPscConfigArgs{
    				Subnetworks: pulumi.StringArray{
    					producerSubnet.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: producerNet.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
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var producerNet = new Gcp.Compute.Network("producer_net", new()
        {
            Name = "mynetwork",
            AutoCreateSubnetworks = false,
        });
    
        var producerSubnet = new Gcp.Compute.Subnetwork("producer_subnet", new()
        {
            Name = "mysubnet",
            IpCidrRange = "10.0.0.248/29",
            Region = "us-central1",
            Network = producerNet.Id,
        });
    
        var @default = new Gcp.NetworkConnectivity.ServiceConnectionPolicy("default", new()
        {
            Name = "mypolicy",
            Location = "us-central1",
            ServiceClass = "gcp-memorystore-redis",
            Description = "my basic service connection policy",
            Network = producerNet.Id,
            PscConfig = new Gcp.NetworkConnectivity.Inputs.ServiceConnectionPolicyPscConfigArgs
            {
                Subnetworks = new[]
                {
                    producerSubnet.Id,
                },
            },
        });
    
        var cluster_rdb = new Gcp.Redis.Cluster("cluster-rdb", new()
        {
            Name = "rdb-cluster",
            ShardCount = 3,
            PscConfigs = new[]
            {
                new Gcp.Redis.Inputs.ClusterPscConfigArgs
                {
                    Network = producerNet.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,
            },
        });
    
    });
    
    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 producerNet = new Network("producerNet", NetworkArgs.builder()
                .name("mynetwork")
                .autoCreateSubnetworks(false)
                .build());
    
            var producerSubnet = new Subnetwork("producerSubnet", SubnetworkArgs.builder()
                .name("mysubnet")
                .ipCidrRange("10.0.0.248/29")
                .region("us-central1")
                .network(producerNet.id())
                .build());
    
            var default_ = new ServiceConnectionPolicy("default", ServiceConnectionPolicyArgs.builder()
                .name("mypolicy")
                .location("us-central1")
                .serviceClass("gcp-memorystore-redis")
                .description("my basic service connection policy")
                .network(producerNet.id())
                .pscConfig(ServiceConnectionPolicyPscConfigArgs.builder()
                    .subnetworks(producerSubnet.id())
                    .build())
                .build());
    
            var cluster_rdb = new Cluster("cluster-rdb", ClusterArgs.builder()
                .name("rdb-cluster")
                .shardCount(3)
                .pscConfigs(ClusterPscConfigArgs.builder()
                    .network(producerNet.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());
    
        }
    }
    
    resources:
      cluster-rdb:
        type: gcp:redis:Cluster
        properties:
          name: rdb-cluster
          shardCount: 3
          pscConfigs:
            - network: ${producerNet.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: mypolicy
          location: us-central1
          serviceClass: gcp-memorystore-redis
          description: my basic service connection policy
          network: ${producerNet.id}
          pscConfig:
            subnetworks:
              - ${producerSubnet.id}
      producerSubnet:
        type: gcp:compute:Subnetwork
        name: producer_subnet
        properties:
          name: mysubnet
          ipCidrRange: 10.0.0.248/29
          region: us-central1
          network: ${producerNet.id}
      producerNet:
        type: gcp:compute:Network
        name: producer_net
        properties:
          name: mynetwork
          autoCreateSubnetworks: false
    

    Redis Cluster Aof

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const producerNet = new gcp.compute.Network("producer_net", {
        name: "mynetwork",
        autoCreateSubnetworks: false,
    });
    const producerSubnet = new gcp.compute.Subnetwork("producer_subnet", {
        name: "mysubnet",
        ipCidrRange: "10.0.0.248/29",
        region: "us-central1",
        network: producerNet.id,
    });
    const _default = new gcp.networkconnectivity.ServiceConnectionPolicy("default", {
        name: "mypolicy",
        location: "us-central1",
        serviceClass: "gcp-memorystore-redis",
        description: "my basic service connection policy",
        network: producerNet.id,
        pscConfig: {
            subnetworks: [producerSubnet.id],
        },
    });
    const cluster_aof = new gcp.redis.Cluster("cluster-aof", {
        name: "aof-cluster",
        shardCount: 3,
        pscConfigs: [{
            network: producerNet.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],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    producer_net = gcp.compute.Network("producer_net",
        name="mynetwork",
        auto_create_subnetworks=False)
    producer_subnet = gcp.compute.Subnetwork("producer_subnet",
        name="mysubnet",
        ip_cidr_range="10.0.0.248/29",
        region="us-central1",
        network=producer_net.id)
    default = gcp.networkconnectivity.ServiceConnectionPolicy("default",
        name="mypolicy",
        location="us-central1",
        service_class="gcp-memorystore-redis",
        description="my basic service connection policy",
        network=producer_net.id,
        psc_config={
            "subnetworks": [producer_subnet.id],
        })
    cluster_aof = gcp.redis.Cluster("cluster-aof",
        name="aof-cluster",
        shard_count=3,
        psc_configs=[{
            "network": producer_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]))
    
    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 {
    		producerNet, err := compute.NewNetwork(ctx, "producer_net", &compute.NetworkArgs{
    			Name:                  pulumi.String("mynetwork"),
    			AutoCreateSubnetworks: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		producerSubnet, err := compute.NewSubnetwork(ctx, "producer_subnet", &compute.SubnetworkArgs{
    			Name:        pulumi.String("mysubnet"),
    			IpCidrRange: pulumi.String("10.0.0.248/29"),
    			Region:      pulumi.String("us-central1"),
    			Network:     producerNet.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = networkconnectivity.NewServiceConnectionPolicy(ctx, "default", &networkconnectivity.ServiceConnectionPolicyArgs{
    			Name:         pulumi.String("mypolicy"),
    			Location:     pulumi.String("us-central1"),
    			ServiceClass: pulumi.String("gcp-memorystore-redis"),
    			Description:  pulumi.String("my basic service connection policy"),
    			Network:      producerNet.ID(),
    			PscConfig: &networkconnectivity.ServiceConnectionPolicyPscConfigArgs{
    				Subnetworks: pulumi.StringArray{
    					producerSubnet.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: producerNet.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
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var producerNet = new Gcp.Compute.Network("producer_net", new()
        {
            Name = "mynetwork",
            AutoCreateSubnetworks = false,
        });
    
        var producerSubnet = new Gcp.Compute.Subnetwork("producer_subnet", new()
        {
            Name = "mysubnet",
            IpCidrRange = "10.0.0.248/29",
            Region = "us-central1",
            Network = producerNet.Id,
        });
    
        var @default = new Gcp.NetworkConnectivity.ServiceConnectionPolicy("default", new()
        {
            Name = "mypolicy",
            Location = "us-central1",
            ServiceClass = "gcp-memorystore-redis",
            Description = "my basic service connection policy",
            Network = producerNet.Id,
            PscConfig = new Gcp.NetworkConnectivity.Inputs.ServiceConnectionPolicyPscConfigArgs
            {
                Subnetworks = new[]
                {
                    producerSubnet.Id,
                },
            },
        });
    
        var cluster_aof = new Gcp.Redis.Cluster("cluster-aof", new()
        {
            Name = "aof-cluster",
            ShardCount = 3,
            PscConfigs = new[]
            {
                new Gcp.Redis.Inputs.ClusterPscConfigArgs
                {
                    Network = producerNet.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,
            },
        });
    
    });
    
    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 producerNet = new Network("producerNet", NetworkArgs.builder()
                .name("mynetwork")
                .autoCreateSubnetworks(false)
                .build());
    
            var producerSubnet = new Subnetwork("producerSubnet", SubnetworkArgs.builder()
                .name("mysubnet")
                .ipCidrRange("10.0.0.248/29")
                .region("us-central1")
                .network(producerNet.id())
                .build());
    
            var default_ = new ServiceConnectionPolicy("default", ServiceConnectionPolicyArgs.builder()
                .name("mypolicy")
                .location("us-central1")
                .serviceClass("gcp-memorystore-redis")
                .description("my basic service connection policy")
                .network(producerNet.id())
                .pscConfig(ServiceConnectionPolicyPscConfigArgs.builder()
                    .subnetworks(producerSubnet.id())
                    .build())
                .build());
    
            var cluster_aof = new Cluster("cluster-aof", ClusterArgs.builder()
                .name("aof-cluster")
                .shardCount(3)
                .pscConfigs(ClusterPscConfigArgs.builder()
                    .network(producerNet.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());
    
        }
    }
    
    resources:
      cluster-aof:
        type: gcp:redis:Cluster
        properties:
          name: aof-cluster
          shardCount: 3
          pscConfigs:
            - network: ${producerNet.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: mypolicy
          location: us-central1
          serviceClass: gcp-memorystore-redis
          description: my basic service connection policy
          network: ${producerNet.id}
          pscConfig:
            subnetworks:
              - ${producerSubnet.id}
      producerSubnet:
        type: gcp:compute:Subnetwork
        name: producer_subnet
        properties:
          name: mysubnet
          ipCidrRange: 10.0.0.248/29
          region: us-central1
          network: ${producerNet.id}
      producerNet:
        type: gcp:compute:Network
        name: producer_net
        properties:
          name: mynetwork
          autoCreateSubnetworks: false
    

    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,
                persistence_config: Optional[ClusterPersistenceConfigArgs] = None,
                psc_configs: Optional[Sequence[ClusterPscConfigArgs]] = None,
                maintenance_policy: Optional[ClusterMaintenancePolicyArgs] = None,
                name: Optional[str] = None,
                node_type: Optional[str] = None,
                authorization_mode: Optional[str] = None,
                project: Optional[str] = None,
                deletion_protection_enabled: Optional[bool] = 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 string
    The unique name of the resource.
    args ClusterArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args 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 string
    The unique name of the resource.
    args ClusterArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ClusterArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args 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,
        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",
            },
        },
        PscConfigs = new[]
        {
            new Gcp.Redis.Inputs.ClusterPscConfigArgs
            {
                Network = "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",
        AuthorizationMode = "string",
        Project = "string",
        DeletionProtectionEnabled = false,
        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",
        },
    });
    
    example, err := redis.NewCluster(ctx, "exampleclusterResourceResourceFromRediscluster", &redis.ClusterArgs{
    	ShardCount: pulumi.Int(0),
    	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"),
    		},
    	},
    	PscConfigs: redis.ClusterPscConfigArray{
    		&redis.ClusterPscConfigArgs{
    			Network: 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"),
    	AuthorizationMode:         pulumi.String("string"),
    	Project:                   pulumi.String("string"),
    	DeletionProtectionEnabled: pulumi.Bool(false),
    	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"),
    	},
    })
    
    var exampleclusterResourceResourceFromRediscluster = new Cluster("exampleclusterResourceResourceFromRediscluster", ClusterArgs.builder()
        .shardCount(0)
        .persistenceConfig(ClusterPersistenceConfigArgs.builder()
            .aofConfig(ClusterPersistenceConfigAofConfigArgs.builder()
                .appendFsync("string")
                .build())
            .mode("string")
            .rdbConfig(ClusterPersistenceConfigRdbConfigArgs.builder()
                .rdbSnapshotPeriod("string")
                .rdbSnapshotStartTime("string")
                .build())
            .build())
        .pscConfigs(ClusterPscConfigArgs.builder()
            .network("string")
            .build())
        .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")
        .authorizationMode("string")
        .project("string")
        .deletionProtectionEnabled(false)
        .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());
    
    examplecluster_resource_resource_from_rediscluster = gcp.redis.Cluster("exampleclusterResourceResourceFromRediscluster",
        shard_count=0,
        persistence_config={
            "aof_config": {
                "append_fsync": "string",
            },
            "mode": "string",
            "rdb_config": {
                "rdb_snapshot_period": "string",
                "rdb_snapshot_start_time": "string",
            },
        },
        psc_configs=[{
            "network": "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",
        authorization_mode="string",
        project="string",
        deletion_protection_enabled=False,
        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",
        })
    
    const exampleclusterResourceResourceFromRediscluster = new gcp.redis.Cluster("exampleclusterResourceResourceFromRediscluster", {
        shardCount: 0,
        persistenceConfig: {
            aofConfig: {
                appendFsync: "string",
            },
            mode: "string",
            rdbConfig: {
                rdbSnapshotPeriod: "string",
                rdbSnapshotStartTime: "string",
            },
        },
        pscConfigs: [{
            network: "string",
        }],
        maintenancePolicy: {
            createTime: "string",
            updateTime: "string",
            weeklyMaintenanceWindows: [{
                day: "string",
                startTime: {
                    hours: 0,
                    minutes: 0,
                    nanos: 0,
                    seconds: 0,
                },
                duration: "string",
            }],
        },
        name: "string",
        nodeType: "string",
        authorizationMode: "string",
        project: "string",
        deletionProtectionEnabled: false,
        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",
        },
    });
    
    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
        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
    

    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 int
    Required. Number of shards for the Redis cluster.
    AuthorizationMode 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.
    MaintenancePolicy ClusterMaintenancePolicy
    Maintenance policy for a cluster Structure is documented below.
    Name string
    Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


    NodeType 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 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 string
    The name of the region of the Redis cluster.
    ReplicaCount int
    Optional. The number of replica nodes per shard.
    TransitEncryptionMode 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 ClusterZoneDistributionConfig
    Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
    ShardCount int
    Required. Number of shards for the Redis cluster.
    AuthorizationMode 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.
    MaintenancePolicy ClusterMaintenancePolicyArgs
    Maintenance policy for a cluster Structure is documented below.
    Name string
    Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


    NodeType 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 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 string
    The name of the region of the Redis cluster.
    ReplicaCount int
    Optional. The number of replica nodes per shard.
    TransitEncryptionMode 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 ClusterZoneDistributionConfigArgs
    Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
    shardCount Integer
    Required. Number of shards for the Redis cluster.
    authorizationMode 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.
    maintenancePolicy ClusterMaintenancePolicy
    Maintenance policy for a cluster Structure is documented below.
    name String
    Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


    nodeType 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 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 String
    The name of the region of the Redis cluster.
    replicaCount Integer
    Optional. The number of replica nodes per shard.
    transitEncryptionMode 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 ClusterZoneDistributionConfig
    Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
    shardCount number
    Required. Number of shards for the Redis cluster.
    authorizationMode 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.
    maintenancePolicy ClusterMaintenancePolicy
    Maintenance policy for a cluster Structure is documented below.
    name string
    Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


    nodeType 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 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 string
    The name of the region of the Redis cluster.
    replicaCount number
    Optional. The number of replica nodes per shard.
    transitEncryptionMode 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 ClusterZoneDistributionConfig
    Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
    shard_count int
    Required. Number of shards for the Redis cluster.
    authorization_mode 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.
    maintenance_policy ClusterMaintenancePolicyArgs
    Maintenance policy for a cluster Structure is documented below.
    name str
    Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


    node_type 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 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 str
    The name of the region of the Redis cluster.
    replica_count int
    Optional. The number of replica nodes per shard.
    transit_encryption_mode 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 ClusterZoneDistributionConfigArgs
    Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
    shardCount Number
    Required. Number of shards for the Redis cluster.
    authorizationMode 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.
    maintenancePolicy Property Map
    Maintenance policy for a cluster Structure is documented below.
    name String
    Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


    nodeType 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 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 String
    The name of the region of the Redis cluster.
    replicaCount Number
    Optional. The number of replica nodes per shard.
    transitEncryptionMode 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 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,
            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
    The unique name of the resulting resource.
    id
    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
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    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
    The unique name of the resulting resource.
    id
    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
    The unique name of the resulting resource.
    id
    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 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.
    MaintenancePolicy ClusterMaintenancePolicy
    Maintenance policy for a cluster Structure is documented below.
    MaintenanceSchedules List<ClusterMaintenanceSchedule>
    Upcoming maintenance schedule. Structure is documented below.
    Name string
    Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


    NodeType 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 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 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 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 ClusterZoneDistributionConfig
    Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
    AuthorizationMode 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.
    MaintenancePolicy ClusterMaintenancePolicyArgs
    Maintenance policy for a cluster Structure is documented below.
    MaintenanceSchedules []ClusterMaintenanceScheduleArgs
    Upcoming maintenance schedule. Structure is documented below.
    Name string
    Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


    NodeType 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 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 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 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 ClusterZoneDistributionConfigArgs
    Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
    authorizationMode 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.
    maintenancePolicy ClusterMaintenancePolicy
    Maintenance policy for a cluster Structure is documented below.
    maintenanceSchedules List<ClusterMaintenanceSchedule>
    Upcoming maintenance schedule. Structure is documented below.
    name String
    Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


    nodeType 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 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 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 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 ClusterZoneDistributionConfig
    Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
    authorizationMode 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.
    maintenancePolicy ClusterMaintenancePolicy
    Maintenance policy for a cluster Structure is documented below.
    maintenanceSchedules ClusterMaintenanceSchedule[]
    Upcoming maintenance schedule. Structure is documented below.
    name string
    Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


    nodeType 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 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 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 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 ClusterZoneDistributionConfig
    Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
    authorization_mode 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.
    maintenance_policy ClusterMaintenancePolicyArgs
    Maintenance policy for a cluster Structure is documented below.
    maintenance_schedules Sequence[ClusterMaintenanceScheduleArgs]
    Upcoming maintenance schedule. Structure is documented below.
    name str
    Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


    node_type 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 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 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 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 ClusterZoneDistributionConfigArgs
    Immutable. Zone distribution config for Memorystore Redis cluster. Structure is documented below.
    authorizationMode 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.
    maintenancePolicy Property Map
    Maintenance policy for a cluster Structure is documented below.
    maintenanceSchedules List<Property Map>
    Upcoming maintenance schedule. Structure is documented below.
    name String
    Unique name of the resource in this scope including project and location using the form: projects/{projectId}/locations/{locationId}/clusters/{clusterId}


    nodeType 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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}}
    
    $ pulumi import gcp:redis/cluster:Cluster default {{project}}/{{region}}/{{name}}
    
    $ pulumi import gcp:redis/cluster:Cluster default {{region}}/{{name}}
    
    $ pulumi import gcp:redis/cluster:Cluster default {{name}}
    

    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.
    gcp logo
    Google Cloud v8.18.0 published on Tuesday, Feb 4, 2025 by Pulumi