ClusterInstanceArgs

data class ClusterInstanceArgs(val applyImmediately: Output<Boolean>? = null, val autoMinorVersionUpgrade: Output<Boolean>? = null, val availabilityZone: Output<String>? = null, val clusterIdentifier: Output<String>? = null, val engine: Output<String>? = null, val engineVersion: Output<String>? = null, val identifier: Output<String>? = null, val identifierPrefix: Output<String>? = null, val instanceClass: Output<String>? = null, val neptuneParameterGroupName: Output<String>? = null, val neptuneSubnetGroupName: Output<String>? = null, val port: Output<Int>? = null, val preferredBackupWindow: Output<String>? = null, val preferredMaintenanceWindow: Output<String>? = null, val promotionTier: Output<Int>? = null, val publiclyAccessible: Output<Boolean>? = null, val skipFinalSnapshot: Output<Boolean>? = null, val tags: Output<Map<String, String>>? = null) : ConvertibleToJava<ClusterInstanceArgs>

A Cluster Instance Resource defines attributes that are specific to a single instance in a Neptune Cluster. You can simply add neptune instances and Neptune manages the replication. You can use the count meta-parameter to make multiple instances and join them all to the same Neptune Cluster, or you may specify different Cluster Instance resources with various instance_class sizes.

Example Usage

The following example will create a neptune cluster with two neptune instances(one writer and one reader).

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const _default = new aws.neptune.Cluster("default", {
clusterIdentifier: "neptune-cluster-demo",
engine: "neptune",
backupRetentionPeriod: 5,
preferredBackupWindow: "07:00-09:00",
skipFinalSnapshot: true,
iamDatabaseAuthenticationEnabled: true,
applyImmediately: true,
});
const example: aws.neptune.ClusterInstance[] = [];
for (const range = {value: 0}; range.value < 2; range.value++) {
example.push(new aws.neptune.ClusterInstance(`example-${range.value}`, {
clusterIdentifier: _default.id,
engine: "neptune",
instanceClass: "db.r4.large",
applyImmediately: true,
}));
}
import pulumi
import pulumi_aws as aws
default = aws.neptune.Cluster("default",
cluster_identifier="neptune-cluster-demo",
engine="neptune",
backup_retention_period=5,
preferred_backup_window="07:00-09:00",
skip_final_snapshot=True,
iam_database_authentication_enabled=True,
apply_immediately=True)
example = []
for range in [{"value": i} for i in range(0, 2)]:
example.append(aws.neptune.ClusterInstance(f"example-{range['value']}",
cluster_identifier=default.id,
engine="neptune",
instance_class="db.r4.large",
apply_immediately=True))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var @default = new Aws.Neptune.Cluster("default", new()
{
ClusterIdentifier = "neptune-cluster-demo",
Engine = "neptune",
BackupRetentionPeriod = 5,
PreferredBackupWindow = "07:00-09:00",
SkipFinalSnapshot = true,
IamDatabaseAuthenticationEnabled = true,
ApplyImmediately = true,
});
var example = new List<Aws.Neptune.ClusterInstance>();
for (var rangeIndex = 0; rangeIndex < 2; rangeIndex++)
{
var range = new { Value = rangeIndex };
example.Add(new Aws.Neptune.ClusterInstance($"example-{range.Value}", new()
{
ClusterIdentifier = @default.Id,
Engine = "neptune",
InstanceClass = "db.r4.large",
ApplyImmediately = true,
}));
}
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/neptune"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_default, err := neptune.NewCluster(ctx, "default", &neptune.ClusterArgs{
ClusterIdentifier: pulumi.String("neptune-cluster-demo"),
Engine: pulumi.String("neptune"),
BackupRetentionPeriod: pulumi.Int(5),
PreferredBackupWindow: pulumi.String("07:00-09:00"),
SkipFinalSnapshot: pulumi.Bool(true),
IamDatabaseAuthenticationEnabled: pulumi.Bool(true),
ApplyImmediately: pulumi.Bool(true),
})
if err != nil {
return err
}
var example []*neptune.ClusterInstance
for index := 0; index < 2; index++ {
key0 := index
_ := index
__res, err := neptune.NewClusterInstance(ctx, fmt.Sprintf("example-%v", key0), &neptune.ClusterInstanceArgs{
ClusterIdentifier: _default.ID(),
Engine: pulumi.String("neptune"),
InstanceClass: pulumi.String("db.r4.large"),
ApplyImmediately: pulumi.Bool(true),
})
if err != nil {
return err
}
example = append(example, __res)
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.neptune.Cluster;
import com.pulumi.aws.neptune.ClusterArgs;
import com.pulumi.aws.neptune.ClusterInstance;
import com.pulumi.aws.neptune.ClusterInstanceArgs;
import com.pulumi.codegen.internal.KeyedValue;
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 default_ = new Cluster("default", ClusterArgs.builder()
.clusterIdentifier("neptune-cluster-demo")
.engine("neptune")
.backupRetentionPeriod(5)
.preferredBackupWindow("07:00-09:00")
.skipFinalSnapshot(true)
.iamDatabaseAuthenticationEnabled(true)
.applyImmediately(true)
.build());
for (var i = 0; i < 2; i++) {
new ClusterInstance("example-" + i, ClusterInstanceArgs.builder()
.clusterIdentifier(default_.id())
.engine("neptune")
.instanceClass("db.r4.large")
.applyImmediately(true)
.build());
}
}
}
resources:
default:
type: aws:neptune:Cluster
properties:
clusterIdentifier: neptune-cluster-demo
engine: neptune
backupRetentionPeriod: 5
preferredBackupWindow: 07:00-09:00
skipFinalSnapshot: true
iamDatabaseAuthenticationEnabled: true
applyImmediately: true
example:
type: aws:neptune:ClusterInstance
properties:
clusterIdentifier: ${default.id}
engine: neptune
instanceClass: db.r4.large
applyImmediately: true
options: {}

Import

Using pulumi import, import aws_neptune_cluster_instance using the instance identifier. For example:

$ pulumi import aws:neptune/clusterInstance:ClusterInstance example my-instance

Constructors

Link copied to clipboard
constructor(applyImmediately: Output<Boolean>? = null, autoMinorVersionUpgrade: Output<Boolean>? = null, availabilityZone: Output<String>? = null, clusterIdentifier: Output<String>? = null, engine: Output<String>? = null, engineVersion: Output<String>? = null, identifier: Output<String>? = null, identifierPrefix: Output<String>? = null, instanceClass: Output<String>? = null, neptuneParameterGroupName: Output<String>? = null, neptuneSubnetGroupName: Output<String>? = null, port: Output<Int>? = null, preferredBackupWindow: Output<String>? = null, preferredMaintenanceWindow: Output<String>? = null, promotionTier: Output<Int>? = null, publiclyAccessible: Output<Boolean>? = null, skipFinalSnapshot: Output<Boolean>? = null, tags: Output<Map<String, String>>? = null)

Properties

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

Specifies whether any instance modifications are applied immediately, or during the next maintenance window. Default isfalse.

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

Indicates that minor engine upgrades will be applied automatically to the instance during the maintenance window. Default is true.

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

The EC2 Availability Zone that the neptune instance is created in.

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

The identifier of the aws.neptune.Cluster in which to launch this instance.

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

The name of the database engine to be used for the neptune instance. Defaults to neptune. Valid Values: neptune.

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

The neptune engine version. Currently configuring this argumnet has no effect.

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

The identifier for the neptune instance, if omitted, this provider will assign a random, unique identifier.

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

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

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

The instance class to use.

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

The name of the neptune parameter group to associate with this instance.

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

A subnet group to associate with this neptune instance. NOTE: This must match the neptune_subnet_group_name of the attached aws.neptune.Cluster.

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

The port on which the DB accepts connections. Defaults to 8182.

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

The daily time range during which automated backups are created if automated backups are enabled. Eg: "04:00-09:00"

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

The window to perform maintenance in. Syntax: "ddd:hh24:mi-ddd:hh24:mi". Eg: "Mon:00:00-Mon:03:00".

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

Default 0. Failover Priority setting on instance level. The reader who has lower tier has higher priority to get promoter to writer.

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

Bool to control if instance is publicly accessible. Default is false.

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

Determines whether a final DB snapshot is created before the DB instance is deleted.

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

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

Functions

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