1. Packages
  2. AWS Classic
  3. API Docs
  4. rds
  5. GlobalCluster

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.31.1 published on Thursday, Apr 18, 2024 by Pulumi

aws.rds.GlobalCluster

Explore with Pulumi AI

aws logo

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.31.1 published on Thursday, Apr 18, 2024 by Pulumi

    Manages an RDS Global Cluster, which is an Aurora global database spread across multiple regions. The global database contains a single primary cluster with read-write capability, and a read-only secondary cluster that receives data from the primary cluster through high-speed replication performed by the Aurora storage subsystem.

    More information about Aurora global databases can be found in the Aurora User Guide.

    Example Usage

    New MySQL Global Cluster

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = new aws.rds.GlobalCluster("example", {
        globalClusterIdentifier: "global-test",
        engine: "aurora",
        engineVersion: "5.6.mysql_aurora.1.22.2",
        databaseName: "example_db",
    });
    const primary = new aws.rds.Cluster("primary", {
        engine: example.engine,
        engineVersion: example.engineVersion,
        clusterIdentifier: "test-primary-cluster",
        masterUsername: "username",
        masterPassword: "somepass123",
        databaseName: "example_db",
        globalClusterIdentifier: example.id,
        dbSubnetGroupName: "default",
    });
    const primaryClusterInstance = new aws.rds.ClusterInstance("primary", {
        engine: example.engine,
        engineVersion: example.engineVersion,
        identifier: "test-primary-cluster-instance",
        clusterIdentifier: primary.id,
        instanceClass: aws.rds.InstanceType.R4_Large,
        dbSubnetGroupName: "default",
    });
    const secondary = new aws.rds.Cluster("secondary", {
        engine: example.engine,
        engineVersion: example.engineVersion,
        clusterIdentifier: "test-secondary-cluster",
        globalClusterIdentifier: example.id,
        dbSubnetGroupName: "default",
    }, {
        dependsOn: [primaryClusterInstance],
    });
    const secondaryClusterInstance = new aws.rds.ClusterInstance("secondary", {
        engine: example.engine,
        engineVersion: example.engineVersion,
        identifier: "test-secondary-cluster-instance",
        clusterIdentifier: secondary.id,
        instanceClass: aws.rds.InstanceType.R4_Large,
        dbSubnetGroupName: "default",
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.rds.GlobalCluster("example",
        global_cluster_identifier="global-test",
        engine="aurora",
        engine_version="5.6.mysql_aurora.1.22.2",
        database_name="example_db")
    primary = aws.rds.Cluster("primary",
        engine=example.engine,
        engine_version=example.engine_version,
        cluster_identifier="test-primary-cluster",
        master_username="username",
        master_password="somepass123",
        database_name="example_db",
        global_cluster_identifier=example.id,
        db_subnet_group_name="default")
    primary_cluster_instance = aws.rds.ClusterInstance("primary",
        engine=example.engine,
        engine_version=example.engine_version,
        identifier="test-primary-cluster-instance",
        cluster_identifier=primary.id,
        instance_class=aws.rds.InstanceType.R4_LARGE,
        db_subnet_group_name="default")
    secondary = aws.rds.Cluster("secondary",
        engine=example.engine,
        engine_version=example.engine_version,
        cluster_identifier="test-secondary-cluster",
        global_cluster_identifier=example.id,
        db_subnet_group_name="default",
        opts=pulumi.ResourceOptions(depends_on=[primary_cluster_instance]))
    secondary_cluster_instance = aws.rds.ClusterInstance("secondary",
        engine=example.engine,
        engine_version=example.engine_version,
        identifier="test-secondary-cluster-instance",
        cluster_identifier=secondary.id,
        instance_class=aws.rds.InstanceType.R4_LARGE,
        db_subnet_group_name="default")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := rds.NewGlobalCluster(ctx, "example", &rds.GlobalClusterArgs{
    			GlobalClusterIdentifier: pulumi.String("global-test"),
    			Engine:                  pulumi.String("aurora"),
    			EngineVersion:           pulumi.String("5.6.mysql_aurora.1.22.2"),
    			DatabaseName:            pulumi.String("example_db"),
    		})
    		if err != nil {
    			return err
    		}
    		primary, err := rds.NewCluster(ctx, "primary", &rds.ClusterArgs{
    			Engine:                  example.Engine,
    			EngineVersion:           example.EngineVersion,
    			ClusterIdentifier:       pulumi.String("test-primary-cluster"),
    			MasterUsername:          pulumi.String("username"),
    			MasterPassword:          pulumi.String("somepass123"),
    			DatabaseName:            pulumi.String("example_db"),
    			GlobalClusterIdentifier: example.ID(),
    			DbSubnetGroupName:       pulumi.String("default"),
    		})
    		if err != nil {
    			return err
    		}
    		primaryClusterInstance, err := rds.NewClusterInstance(ctx, "primary", &rds.ClusterInstanceArgs{
    			Engine:            example.Engine,
    			EngineVersion:     example.EngineVersion,
    			Identifier:        pulumi.String("test-primary-cluster-instance"),
    			ClusterIdentifier: primary.ID(),
    			InstanceClass:     pulumi.String(rds.InstanceType_R4_Large),
    			DbSubnetGroupName: pulumi.String("default"),
    		})
    		if err != nil {
    			return err
    		}
    		secondary, err := rds.NewCluster(ctx, "secondary", &rds.ClusterArgs{
    			Engine:                  example.Engine,
    			EngineVersion:           example.EngineVersion,
    			ClusterIdentifier:       pulumi.String("test-secondary-cluster"),
    			GlobalClusterIdentifier: example.ID(),
    			DbSubnetGroupName:       pulumi.String("default"),
    		}, pulumi.DependsOn([]pulumi.Resource{
    			primaryClusterInstance,
    		}))
    		if err != nil {
    			return err
    		}
    		_, err = rds.NewClusterInstance(ctx, "secondary", &rds.ClusterInstanceArgs{
    			Engine:            example.Engine,
    			EngineVersion:     example.EngineVersion,
    			Identifier:        pulumi.String("test-secondary-cluster-instance"),
    			ClusterIdentifier: secondary.ID(),
    			InstanceClass:     pulumi.String(rds.InstanceType_R4_Large),
    			DbSubnetGroupName: pulumi.String("default"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.Rds.GlobalCluster("example", new()
        {
            GlobalClusterIdentifier = "global-test",
            Engine = "aurora",
            EngineVersion = "5.6.mysql_aurora.1.22.2",
            DatabaseName = "example_db",
        });
    
        var primary = new Aws.Rds.Cluster("primary", new()
        {
            Engine = example.Engine,
            EngineVersion = example.EngineVersion,
            ClusterIdentifier = "test-primary-cluster",
            MasterUsername = "username",
            MasterPassword = "somepass123",
            DatabaseName = "example_db",
            GlobalClusterIdentifier = example.Id,
            DbSubnetGroupName = "default",
        });
    
        var primaryClusterInstance = new Aws.Rds.ClusterInstance("primary", new()
        {
            Engine = example.Engine,
            EngineVersion = example.EngineVersion,
            Identifier = "test-primary-cluster-instance",
            ClusterIdentifier = primary.Id,
            InstanceClass = Aws.Rds.InstanceType.R4_Large,
            DbSubnetGroupName = "default",
        });
    
        var secondary = new Aws.Rds.Cluster("secondary", new()
        {
            Engine = example.Engine,
            EngineVersion = example.EngineVersion,
            ClusterIdentifier = "test-secondary-cluster",
            GlobalClusterIdentifier = example.Id,
            DbSubnetGroupName = "default",
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                primaryClusterInstance, 
            },
        });
    
        var secondaryClusterInstance = new Aws.Rds.ClusterInstance("secondary", new()
        {
            Engine = example.Engine,
            EngineVersion = example.EngineVersion,
            Identifier = "test-secondary-cluster-instance",
            ClusterIdentifier = secondary.Id,
            InstanceClass = Aws.Rds.InstanceType.R4_Large,
            DbSubnetGroupName = "default",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.rds.GlobalCluster;
    import com.pulumi.aws.rds.GlobalClusterArgs;
    import com.pulumi.aws.rds.Cluster;
    import com.pulumi.aws.rds.ClusterArgs;
    import com.pulumi.aws.rds.ClusterInstance;
    import com.pulumi.aws.rds.ClusterInstanceArgs;
    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 example = new GlobalCluster("example", GlobalClusterArgs.builder()        
                .globalClusterIdentifier("global-test")
                .engine("aurora")
                .engineVersion("5.6.mysql_aurora.1.22.2")
                .databaseName("example_db")
                .build());
    
            var primary = new Cluster("primary", ClusterArgs.builder()        
                .engine(example.engine())
                .engineVersion(example.engineVersion())
                .clusterIdentifier("test-primary-cluster")
                .masterUsername("username")
                .masterPassword("somepass123")
                .databaseName("example_db")
                .globalClusterIdentifier(example.id())
                .dbSubnetGroupName("default")
                .build());
    
            var primaryClusterInstance = new ClusterInstance("primaryClusterInstance", ClusterInstanceArgs.builder()        
                .engine(example.engine())
                .engineVersion(example.engineVersion())
                .identifier("test-primary-cluster-instance")
                .clusterIdentifier(primary.id())
                .instanceClass("db.r4.large")
                .dbSubnetGroupName("default")
                .build());
    
            var secondary = new Cluster("secondary", ClusterArgs.builder()        
                .engine(example.engine())
                .engineVersion(example.engineVersion())
                .clusterIdentifier("test-secondary-cluster")
                .globalClusterIdentifier(example.id())
                .dbSubnetGroupName("default")
                .build(), CustomResourceOptions.builder()
                    .dependsOn(primaryClusterInstance)
                    .build());
    
            var secondaryClusterInstance = new ClusterInstance("secondaryClusterInstance", ClusterInstanceArgs.builder()        
                .engine(example.engine())
                .engineVersion(example.engineVersion())
                .identifier("test-secondary-cluster-instance")
                .clusterIdentifier(secondary.id())
                .instanceClass("db.r4.large")
                .dbSubnetGroupName("default")
                .build());
    
        }
    }
    
    resources:
      example:
        type: aws:rds:GlobalCluster
        properties:
          globalClusterIdentifier: global-test
          engine: aurora
          engineVersion: 5.6.mysql_aurora.1.22.2
          databaseName: example_db
      primary:
        type: aws:rds:Cluster
        properties:
          engine: ${example.engine}
          engineVersion: ${example.engineVersion}
          clusterIdentifier: test-primary-cluster
          masterUsername: username
          masterPassword: somepass123
          databaseName: example_db
          globalClusterIdentifier: ${example.id}
          dbSubnetGroupName: default
      primaryClusterInstance:
        type: aws:rds:ClusterInstance
        name: primary
        properties:
          engine: ${example.engine}
          engineVersion: ${example.engineVersion}
          identifier: test-primary-cluster-instance
          clusterIdentifier: ${primary.id}
          instanceClass: db.r4.large
          dbSubnetGroupName: default
      secondary:
        type: aws:rds:Cluster
        properties:
          engine: ${example.engine}
          engineVersion: ${example.engineVersion}
          clusterIdentifier: test-secondary-cluster
          globalClusterIdentifier: ${example.id}
          dbSubnetGroupName: default
        options:
          dependson:
            - ${primaryClusterInstance}
      secondaryClusterInstance:
        type: aws:rds:ClusterInstance
        name: secondary
        properties:
          engine: ${example.engine}
          engineVersion: ${example.engineVersion}
          identifier: test-secondary-cluster-instance
          clusterIdentifier: ${secondary.id}
          instanceClass: db.r4.large
          dbSubnetGroupName: default
    

    New PostgreSQL Global Cluster

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = new aws.rds.GlobalCluster("example", {
        globalClusterIdentifier: "global-test",
        engine: "aurora-postgresql",
        engineVersion: "11.9",
        databaseName: "example_db",
    });
    const primary = new aws.rds.Cluster("primary", {
        engine: example.engine,
        engineVersion: example.engineVersion,
        clusterIdentifier: "test-primary-cluster",
        masterUsername: "username",
        masterPassword: "somepass123",
        databaseName: "example_db",
        globalClusterIdentifier: example.id,
        dbSubnetGroupName: "default",
    });
    const primaryClusterInstance = new aws.rds.ClusterInstance("primary", {
        engine: example.engine,
        engineVersion: example.engineVersion,
        identifier: "test-primary-cluster-instance",
        clusterIdentifier: primary.id,
        instanceClass: aws.rds.InstanceType.R4_Large,
        dbSubnetGroupName: "default",
    });
    const secondary = new aws.rds.Cluster("secondary", {
        engine: example.engine,
        engineVersion: example.engineVersion,
        clusterIdentifier: "test-secondary-cluster",
        globalClusterIdentifier: example.id,
        skipFinalSnapshot: true,
        dbSubnetGroupName: "default",
    }, {
        dependsOn: [primaryClusterInstance],
    });
    const secondaryClusterInstance = new aws.rds.ClusterInstance("secondary", {
        engine: example.engine,
        engineVersion: example.engineVersion,
        identifier: "test-secondary-cluster-instance",
        clusterIdentifier: secondary.id,
        instanceClass: aws.rds.InstanceType.R4_Large,
        dbSubnetGroupName: "default",
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.rds.GlobalCluster("example",
        global_cluster_identifier="global-test",
        engine="aurora-postgresql",
        engine_version="11.9",
        database_name="example_db")
    primary = aws.rds.Cluster("primary",
        engine=example.engine,
        engine_version=example.engine_version,
        cluster_identifier="test-primary-cluster",
        master_username="username",
        master_password="somepass123",
        database_name="example_db",
        global_cluster_identifier=example.id,
        db_subnet_group_name="default")
    primary_cluster_instance = aws.rds.ClusterInstance("primary",
        engine=example.engine,
        engine_version=example.engine_version,
        identifier="test-primary-cluster-instance",
        cluster_identifier=primary.id,
        instance_class=aws.rds.InstanceType.R4_LARGE,
        db_subnet_group_name="default")
    secondary = aws.rds.Cluster("secondary",
        engine=example.engine,
        engine_version=example.engine_version,
        cluster_identifier="test-secondary-cluster",
        global_cluster_identifier=example.id,
        skip_final_snapshot=True,
        db_subnet_group_name="default",
        opts=pulumi.ResourceOptions(depends_on=[primary_cluster_instance]))
    secondary_cluster_instance = aws.rds.ClusterInstance("secondary",
        engine=example.engine,
        engine_version=example.engine_version,
        identifier="test-secondary-cluster-instance",
        cluster_identifier=secondary.id,
        instance_class=aws.rds.InstanceType.R4_LARGE,
        db_subnet_group_name="default")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := rds.NewGlobalCluster(ctx, "example", &rds.GlobalClusterArgs{
    			GlobalClusterIdentifier: pulumi.String("global-test"),
    			Engine:                  pulumi.String("aurora-postgresql"),
    			EngineVersion:           pulumi.String("11.9"),
    			DatabaseName:            pulumi.String("example_db"),
    		})
    		if err != nil {
    			return err
    		}
    		primary, err := rds.NewCluster(ctx, "primary", &rds.ClusterArgs{
    			Engine:                  example.Engine,
    			EngineVersion:           example.EngineVersion,
    			ClusterIdentifier:       pulumi.String("test-primary-cluster"),
    			MasterUsername:          pulumi.String("username"),
    			MasterPassword:          pulumi.String("somepass123"),
    			DatabaseName:            pulumi.String("example_db"),
    			GlobalClusterIdentifier: example.ID(),
    			DbSubnetGroupName:       pulumi.String("default"),
    		})
    		if err != nil {
    			return err
    		}
    		primaryClusterInstance, err := rds.NewClusterInstance(ctx, "primary", &rds.ClusterInstanceArgs{
    			Engine:            example.Engine,
    			EngineVersion:     example.EngineVersion,
    			Identifier:        pulumi.String("test-primary-cluster-instance"),
    			ClusterIdentifier: primary.ID(),
    			InstanceClass:     pulumi.String(rds.InstanceType_R4_Large),
    			DbSubnetGroupName: pulumi.String("default"),
    		})
    		if err != nil {
    			return err
    		}
    		secondary, err := rds.NewCluster(ctx, "secondary", &rds.ClusterArgs{
    			Engine:                  example.Engine,
    			EngineVersion:           example.EngineVersion,
    			ClusterIdentifier:       pulumi.String("test-secondary-cluster"),
    			GlobalClusterIdentifier: example.ID(),
    			SkipFinalSnapshot:       pulumi.Bool(true),
    			DbSubnetGroupName:       pulumi.String("default"),
    		}, pulumi.DependsOn([]pulumi.Resource{
    			primaryClusterInstance,
    		}))
    		if err != nil {
    			return err
    		}
    		_, err = rds.NewClusterInstance(ctx, "secondary", &rds.ClusterInstanceArgs{
    			Engine:            example.Engine,
    			EngineVersion:     example.EngineVersion,
    			Identifier:        pulumi.String("test-secondary-cluster-instance"),
    			ClusterIdentifier: secondary.ID(),
    			InstanceClass:     pulumi.String(rds.InstanceType_R4_Large),
    			DbSubnetGroupName: pulumi.String("default"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.Rds.GlobalCluster("example", new()
        {
            GlobalClusterIdentifier = "global-test",
            Engine = "aurora-postgresql",
            EngineVersion = "11.9",
            DatabaseName = "example_db",
        });
    
        var primary = new Aws.Rds.Cluster("primary", new()
        {
            Engine = example.Engine,
            EngineVersion = example.EngineVersion,
            ClusterIdentifier = "test-primary-cluster",
            MasterUsername = "username",
            MasterPassword = "somepass123",
            DatabaseName = "example_db",
            GlobalClusterIdentifier = example.Id,
            DbSubnetGroupName = "default",
        });
    
        var primaryClusterInstance = new Aws.Rds.ClusterInstance("primary", new()
        {
            Engine = example.Engine,
            EngineVersion = example.EngineVersion,
            Identifier = "test-primary-cluster-instance",
            ClusterIdentifier = primary.Id,
            InstanceClass = Aws.Rds.InstanceType.R4_Large,
            DbSubnetGroupName = "default",
        });
    
        var secondary = new Aws.Rds.Cluster("secondary", new()
        {
            Engine = example.Engine,
            EngineVersion = example.EngineVersion,
            ClusterIdentifier = "test-secondary-cluster",
            GlobalClusterIdentifier = example.Id,
            SkipFinalSnapshot = true,
            DbSubnetGroupName = "default",
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                primaryClusterInstance, 
            },
        });
    
        var secondaryClusterInstance = new Aws.Rds.ClusterInstance("secondary", new()
        {
            Engine = example.Engine,
            EngineVersion = example.EngineVersion,
            Identifier = "test-secondary-cluster-instance",
            ClusterIdentifier = secondary.Id,
            InstanceClass = Aws.Rds.InstanceType.R4_Large,
            DbSubnetGroupName = "default",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.rds.GlobalCluster;
    import com.pulumi.aws.rds.GlobalClusterArgs;
    import com.pulumi.aws.rds.Cluster;
    import com.pulumi.aws.rds.ClusterArgs;
    import com.pulumi.aws.rds.ClusterInstance;
    import com.pulumi.aws.rds.ClusterInstanceArgs;
    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 example = new GlobalCluster("example", GlobalClusterArgs.builder()        
                .globalClusterIdentifier("global-test")
                .engine("aurora-postgresql")
                .engineVersion("11.9")
                .databaseName("example_db")
                .build());
    
            var primary = new Cluster("primary", ClusterArgs.builder()        
                .engine(example.engine())
                .engineVersion(example.engineVersion())
                .clusterIdentifier("test-primary-cluster")
                .masterUsername("username")
                .masterPassword("somepass123")
                .databaseName("example_db")
                .globalClusterIdentifier(example.id())
                .dbSubnetGroupName("default")
                .build());
    
            var primaryClusterInstance = new ClusterInstance("primaryClusterInstance", ClusterInstanceArgs.builder()        
                .engine(example.engine())
                .engineVersion(example.engineVersion())
                .identifier("test-primary-cluster-instance")
                .clusterIdentifier(primary.id())
                .instanceClass("db.r4.large")
                .dbSubnetGroupName("default")
                .build());
    
            var secondary = new Cluster("secondary", ClusterArgs.builder()        
                .engine(example.engine())
                .engineVersion(example.engineVersion())
                .clusterIdentifier("test-secondary-cluster")
                .globalClusterIdentifier(example.id())
                .skipFinalSnapshot(true)
                .dbSubnetGroupName("default")
                .build(), CustomResourceOptions.builder()
                    .dependsOn(primaryClusterInstance)
                    .build());
    
            var secondaryClusterInstance = new ClusterInstance("secondaryClusterInstance", ClusterInstanceArgs.builder()        
                .engine(example.engine())
                .engineVersion(example.engineVersion())
                .identifier("test-secondary-cluster-instance")
                .clusterIdentifier(secondary.id())
                .instanceClass("db.r4.large")
                .dbSubnetGroupName("default")
                .build());
    
        }
    }
    
    resources:
      example:
        type: aws:rds:GlobalCluster
        properties:
          globalClusterIdentifier: global-test
          engine: aurora-postgresql
          engineVersion: '11.9'
          databaseName: example_db
      primary:
        type: aws:rds:Cluster
        properties:
          engine: ${example.engine}
          engineVersion: ${example.engineVersion}
          clusterIdentifier: test-primary-cluster
          masterUsername: username
          masterPassword: somepass123
          databaseName: example_db
          globalClusterIdentifier: ${example.id}
          dbSubnetGroupName: default
      primaryClusterInstance:
        type: aws:rds:ClusterInstance
        name: primary
        properties:
          engine: ${example.engine}
          engineVersion: ${example.engineVersion}
          identifier: test-primary-cluster-instance
          clusterIdentifier: ${primary.id}
          instanceClass: db.r4.large
          dbSubnetGroupName: default
      secondary:
        type: aws:rds:Cluster
        properties:
          engine: ${example.engine}
          engineVersion: ${example.engineVersion}
          clusterIdentifier: test-secondary-cluster
          globalClusterIdentifier: ${example.id}
          skipFinalSnapshot: true
          dbSubnetGroupName: default
        options:
          dependson:
            - ${primaryClusterInstance}
      secondaryClusterInstance:
        type: aws:rds:ClusterInstance
        name: secondary
        properties:
          engine: ${example.engine}
          engineVersion: ${example.engineVersion}
          identifier: test-secondary-cluster-instance
          clusterIdentifier: ${secondary.id}
          instanceClass: db.r4.large
          dbSubnetGroupName: default
    

    New Global Cluster From Existing DB Cluster

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = new aws.rds.Cluster("example", {});
    const exampleGlobalCluster = new aws.rds.GlobalCluster("example", {
        forceDestroy: true,
        globalClusterIdentifier: "example",
        sourceDbClusterIdentifier: example.arn,
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.rds.Cluster("example")
    example_global_cluster = aws.rds.GlobalCluster("example",
        force_destroy=True,
        global_cluster_identifier="example",
        source_db_cluster_identifier=example.arn)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := rds.NewCluster(ctx, "example", nil)
    		if err != nil {
    			return err
    		}
    		_, err = rds.NewGlobalCluster(ctx, "example", &rds.GlobalClusterArgs{
    			ForceDestroy:              pulumi.Bool(true),
    			GlobalClusterIdentifier:   pulumi.String("example"),
    			SourceDbClusterIdentifier: example.Arn,
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.Rds.Cluster("example");
    
        var exampleGlobalCluster = new Aws.Rds.GlobalCluster("example", new()
        {
            ForceDestroy = true,
            GlobalClusterIdentifier = "example",
            SourceDbClusterIdentifier = example.Arn,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.rds.Cluster;
    import com.pulumi.aws.rds.GlobalCluster;
    import com.pulumi.aws.rds.GlobalClusterArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var example = new Cluster("example");
    
            var exampleGlobalCluster = new GlobalCluster("exampleGlobalCluster", GlobalClusterArgs.builder()        
                .forceDestroy(true)
                .globalClusterIdentifier("example")
                .sourceDbClusterIdentifier(example.arn())
                .build());
    
        }
    }
    
    resources:
      example:
        type: aws:rds:Cluster
      exampleGlobalCluster:
        type: aws:rds:GlobalCluster
        name: example
        properties:
          forceDestroy: true
          globalClusterIdentifier: example
          sourceDbClusterIdentifier: ${example.arn}
    

    Upgrading Engine Versions

    When you upgrade the version of an aws.rds.GlobalCluster, the provider will attempt to in-place upgrade the engine versions of all associated clusters. Since the aws.rds.Cluster resource is being updated through the aws.rds.GlobalCluster, you are likely to get an error (Provider produced inconsistent final plan). To avoid this, use the lifecycle ignore_changes meta argument as shown below on the aws.rds.Cluster.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = new aws.rds.GlobalCluster("example", {
        globalClusterIdentifier: "kyivkharkiv",
        engine: "aurora-mysql",
        engineVersion: "5.7.mysql_aurora.2.07.5",
    });
    const primary = new aws.rds.Cluster("primary", {
        allowMajorVersionUpgrade: true,
        applyImmediately: true,
        clusterIdentifier: "odessadnipro",
        databaseName: "totoro",
        engine: example.engine,
        engineVersion: example.engineVersion,
        globalClusterIdentifier: example.id,
        masterPassword: "satsukimae",
        masterUsername: "maesatsuki",
        skipFinalSnapshot: true,
    });
    const primaryClusterInstance = new aws.rds.ClusterInstance("primary", {
        applyImmediately: true,
        clusterIdentifier: primary.id,
        engine: primary.engine,
        engineVersion: primary.engineVersion,
        identifier: "donetsklviv",
        instanceClass: aws.rds.InstanceType.R4_Large,
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.rds.GlobalCluster("example",
        global_cluster_identifier="kyivkharkiv",
        engine="aurora-mysql",
        engine_version="5.7.mysql_aurora.2.07.5")
    primary = aws.rds.Cluster("primary",
        allow_major_version_upgrade=True,
        apply_immediately=True,
        cluster_identifier="odessadnipro",
        database_name="totoro",
        engine=example.engine,
        engine_version=example.engine_version,
        global_cluster_identifier=example.id,
        master_password="satsukimae",
        master_username="maesatsuki",
        skip_final_snapshot=True)
    primary_cluster_instance = aws.rds.ClusterInstance("primary",
        apply_immediately=True,
        cluster_identifier=primary.id,
        engine=primary.engine,
        engine_version=primary.engine_version,
        identifier="donetsklviv",
        instance_class=aws.rds.InstanceType.R4_LARGE)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := rds.NewGlobalCluster(ctx, "example", &rds.GlobalClusterArgs{
    			GlobalClusterIdentifier: pulumi.String("kyivkharkiv"),
    			Engine:                  pulumi.String("aurora-mysql"),
    			EngineVersion:           pulumi.String("5.7.mysql_aurora.2.07.5"),
    		})
    		if err != nil {
    			return err
    		}
    		primary, err := rds.NewCluster(ctx, "primary", &rds.ClusterArgs{
    			AllowMajorVersionUpgrade: pulumi.Bool(true),
    			ApplyImmediately:         pulumi.Bool(true),
    			ClusterIdentifier:        pulumi.String("odessadnipro"),
    			DatabaseName:             pulumi.String("totoro"),
    			Engine:                   example.Engine,
    			EngineVersion:            example.EngineVersion,
    			GlobalClusterIdentifier:  example.ID(),
    			MasterPassword:           pulumi.String("satsukimae"),
    			MasterUsername:           pulumi.String("maesatsuki"),
    			SkipFinalSnapshot:        pulumi.Bool(true),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = rds.NewClusterInstance(ctx, "primary", &rds.ClusterInstanceArgs{
    			ApplyImmediately:  pulumi.Bool(true),
    			ClusterIdentifier: primary.ID(),
    			Engine:            primary.Engine,
    			EngineVersion:     primary.EngineVersion,
    			Identifier:        pulumi.String("donetsklviv"),
    			InstanceClass:     pulumi.String(rds.InstanceType_R4_Large),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.Rds.GlobalCluster("example", new()
        {
            GlobalClusterIdentifier = "kyivkharkiv",
            Engine = "aurora-mysql",
            EngineVersion = "5.7.mysql_aurora.2.07.5",
        });
    
        var primary = new Aws.Rds.Cluster("primary", new()
        {
            AllowMajorVersionUpgrade = true,
            ApplyImmediately = true,
            ClusterIdentifier = "odessadnipro",
            DatabaseName = "totoro",
            Engine = example.Engine,
            EngineVersion = example.EngineVersion,
            GlobalClusterIdentifier = example.Id,
            MasterPassword = "satsukimae",
            MasterUsername = "maesatsuki",
            SkipFinalSnapshot = true,
        });
    
        var primaryClusterInstance = new Aws.Rds.ClusterInstance("primary", new()
        {
            ApplyImmediately = true,
            ClusterIdentifier = primary.Id,
            Engine = primary.Engine,
            EngineVersion = primary.EngineVersion,
            Identifier = "donetsklviv",
            InstanceClass = Aws.Rds.InstanceType.R4_Large,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.rds.GlobalCluster;
    import com.pulumi.aws.rds.GlobalClusterArgs;
    import com.pulumi.aws.rds.Cluster;
    import com.pulumi.aws.rds.ClusterArgs;
    import com.pulumi.aws.rds.ClusterInstance;
    import com.pulumi.aws.rds.ClusterInstanceArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var example = new GlobalCluster("example", GlobalClusterArgs.builder()        
                .globalClusterIdentifier("kyivkharkiv")
                .engine("aurora-mysql")
                .engineVersion("5.7.mysql_aurora.2.07.5")
                .build());
    
            var primary = new Cluster("primary", ClusterArgs.builder()        
                .allowMajorVersionUpgrade(true)
                .applyImmediately(true)
                .clusterIdentifier("odessadnipro")
                .databaseName("totoro")
                .engine(example.engine())
                .engineVersion(example.engineVersion())
                .globalClusterIdentifier(example.id())
                .masterPassword("satsukimae")
                .masterUsername("maesatsuki")
                .skipFinalSnapshot(true)
                .build());
    
            var primaryClusterInstance = new ClusterInstance("primaryClusterInstance", ClusterInstanceArgs.builder()        
                .applyImmediately(true)
                .clusterIdentifier(primary.id())
                .engine(primary.engine())
                .engineVersion(primary.engineVersion())
                .identifier("donetsklviv")
                .instanceClass("db.r4.large")
                .build());
    
        }
    }
    
    resources:
      example:
        type: aws:rds:GlobalCluster
        properties:
          globalClusterIdentifier: kyivkharkiv
          engine: aurora-mysql
          engineVersion: 5.7.mysql_aurora.2.07.5
      primary:
        type: aws:rds:Cluster
        properties:
          allowMajorVersionUpgrade: true
          applyImmediately: true
          clusterIdentifier: odessadnipro
          databaseName: totoro
          engine: ${example.engine}
          engineVersion: ${example.engineVersion}
          globalClusterIdentifier: ${example.id}
          masterPassword: satsukimae
          masterUsername: maesatsuki
          skipFinalSnapshot: true
      primaryClusterInstance:
        type: aws:rds:ClusterInstance
        name: primary
        properties:
          applyImmediately: true
          clusterIdentifier: ${primary.id}
          engine: ${primary.engine}
          engineVersion: ${primary.engineVersion}
          identifier: donetsklviv
          instanceClass: db.r4.large
    

    Create GlobalCluster Resource

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

    Constructor syntax

    new GlobalCluster(name: string, args: GlobalClusterArgs, opts?: CustomResourceOptions);
    @overload
    def GlobalCluster(resource_name: str,
                      args: GlobalClusterArgs,
                      opts: Optional[ResourceOptions] = None)
    
    @overload
    def GlobalCluster(resource_name: str,
                      opts: Optional[ResourceOptions] = None,
                      global_cluster_identifier: Optional[str] = None,
                      database_name: Optional[str] = None,
                      deletion_protection: Optional[bool] = None,
                      engine: Optional[str] = None,
                      engine_version: Optional[str] = None,
                      force_destroy: Optional[bool] = None,
                      source_db_cluster_identifier: Optional[str] = None,
                      storage_encrypted: Optional[bool] = None)
    func NewGlobalCluster(ctx *Context, name string, args GlobalClusterArgs, opts ...ResourceOption) (*GlobalCluster, error)
    public GlobalCluster(string name, GlobalClusterArgs args, CustomResourceOptions? opts = null)
    public GlobalCluster(String name, GlobalClusterArgs args)
    public GlobalCluster(String name, GlobalClusterArgs args, CustomResourceOptions options)
    
    type: aws:rds:GlobalCluster
    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 GlobalClusterArgs
    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 GlobalClusterArgs
    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 GlobalClusterArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args GlobalClusterArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args GlobalClusterArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Example

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

    var exampleglobalClusterResourceResourceFromRdsglobalCluster = new Aws.Rds.GlobalCluster("exampleglobalClusterResourceResourceFromRdsglobalCluster", new()
    {
        GlobalClusterIdentifier = "string",
        DatabaseName = "string",
        DeletionProtection = false,
        Engine = "string",
        EngineVersion = "string",
        ForceDestroy = false,
        SourceDbClusterIdentifier = "string",
        StorageEncrypted = false,
    });
    
    example, err := rds.NewGlobalCluster(ctx, "exampleglobalClusterResourceResourceFromRdsglobalCluster", &rds.GlobalClusterArgs{
    	GlobalClusterIdentifier:   pulumi.String("string"),
    	DatabaseName:              pulumi.String("string"),
    	DeletionProtection:        pulumi.Bool(false),
    	Engine:                    pulumi.String("string"),
    	EngineVersion:             pulumi.String("string"),
    	ForceDestroy:              pulumi.Bool(false),
    	SourceDbClusterIdentifier: pulumi.String("string"),
    	StorageEncrypted:          pulumi.Bool(false),
    })
    
    var exampleglobalClusterResourceResourceFromRdsglobalCluster = new GlobalCluster("exampleglobalClusterResourceResourceFromRdsglobalCluster", GlobalClusterArgs.builder()        
        .globalClusterIdentifier("string")
        .databaseName("string")
        .deletionProtection(false)
        .engine("string")
        .engineVersion("string")
        .forceDestroy(false)
        .sourceDbClusterIdentifier("string")
        .storageEncrypted(false)
        .build());
    
    exampleglobal_cluster_resource_resource_from_rdsglobal_cluster = aws.rds.GlobalCluster("exampleglobalClusterResourceResourceFromRdsglobalCluster",
        global_cluster_identifier="string",
        database_name="string",
        deletion_protection=False,
        engine="string",
        engine_version="string",
        force_destroy=False,
        source_db_cluster_identifier="string",
        storage_encrypted=False)
    
    const exampleglobalClusterResourceResourceFromRdsglobalCluster = new aws.rds.GlobalCluster("exampleglobalClusterResourceResourceFromRdsglobalCluster", {
        globalClusterIdentifier: "string",
        databaseName: "string",
        deletionProtection: false,
        engine: "string",
        engineVersion: "string",
        forceDestroy: false,
        sourceDbClusterIdentifier: "string",
        storageEncrypted: false,
    });
    
    type: aws:rds:GlobalCluster
    properties:
        databaseName: string
        deletionProtection: false
        engine: string
        engineVersion: string
        forceDestroy: false
        globalClusterIdentifier: string
        sourceDbClusterIdentifier: string
        storageEncrypted: false
    

    GlobalCluster Resource Properties

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

    Inputs

    The GlobalCluster resource accepts the following input properties:

    GlobalClusterIdentifier string
    Global cluster identifier.
    DatabaseName string
    Name for an automatically created database on cluster creation.
    DeletionProtection bool
    If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false.
    Engine string
    Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier.
    EngineVersion string
    Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws.rds.ClusterInstance) must together support global databases. See Using Amazon Aurora global databases for more information. By upgrading the engine version, the provider will upgrade cluster members. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws.rds.Cluster resource as shown above in Upgrading Engine Versions example.
    ForceDestroy bool
    Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier.
    SourceDbClusterIdentifier string
    Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
    StorageEncrypted bool
    Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.
    GlobalClusterIdentifier string
    Global cluster identifier.
    DatabaseName string
    Name for an automatically created database on cluster creation.
    DeletionProtection bool
    If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false.
    Engine string
    Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier.
    EngineVersion string
    Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws.rds.ClusterInstance) must together support global databases. See Using Amazon Aurora global databases for more information. By upgrading the engine version, the provider will upgrade cluster members. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws.rds.Cluster resource as shown above in Upgrading Engine Versions example.
    ForceDestroy bool
    Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier.
    SourceDbClusterIdentifier string
    Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
    StorageEncrypted bool
    Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.
    globalClusterIdentifier String
    Global cluster identifier.
    databaseName String
    Name for an automatically created database on cluster creation.
    deletionProtection Boolean
    If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false.
    engine String
    Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier.
    engineVersion String
    Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws.rds.ClusterInstance) must together support global databases. See Using Amazon Aurora global databases for more information. By upgrading the engine version, the provider will upgrade cluster members. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws.rds.Cluster resource as shown above in Upgrading Engine Versions example.
    forceDestroy Boolean
    Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier.
    sourceDbClusterIdentifier String
    Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
    storageEncrypted Boolean
    Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.
    globalClusterIdentifier string
    Global cluster identifier.
    databaseName string
    Name for an automatically created database on cluster creation.
    deletionProtection boolean
    If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false.
    engine string
    Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier.
    engineVersion string
    Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws.rds.ClusterInstance) must together support global databases. See Using Amazon Aurora global databases for more information. By upgrading the engine version, the provider will upgrade cluster members. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws.rds.Cluster resource as shown above in Upgrading Engine Versions example.
    forceDestroy boolean
    Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier.
    sourceDbClusterIdentifier string
    Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
    storageEncrypted boolean
    Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.
    global_cluster_identifier str
    Global cluster identifier.
    database_name str
    Name for an automatically created database on cluster creation.
    deletion_protection bool
    If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false.
    engine str
    Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier.
    engine_version str
    Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws.rds.ClusterInstance) must together support global databases. See Using Amazon Aurora global databases for more information. By upgrading the engine version, the provider will upgrade cluster members. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws.rds.Cluster resource as shown above in Upgrading Engine Versions example.
    force_destroy bool
    Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier.
    source_db_cluster_identifier str
    Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
    storage_encrypted bool
    Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.
    globalClusterIdentifier String
    Global cluster identifier.
    databaseName String
    Name for an automatically created database on cluster creation.
    deletionProtection Boolean
    If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false.
    engine String
    Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier.
    engineVersion String
    Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws.rds.ClusterInstance) must together support global databases. See Using Amazon Aurora global databases for more information. By upgrading the engine version, the provider will upgrade cluster members. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws.rds.Cluster resource as shown above in Upgrading Engine Versions example.
    forceDestroy Boolean
    Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier.
    sourceDbClusterIdentifier String
    Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
    storageEncrypted Boolean
    Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.

    Outputs

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

    Arn string
    RDS Global Cluster Amazon Resource Name (ARN)
    EngineVersionActual string
    GlobalClusterMembers List<GlobalClusterGlobalClusterMember>
    Set of objects containing Global Cluster members.
    GlobalClusterResourceId string
    AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed
    Id string
    The provider-assigned unique ID for this managed resource.
    Arn string
    RDS Global Cluster Amazon Resource Name (ARN)
    EngineVersionActual string
    GlobalClusterMembers []GlobalClusterGlobalClusterMember
    Set of objects containing Global Cluster members.
    GlobalClusterResourceId string
    AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed
    Id string
    The provider-assigned unique ID for this managed resource.
    arn String
    RDS Global Cluster Amazon Resource Name (ARN)
    engineVersionActual String
    globalClusterMembers List<GlobalClusterGlobalClusterMember>
    Set of objects containing Global Cluster members.
    globalClusterResourceId String
    AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed
    id String
    The provider-assigned unique ID for this managed resource.
    arn string
    RDS Global Cluster Amazon Resource Name (ARN)
    engineVersionActual string
    globalClusterMembers GlobalClusterGlobalClusterMember[]
    Set of objects containing Global Cluster members.
    globalClusterResourceId string
    AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed
    id string
    The provider-assigned unique ID for this managed resource.
    arn str
    RDS Global Cluster Amazon Resource Name (ARN)
    engine_version_actual str
    global_cluster_members Sequence[GlobalClusterGlobalClusterMember]
    Set of objects containing Global Cluster members.
    global_cluster_resource_id str
    AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed
    id str
    The provider-assigned unique ID for this managed resource.
    arn String
    RDS Global Cluster Amazon Resource Name (ARN)
    engineVersionActual String
    globalClusterMembers List<Property Map>
    Set of objects containing Global Cluster members.
    globalClusterResourceId String
    AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing GlobalCluster Resource

    Get an existing GlobalCluster 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?: GlobalClusterState, opts?: CustomResourceOptions): GlobalCluster
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            arn: Optional[str] = None,
            database_name: Optional[str] = None,
            deletion_protection: Optional[bool] = None,
            engine: Optional[str] = None,
            engine_version: Optional[str] = None,
            engine_version_actual: Optional[str] = None,
            force_destroy: Optional[bool] = None,
            global_cluster_identifier: Optional[str] = None,
            global_cluster_members: Optional[Sequence[GlobalClusterGlobalClusterMemberArgs]] = None,
            global_cluster_resource_id: Optional[str] = None,
            source_db_cluster_identifier: Optional[str] = None,
            storage_encrypted: Optional[bool] = None) -> GlobalCluster
    func GetGlobalCluster(ctx *Context, name string, id IDInput, state *GlobalClusterState, opts ...ResourceOption) (*GlobalCluster, error)
    public static GlobalCluster Get(string name, Input<string> id, GlobalClusterState? state, CustomResourceOptions? opts = null)
    public static GlobalCluster get(String name, Output<String> id, GlobalClusterState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    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:
    Arn string
    RDS Global Cluster Amazon Resource Name (ARN)
    DatabaseName string
    Name for an automatically created database on cluster creation.
    DeletionProtection bool
    If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false.
    Engine string
    Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier.
    EngineVersion string
    Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws.rds.ClusterInstance) must together support global databases. See Using Amazon Aurora global databases for more information. By upgrading the engine version, the provider will upgrade cluster members. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws.rds.Cluster resource as shown above in Upgrading Engine Versions example.
    EngineVersionActual string
    ForceDestroy bool
    Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier.
    GlobalClusterIdentifier string
    Global cluster identifier.
    GlobalClusterMembers List<GlobalClusterGlobalClusterMember>
    Set of objects containing Global Cluster members.
    GlobalClusterResourceId string
    AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed
    SourceDbClusterIdentifier string
    Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
    StorageEncrypted bool
    Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.
    Arn string
    RDS Global Cluster Amazon Resource Name (ARN)
    DatabaseName string
    Name for an automatically created database on cluster creation.
    DeletionProtection bool
    If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false.
    Engine string
    Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier.
    EngineVersion string
    Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws.rds.ClusterInstance) must together support global databases. See Using Amazon Aurora global databases for more information. By upgrading the engine version, the provider will upgrade cluster members. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws.rds.Cluster resource as shown above in Upgrading Engine Versions example.
    EngineVersionActual string
    ForceDestroy bool
    Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier.
    GlobalClusterIdentifier string
    Global cluster identifier.
    GlobalClusterMembers []GlobalClusterGlobalClusterMemberArgs
    Set of objects containing Global Cluster members.
    GlobalClusterResourceId string
    AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed
    SourceDbClusterIdentifier string
    Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
    StorageEncrypted bool
    Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.
    arn String
    RDS Global Cluster Amazon Resource Name (ARN)
    databaseName String
    Name for an automatically created database on cluster creation.
    deletionProtection Boolean
    If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false.
    engine String
    Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier.
    engineVersion String
    Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws.rds.ClusterInstance) must together support global databases. See Using Amazon Aurora global databases for more information. By upgrading the engine version, the provider will upgrade cluster members. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws.rds.Cluster resource as shown above in Upgrading Engine Versions example.
    engineVersionActual String
    forceDestroy Boolean
    Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier.
    globalClusterIdentifier String
    Global cluster identifier.
    globalClusterMembers List<GlobalClusterGlobalClusterMember>
    Set of objects containing Global Cluster members.
    globalClusterResourceId String
    AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed
    sourceDbClusterIdentifier String
    Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
    storageEncrypted Boolean
    Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.
    arn string
    RDS Global Cluster Amazon Resource Name (ARN)
    databaseName string
    Name for an automatically created database on cluster creation.
    deletionProtection boolean
    If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false.
    engine string
    Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier.
    engineVersion string
    Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws.rds.ClusterInstance) must together support global databases. See Using Amazon Aurora global databases for more information. By upgrading the engine version, the provider will upgrade cluster members. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws.rds.Cluster resource as shown above in Upgrading Engine Versions example.
    engineVersionActual string
    forceDestroy boolean
    Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier.
    globalClusterIdentifier string
    Global cluster identifier.
    globalClusterMembers GlobalClusterGlobalClusterMember[]
    Set of objects containing Global Cluster members.
    globalClusterResourceId string
    AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed
    sourceDbClusterIdentifier string
    Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
    storageEncrypted boolean
    Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.
    arn str
    RDS Global Cluster Amazon Resource Name (ARN)
    database_name str
    Name for an automatically created database on cluster creation.
    deletion_protection bool
    If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false.
    engine str
    Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier.
    engine_version str
    Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws.rds.ClusterInstance) must together support global databases. See Using Amazon Aurora global databases for more information. By upgrading the engine version, the provider will upgrade cluster members. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws.rds.Cluster resource as shown above in Upgrading Engine Versions example.
    engine_version_actual str
    force_destroy bool
    Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier.
    global_cluster_identifier str
    Global cluster identifier.
    global_cluster_members Sequence[GlobalClusterGlobalClusterMemberArgs]
    Set of objects containing Global Cluster members.
    global_cluster_resource_id str
    AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed
    source_db_cluster_identifier str
    Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
    storage_encrypted bool
    Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.
    arn String
    RDS Global Cluster Amazon Resource Name (ARN)
    databaseName String
    Name for an automatically created database on cluster creation.
    deletionProtection Boolean
    If the Global Cluster should have deletion protection enabled. The database can't be deleted when this value is set to true. The default is false.
    engine String
    Name of the database engine to be used for this DB cluster. The provider will only perform drift detection if a configuration value is provided. Valid values: aurora, aurora-mysql, aurora-postgresql. Defaults to aurora. Conflicts with source_db_cluster_identifier.
    engineVersion String
    Engine version of the Aurora global database. The engine, engine_version, and instance_class (on the aws.rds.ClusterInstance) must together support global databases. See Using Amazon Aurora global databases for more information. By upgrading the engine version, the provider will upgrade cluster members. NOTE: To avoid an inconsistent final plan error while upgrading, use the lifecycle ignore_changes for engine_version meta argument on the associated aws.rds.Cluster resource as shown above in Upgrading Engine Versions example.
    engineVersionActual String
    forceDestroy Boolean
    Enable to remove DB Cluster members from Global Cluster on destroy. Required with source_db_cluster_identifier.
    globalClusterIdentifier String
    Global cluster identifier.
    globalClusterMembers List<Property Map>
    Set of objects containing Global Cluster members.
    globalClusterResourceId String
    AWS Region-unique, immutable identifier for the global database cluster. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB cluster is accessed
    sourceDbClusterIdentifier String
    Amazon Resource Name (ARN) to use as the primary DB Cluster of the Global Cluster on creation. The provider cannot perform drift detection of this value.
    storageEncrypted Boolean
    Specifies whether the DB cluster is encrypted. The default is false unless source_db_cluster_identifier is specified and encrypted. The provider will only perform drift detection if a configuration value is provided.

    Supporting Types

    GlobalClusterGlobalClusterMember, GlobalClusterGlobalClusterMemberArgs

    DbClusterArn string
    Amazon Resource Name (ARN) of member DB Cluster
    IsWriter bool
    Whether the member is the primary DB Cluster
    DbClusterArn string
    Amazon Resource Name (ARN) of member DB Cluster
    IsWriter bool
    Whether the member is the primary DB Cluster
    dbClusterArn String
    Amazon Resource Name (ARN) of member DB Cluster
    isWriter Boolean
    Whether the member is the primary DB Cluster
    dbClusterArn string
    Amazon Resource Name (ARN) of member DB Cluster
    isWriter boolean
    Whether the member is the primary DB Cluster
    db_cluster_arn str
    Amazon Resource Name (ARN) of member DB Cluster
    is_writer bool
    Whether the member is the primary DB Cluster
    dbClusterArn String
    Amazon Resource Name (ARN) of member DB Cluster
    isWriter Boolean
    Whether the member is the primary DB Cluster

    Import

    Using pulumi import, import aws_rds_global_cluster using the RDS Global Cluster identifier. For example:

    $ pulumi import aws:rds/globalCluster:GlobalCluster example example
    

    Certain resource arguments, like force_destroy, only exist within this provider. If the argument is set in the the provider configuration on an imported resource, This provider will show a difference on the first plan after import to update the state value. This change is safe to apply immediately so the state matches the desired configuration.

    Certain resource arguments, like source_db_cluster_identifier, do not have an API method for reading the information after creation. If the argument is set in the Pulumi program on an imported resource, Pulumi will always show a difference. To workaround this behavior, either omit the argument from the Pulumi program or use ignore_changes to hide the difference. For example:

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

    Package Details

    Repository
    AWS Classic pulumi/pulumi-aws
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the aws Terraform Provider.
    aws logo

    Try AWS Native preview for resources not in the classic version.

    AWS Classic v6.31.1 published on Thursday, Apr 18, 2024 by Pulumi