InstanceArgs

data class InstanceArgs(val autoscalingConfig: Output<InstanceAutoscalingConfigArgs>? = null, val config: Output<String>? = null, val displayName: Output<String>? = null, val forceDestroy: Output<Boolean>? = null, val labels: Output<Map<String, String>>? = null, val name: Output<String>? = null, val numNodes: Output<Int>? = null, val processingUnits: Output<Int>? = null, val project: Output<String>? = null) : ConvertibleToJava<InstanceArgs>

An isolated set of Cloud Spanner resources on which databases can be hosted. To get more information about Instance, see:

Example Usage

Spanner Instance Basic

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const example = new gcp.spanner.Instance("example", {
config: "regional-us-central1",
displayName: "Test Spanner Instance",
numNodes: 2,
labels: {
foo: "bar",
},
});
import pulumi
import pulumi_gcp as gcp
example = gcp.spanner.Instance("example",
config="regional-us-central1",
display_name="Test Spanner Instance",
num_nodes=2,
labels={
"foo": "bar",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var example = new Gcp.Spanner.Instance("example", new()
{
Config = "regional-us-central1",
DisplayName = "Test Spanner Instance",
NumNodes = 2,
Labels =
{
{ "foo", "bar" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := spanner.NewInstance(ctx, "example", &spanner.InstanceArgs{
Config: pulumi.String("regional-us-central1"),
DisplayName: pulumi.String("Test Spanner Instance"),
NumNodes: pulumi.Int(2),
Labels: pulumi.StringMap{
"foo": pulumi.String("bar"),
},
})
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.gcp.spanner.Instance;
import com.pulumi.gcp.spanner.InstanceArgs;
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 Instance("example", InstanceArgs.builder()
.config("regional-us-central1")
.displayName("Test Spanner Instance")
.numNodes(2)
.labels(Map.of("foo", "bar"))
.build());
}
}
resources:
example:
type: gcp:spanner:Instance
properties:
config: regional-us-central1
displayName: Test Spanner Instance
numNodes: 2
labels:
foo: bar

Spanner Instance Processing Units

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const example = new gcp.spanner.Instance("example", {
config: "regional-us-central1",
displayName: "Test Spanner Instance",
processingUnits: 200,
labels: {
foo: "bar",
},
});
import pulumi
import pulumi_gcp as gcp
example = gcp.spanner.Instance("example",
config="regional-us-central1",
display_name="Test Spanner Instance",
processing_units=200,
labels={
"foo": "bar",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var example = new Gcp.Spanner.Instance("example", new()
{
Config = "regional-us-central1",
DisplayName = "Test Spanner Instance",
ProcessingUnits = 200,
Labels =
{
{ "foo", "bar" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := spanner.NewInstance(ctx, "example", &spanner.InstanceArgs{
Config: pulumi.String("regional-us-central1"),
DisplayName: pulumi.String("Test Spanner Instance"),
ProcessingUnits: pulumi.Int(200),
Labels: pulumi.StringMap{
"foo": pulumi.String("bar"),
},
})
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.gcp.spanner.Instance;
import com.pulumi.gcp.spanner.InstanceArgs;
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 Instance("example", InstanceArgs.builder()
.config("regional-us-central1")
.displayName("Test Spanner Instance")
.processingUnits(200)
.labels(Map.of("foo", "bar"))
.build());
}
}
resources:
example:
type: gcp:spanner:Instance
properties:
config: regional-us-central1
displayName: Test Spanner Instance
processingUnits: 200
labels:
foo: bar

Spanner Instance With Autoscaling

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const example = new gcp.spanner.Instance("example", {
config: "regional-us-central1",
displayName: "Test Spanner Instance",
autoscalingConfig: {
autoscalingLimits: {
maxProcessingUnits: 3000,
minProcessingUnits: 2000,
},
autoscalingTargets: {
highPriorityCpuUtilizationPercent: 75,
storageUtilizationPercent: 90,
},
},
labels: {
foo: "bar",
},
});
import pulumi
import pulumi_gcp as gcp
example = gcp.spanner.Instance("example",
config="regional-us-central1",
display_name="Test Spanner Instance",
autoscaling_config={
"autoscaling_limits": {
"max_processing_units": 3000,
"min_processing_units": 2000,
},
"autoscaling_targets": {
"high_priority_cpu_utilization_percent": 75,
"storage_utilization_percent": 90,
},
},
labels={
"foo": "bar",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var example = new Gcp.Spanner.Instance("example", new()
{
Config = "regional-us-central1",
DisplayName = "Test Spanner Instance",
AutoscalingConfig = new Gcp.Spanner.Inputs.InstanceAutoscalingConfigArgs
{
AutoscalingLimits = new Gcp.Spanner.Inputs.InstanceAutoscalingConfigAutoscalingLimitsArgs
{
MaxProcessingUnits = 3000,
MinProcessingUnits = 2000,
},
AutoscalingTargets = new Gcp.Spanner.Inputs.InstanceAutoscalingConfigAutoscalingTargetsArgs
{
HighPriorityCpuUtilizationPercent = 75,
StorageUtilizationPercent = 90,
},
},
Labels =
{
{ "foo", "bar" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := spanner.NewInstance(ctx, "example", &spanner.InstanceArgs{
Config: pulumi.String("regional-us-central1"),
DisplayName: pulumi.String("Test Spanner Instance"),
AutoscalingConfig: &spanner.InstanceAutoscalingConfigArgs{
AutoscalingLimits: &spanner.InstanceAutoscalingConfigAutoscalingLimitsArgs{
MaxProcessingUnits: pulumi.Int(3000),
MinProcessingUnits: pulumi.Int(2000),
},
AutoscalingTargets: &spanner.InstanceAutoscalingConfigAutoscalingTargetsArgs{
HighPriorityCpuUtilizationPercent: pulumi.Int(75),
StorageUtilizationPercent: pulumi.Int(90),
},
},
Labels: pulumi.StringMap{
"foo": pulumi.String("bar"),
},
})
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.gcp.spanner.Instance;
import com.pulumi.gcp.spanner.InstanceArgs;
import com.pulumi.gcp.spanner.inputs.InstanceAutoscalingConfigArgs;
import com.pulumi.gcp.spanner.inputs.InstanceAutoscalingConfigAutoscalingLimitsArgs;
import com.pulumi.gcp.spanner.inputs.InstanceAutoscalingConfigAutoscalingTargetsArgs;
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 Instance("example", InstanceArgs.builder()
.config("regional-us-central1")
.displayName("Test Spanner Instance")
.autoscalingConfig(InstanceAutoscalingConfigArgs.builder()
.autoscalingLimits(InstanceAutoscalingConfigAutoscalingLimitsArgs.builder()
.maxProcessingUnits(3000)
.minProcessingUnits(2000)
.build())
.autoscalingTargets(InstanceAutoscalingConfigAutoscalingTargetsArgs.builder()
.highPriorityCpuUtilizationPercent(75)
.storageUtilizationPercent(90)
.build())
.build())
.labels(Map.of("foo", "bar"))
.build());
}
}
resources:
example:
type: gcp:spanner:Instance
properties:
config: regional-us-central1
displayName: Test Spanner Instance
autoscalingConfig:
autoscalingLimits:
maxProcessingUnits: 3000
minProcessingUnits: 2000
autoscalingTargets:
highPriorityCpuUtilizationPercent: 75
storageUtilizationPercent: 90
labels:
foo: bar

Spanner Instance Multi Regional

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const example = new gcp.spanner.Instance("example", {
config: "nam-eur-asia1",
displayName: "Multi Regional Instance",
numNodes: 2,
labels: {
foo: "bar",
},
});
import pulumi
import pulumi_gcp as gcp
example = gcp.spanner.Instance("example",
config="nam-eur-asia1",
display_name="Multi Regional Instance",
num_nodes=2,
labels={
"foo": "bar",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var example = new Gcp.Spanner.Instance("example", new()
{
Config = "nam-eur-asia1",
DisplayName = "Multi Regional Instance",
NumNodes = 2,
Labels =
{
{ "foo", "bar" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := spanner.NewInstance(ctx, "example", &spanner.InstanceArgs{
Config: pulumi.String("nam-eur-asia1"),
DisplayName: pulumi.String("Multi Regional Instance"),
NumNodes: pulumi.Int(2),
Labels: pulumi.StringMap{
"foo": pulumi.String("bar"),
},
})
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.gcp.spanner.Instance;
import com.pulumi.gcp.spanner.InstanceArgs;
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 Instance("example", InstanceArgs.builder()
.config("nam-eur-asia1")
.displayName("Multi Regional Instance")
.numNodes(2)
.labels(Map.of("foo", "bar"))
.build());
}
}
resources:
example:
type: gcp:spanner:Instance
properties:
config: nam-eur-asia1
displayName: Multi Regional Instance
numNodes: 2
labels:
foo: bar

Import

Instance can be imported using any of these accepted formats:

  • projects/{{project}}/instances/{{name}}

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

  • {{name}} When using the pulumi import command, Instance can be imported using one of the formats above. For example:

$ pulumi import gcp:spanner/instance:Instance default projects/{{project}}/instances/{{name}}
$ pulumi import gcp:spanner/instance:Instance default {{project}}/{{name}}
$ pulumi import gcp:spanner/instance:Instance default {{name}}

Constructors

Link copied to clipboard
constructor(autoscalingConfig: Output<InstanceAutoscalingConfigArgs>? = null, config: Output<String>? = null, displayName: Output<String>? = null, forceDestroy: Output<Boolean>? = null, labels: Output<Map<String, String>>? = null, name: Output<String>? = null, numNodes: Output<Int>? = null, processingUnits: Output<Int>? = null, project: Output<String>? = null)

Properties

Link copied to clipboard

The autoscaling configuration. Autoscaling is enabled if this field is set. When autoscaling is enabled, num_nodes and processing_units are treated as, OUTPUT_ONLY fields and reflect the current compute capacity allocated to the instance. Structure is documented below.

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

The name of the instance's configuration (similar but not quite the same as a region) which defines the geographic placement and replication of your databases in this instance. It determines where your data is stored. Values are typically of the form regional-europe-west1 , us-central etc. In order to obtain a valid list please consult the Configuration section of the docs.

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

The descriptive name for this instance as it appears in UIs. Must be unique per project and between 4 and 30 characters in length.

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

When deleting a spanner instance, this boolean option will delete all backups of this instance. This must be set to true if you created a backup manually in the console.

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

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.

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

A unique identifier for the instance, which cannot be changed after the instance is created. The name must be between 6 and 30 characters in length. If not provided, a random string starting with tf- will be selected.

Link copied to clipboard
val numNodes: Output<Int>? = null
Link copied to clipboard
val processingUnits: Output<Int>? = null
Link copied to clipboard
val project: Output<String>? = null

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

Functions

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