DatabaseReplicaArgs

data class DatabaseReplicaArgs(val clusterId: Output<String>? = null, val name: Output<String>? = null, val privateNetworkUuid: Output<String>? = null, val region: Output<Either<String, Region>>? = null, val size: Output<Either<String, DatabaseSlug>>? = null, val storageSizeMib: Output<String>? = null, val tags: Output<List<String>>? = null) : ConvertibleToJava<DatabaseReplicaArgs>

Provides a DigitalOcean database replica resource.

Example Usage

Create a new PostgreSQL database replica

import * as pulumi from "@pulumi/pulumi";
import * as digitalocean from "@pulumi/digitalocean";
const postgres_example = new digitalocean.DatabaseCluster("postgres-example", {
name: "example-postgres-cluster",
engine: "pg",
version: "15",
size: digitalocean.DatabaseSlug.DB_1VPCU1GB,
region: digitalocean.Region.NYC1,
nodeCount: 1,
});
const replica_example = new digitalocean.DatabaseReplica("replica-example", {
clusterId: postgres_example.id,
name: "replica-example",
size: digitalocean.DatabaseSlug.DB_1VPCU1GB,
region: digitalocean.Region.NYC1,
});
export const UUID = replica_example.uuid;
// Create firewall rule for database replica
const example_fw = new digitalocean.DatabaseFirewall("example-fw", {
clusterId: replica_example.uuid,
rules: [{
type: "ip_addr",
value: "192.168.1.1",
}],
});
import pulumi
import pulumi_digitalocean as digitalocean
postgres_example = digitalocean.DatabaseCluster("postgres-example",
name="example-postgres-cluster",
engine="pg",
version="15",
size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
region=digitalocean.Region.NYC1,
node_count=1)
replica_example = digitalocean.DatabaseReplica("replica-example",
cluster_id=postgres_example.id,
name="replica-example",
size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
region=digitalocean.Region.NYC1)
pulumi.export("UUID", replica_example.uuid)
# Create firewall rule for database replica
example_fw = digitalocean.DatabaseFirewall("example-fw",
cluster_id=replica_example.uuid,
rules=[{
"type": "ip_addr",
"value": "192.168.1.1",
}])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using DigitalOcean = Pulumi.DigitalOcean;
return await Deployment.RunAsync(() =>
{
var postgres_example = new DigitalOcean.DatabaseCluster("postgres-example", new()
{
Name = "example-postgres-cluster",
Engine = "pg",
Version = "15",
Size = DigitalOcean.DatabaseSlug.DB_1VPCU1GB,
Region = DigitalOcean.Region.NYC1,
NodeCount = 1,
});
var replica_example = new DigitalOcean.DatabaseReplica("replica-example", new()
{
ClusterId = postgres_example.Id,
Name = "replica-example",
Size = DigitalOcean.DatabaseSlug.DB_1VPCU1GB,
Region = DigitalOcean.Region.NYC1,
});
// Create firewall rule for database replica
var example_fw = new DigitalOcean.DatabaseFirewall("example-fw", new()
{
ClusterId = replica_example.Uuid,
Rules = new[]
{
new DigitalOcean.Inputs.DatabaseFirewallRuleArgs
{
Type = "ip_addr",
Value = "192.168.1.1",
},
},
});
return new Dictionary<string, object?>
{
["UUID"] = replica_example.Uuid,
};
});
package main
import (
"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
postgres_example, err := digitalocean.NewDatabaseCluster(ctx, "postgres-example", &digitalocean.DatabaseClusterArgs{
Name: pulumi.String("example-postgres-cluster"),
Engine: pulumi.String("pg"),
Version: pulumi.String("15"),
Size: pulumi.String(digitalocean.DatabaseSlug_DB_1VPCU1GB),
Region: pulumi.String(digitalocean.RegionNYC1),
NodeCount: pulumi.Int(1),
})
if err != nil {
return err
}
replica_example, err := digitalocean.NewDatabaseReplica(ctx, "replica-example", &digitalocean.DatabaseReplicaArgs{
ClusterId: postgres_example.ID(),
Name: pulumi.String("replica-example"),
Size: pulumi.String(digitalocean.DatabaseSlug_DB_1VPCU1GB),
Region: pulumi.String(digitalocean.RegionNYC1),
})
if err != nil {
return err
}
ctx.Export("UUID", replica_example.Uuid)
// Create firewall rule for database replica
_, err = digitalocean.NewDatabaseFirewall(ctx, "example-fw", &digitalocean.DatabaseFirewallArgs{
ClusterId: replica_example.Uuid,
Rules: digitalocean.DatabaseFirewallRuleArray{
&digitalocean.DatabaseFirewallRuleArgs{
Type: pulumi.String("ip_addr"),
Value: pulumi.String("192.168.1.1"),
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.digitalocean.DatabaseCluster;
import com.pulumi.digitalocean.DatabaseClusterArgs;
import com.pulumi.digitalocean.DatabaseReplica;
import com.pulumi.digitalocean.DatabaseReplicaArgs;
import com.pulumi.digitalocean.DatabaseFirewall;
import com.pulumi.digitalocean.DatabaseFirewallArgs;
import com.pulumi.digitalocean.inputs.DatabaseFirewallRuleArgs;
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 postgres_example = new DatabaseCluster("postgres-example", DatabaseClusterArgs.builder()
.name("example-postgres-cluster")
.engine("pg")
.version("15")
.size("db-s-1vcpu-1gb")
.region("nyc1")
.nodeCount(1)
.build());
var replica_example = new DatabaseReplica("replica-example", DatabaseReplicaArgs.builder()
.clusterId(postgres_example.id())
.name("replica-example")
.size("db-s-1vcpu-1gb")
.region("nyc1")
.build());
ctx.export("UUID", replica_example.uuid());
// Create firewall rule for database replica
var example_fw = new DatabaseFirewall("example-fw", DatabaseFirewallArgs.builder()
.clusterId(replica_example.uuid())
.rules(DatabaseFirewallRuleArgs.builder()
.type("ip_addr")
.value("192.168.1.1")
.build())
.build());
}
}
resources:
postgres-example:
type: digitalocean:DatabaseCluster
properties:
name: example-postgres-cluster
engine: pg
version: '15'
size: db-s-1vcpu-1gb
region: nyc1
nodeCount: 1
replica-example:
type: digitalocean:DatabaseReplica
properties:
clusterId: ${["postgres-example"].id}
name: replica-example
size: db-s-1vcpu-1gb
region: nyc1
# Create firewall rule for database replica
example-fw:
type: digitalocean:DatabaseFirewall
properties:
clusterId: ${["replica-example"].uuid}
rules:
- type: ip_addr
value: 192.168.1.1
outputs:
UUID: ${["replica-example"].uuid}

Import

Database replicas can be imported using the id of the source database cluster and the name of the replica joined with a comma. For example:

$ pulumi import digitalocean:index/databaseReplica:DatabaseReplica read-replica 245bcfd0-7f31-4ce6-a2bc-475a116cca97,read-replica

Constructors

Link copied to clipboard
constructor(clusterId: Output<String>? = null, name: Output<String>? = null, privateNetworkUuid: Output<String>? = null, region: Output<Either<String, Region>>? = null, size: Output<Either<String, DatabaseSlug>>? = null, storageSizeMib: Output<String>? = null, tags: Output<List<String>>? = null)

Properties

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

The ID of the original source database cluster.

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

The name for the database replica.

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

The ID of the VPC where the database replica will be located.

Link copied to clipboard
val region: Output<Either<String, Region>>? = null

DigitalOcean region where the replica will reside.

Link copied to clipboard
val size: Output<Either<String, DatabaseSlug>>? = null

Database Droplet size associated with the replica (ex. db-s-1vcpu-1gb). Note that when resizing an existing replica, its size can only be increased. Decreasing its size is not supported.

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

A list of tag names to be applied to the database replica.

Functions

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