InstanceArgs

data class InstanceArgs(val authorizedNetwork: Output<String>? = null, val displayName: Output<String>? = null, val labels: Output<Map<String, String>>? = null, val maintenancePolicy: Output<InstanceMaintenancePolicyArgs>? = null, val memcacheParameters: Output<InstanceMemcacheParametersArgs>? = null, val memcacheVersion: Output<String>? = null, val name: Output<String>? = null, val nodeConfig: Output<InstanceNodeConfigArgs>? = null, val nodeCount: Output<Int>? = null, val project: Output<String>? = null, val region: Output<String>? = null, val reservedIpRangeIds: Output<List<String>>? = null, val zones: Output<List<String>>? = null) : ConvertibleToJava<InstanceArgs>

A Google Cloud Memcache instance. To get more information about Instance, see:

Example Usage

Memcache Instance Basic

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
// This example assumes this network already exists.
// The API creates a tenant network per network authorized for a
// Memcache instance and that network is not deleted when the user-created
// network (authorized_network) is deleted, so this prevents issues
// with tenant network quota.
// If this network hasn't been created and you are using this example in your
// config, add an additional network resource or change
// this from "data"to "resource"
const memcacheNetwork = new gcp.compute.Network("memcache_network", {name: "test-network"});
const serviceRange = new gcp.compute.GlobalAddress("service_range", {
name: "address",
purpose: "VPC_PEERING",
addressType: "INTERNAL",
prefixLength: 16,
network: memcacheNetwork.id,
});
const privateServiceConnection = new gcp.servicenetworking.Connection("private_service_connection", {
network: memcacheNetwork.id,
service: "servicenetworking.googleapis.com",
reservedPeeringRanges: [serviceRange&#46;name],
});
const instance = new gcp.memcache.Instance("instance", {
name: "test-instance",
authorizedNetwork: privateServiceConnection.network,
labels: {
env: "test",
},
nodeConfig: {
cpuCount: 1,
memorySizeMb: 1024,
},
nodeCount: 1,
memcacheVersion: "MEMCACHE_1_5",
maintenancePolicy: {
weeklyMaintenanceWindows: [{
day: "SATURDAY",
duration: "14400s",
startTime: {
hours: 0,
minutes: 30,
seconds: 0,
nanos: 0,
},
}],
},
});
import pulumi
import pulumi_gcp as gcp
# This example assumes this network already exists.
# The API creates a tenant network per network authorized for a
# Memcache instance and that network is not deleted when the user-created
# network (authorized_network) is deleted, so this prevents issues
# with tenant network quota.
# If this network hasn't been created and you are using this example in your
# config, add an additional network resource or change
# this from "data"to "resource"
memcache_network = gcp.compute.Network("memcache_network", name="test-network")
service_range = gcp.compute.GlobalAddress("service_range",
name="address",
purpose="VPC_PEERING",
address_type="INTERNAL",
prefix_length=16,
network=memcache_network.id)
private_service_connection = gcp.servicenetworking.Connection("private_service_connection",
network=memcache_network.id,
service="servicenetworking.googleapis.com",
reserved_peering_ranges=[service_range&#46;name])
instance = gcp.memcache.Instance("instance",
name="test-instance",
authorized_network=private_service_connection.network,
labels={
"env": "test",
},
node_config={
"cpu_count": 1,
"memory_size_mb": 1024,
},
node_count=1,
memcache_version="MEMCACHE_1_5",
maintenance_policy={
"weekly_maintenance_windows": [{
"day": "SATURDAY",
"duration": "14400s",
"start_time": {
"hours": 0,
"minutes": 30,
"seconds": 0,
"nanos": 0,
},
}],
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
// This example assumes this network already exists.
// The API creates a tenant network per network authorized for a
// Memcache instance and that network is not deleted when the user-created
// network (authorized_network) is deleted, so this prevents issues
// with tenant network quota.
// If this network hasn't been created and you are using this example in your
// config, add an additional network resource or change
// this from "data"to "resource"
var memcacheNetwork = new Gcp.Compute.Network("memcache_network", new()
{
Name = "test-network",
});
var serviceRange = new Gcp.Compute.GlobalAddress("service_range", new()
{
Name = "address",
Purpose = "VPC_PEERING",
AddressType = "INTERNAL",
PrefixLength = 16,
Network = memcacheNetwork.Id,
});
var privateServiceConnection = new Gcp.ServiceNetworking.Connection("private_service_connection", new()
{
Network = memcacheNetwork.Id,
Service = "servicenetworking.googleapis.com",
ReservedPeeringRanges = new[]
{
serviceRange.Name,
},
});
var instance = new Gcp.Memcache.Instance("instance", new()
{
Name = "test-instance",
AuthorizedNetwork = privateServiceConnection.Network,
Labels =
{
{ "env", "test" },
},
NodeConfig = new Gcp.Memcache.Inputs.InstanceNodeConfigArgs
{
CpuCount = 1,
MemorySizeMb = 1024,
},
NodeCount = 1,
MemcacheVersion = "MEMCACHE_1_5",
MaintenancePolicy = new Gcp.Memcache.Inputs.InstanceMaintenancePolicyArgs
{
WeeklyMaintenanceWindows = new[]
{
new Gcp.Memcache.Inputs.InstanceMaintenancePolicyWeeklyMaintenanceWindowArgs
{
Day = "SATURDAY",
Duration = "14400s",
StartTime = new Gcp.Memcache.Inputs.InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs
{
Hours = 0,
Minutes = 30,
Seconds = 0,
Nanos = 0,
},
},
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/memcache"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// This example assumes this network already exists.
// The API creates a tenant network per network authorized for a
// Memcache instance and that network is not deleted when the user-created
// network (authorized_network) is deleted, so this prevents issues
// with tenant network quota.
// If this network hasn't been created and you are using this example in your
// config, add an additional network resource or change
// this from "data"to "resource"
memcacheNetwork, err := compute.NewNetwork(ctx, "memcache_network", &compute.NetworkArgs{
Name: pulumi.String("test-network"),
})
if err != nil {
return err
}
serviceRange, err := compute.NewGlobalAddress(ctx, "service_range", &compute.GlobalAddressArgs{
Name: pulumi.String("address"),
Purpose: pulumi.String("VPC_PEERING"),
AddressType: pulumi.String("INTERNAL"),
PrefixLength: pulumi.Int(16),
Network: memcacheNetwork.ID(),
})
if err != nil {
return err
}
privateServiceConnection, err := servicenetworking.NewConnection(ctx, "private_service_connection", &servicenetworking.ConnectionArgs{
Network: memcacheNetwork.ID(),
Service: pulumi.String("servicenetworking.googleapis.com"),
ReservedPeeringRanges: pulumi.StringArray{
serviceRange.Name,
},
})
if err != nil {
return err
}
_, err = memcache.NewInstance(ctx, "instance", &memcache.InstanceArgs{
Name: pulumi.String("test-instance"),
AuthorizedNetwork: privateServiceConnection.Network,
Labels: pulumi.StringMap{
"env": pulumi.String("test"),
},
NodeConfig: &memcache.InstanceNodeConfigArgs{
CpuCount: pulumi.Int(1),
MemorySizeMb: pulumi.Int(1024),
},
NodeCount: pulumi.Int(1),
MemcacheVersion: pulumi.String("MEMCACHE_1_5"),
MaintenancePolicy: &memcache.InstanceMaintenancePolicyArgs{
WeeklyMaintenanceWindows: memcache.InstanceMaintenancePolicyWeeklyMaintenanceWindowArray{
&memcache.InstanceMaintenancePolicyWeeklyMaintenanceWindowArgs{
Day: pulumi.String("SATURDAY"),
Duration: pulumi.String("14400s"),
StartTime: &memcache.InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs{
Hours: pulumi.Int(0),
Minutes: pulumi.Int(30),
Seconds: pulumi.Int(0),
Nanos: pulumi.Int(0),
},
},
},
},
})
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.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.GlobalAddress;
import com.pulumi.gcp.compute.GlobalAddressArgs;
import com.pulumi.gcp.servicenetworking.Connection;
import com.pulumi.gcp.servicenetworking.ConnectionArgs;
import com.pulumi.gcp.memcache.Instance;
import com.pulumi.gcp.memcache.InstanceArgs;
import com.pulumi.gcp.memcache.inputs.InstanceNodeConfigArgs;
import com.pulumi.gcp.memcache.inputs.InstanceMaintenancePolicyArgs;
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) {
// This example assumes this network already exists.
// The API creates a tenant network per network authorized for a
// Memcache instance and that network is not deleted when the user-created
// network (authorized_network) is deleted, so this prevents issues
// with tenant network quota.
// If this network hasn't been created and you are using this example in your
// config, add an additional network resource or change
// this from "data"to "resource"
var memcacheNetwork = new Network("memcacheNetwork", NetworkArgs.builder()
.name("test-network")
.build());
var serviceRange = new GlobalAddress("serviceRange", GlobalAddressArgs.builder()
.name("address")
.purpose("VPC_PEERING")
.addressType("INTERNAL")
.prefixLength(16)
.network(memcacheNetwork.id())
.build());
var privateServiceConnection = new Connection("privateServiceConnection", ConnectionArgs.builder()
.network(memcacheNetwork.id())
.service("servicenetworking.googleapis.com")
.reservedPeeringRanges(serviceRange.name())
.build());
var instance = new Instance("instance", InstanceArgs.builder()
.name("test-instance")
.authorizedNetwork(privateServiceConnection.network())
.labels(Map.of("env", "test"))
.nodeConfig(InstanceNodeConfigArgs.builder()
.cpuCount(1)
.memorySizeMb(1024)
.build())
.nodeCount(1)
.memcacheVersion("MEMCACHE_1_5")
.maintenancePolicy(InstanceMaintenancePolicyArgs.builder()
.weeklyMaintenanceWindows(InstanceMaintenancePolicyWeeklyMaintenanceWindowArgs.builder()
.day("SATURDAY")
.duration("14400s")
.startTime(InstanceMaintenancePolicyWeeklyMaintenanceWindowStartTimeArgs.builder()
.hours(0)
.minutes(30)
.seconds(0)
.nanos(0)
.build())
.build())
.build())
.build());
}
}
resources:
# This example assumes this network already exists.
# // The API creates a tenant network per network authorized for a
# // Memcache instance and that network is not deleted when the user-created
# // network (authorized_network) is deleted, so this prevents issues
# // with tenant network quota.
# // If this network hasn't been created and you are using this example in your
# // config, add an additional network resource or change
# // this from "data"to "resource"
memcacheNetwork:
type: gcp:compute:Network
name: memcache_network
properties:
name: test-network
serviceRange:
type: gcp:compute:GlobalAddress
name: service_range
properties:
name: address
purpose: VPC_PEERING
addressType: INTERNAL
prefixLength: 16
network: ${memcacheNetwork.id}
privateServiceConnection:
type: gcp:servicenetworking:Connection
name: private_service_connection
properties:
network: ${memcacheNetwork.id}
service: servicenetworking.googleapis.com
reservedPeeringRanges:
- ${serviceRange.name}
instance:
type: gcp:memcache:Instance
properties:
name: test-instance
authorizedNetwork: ${privateServiceConnection.network}
labels:
env: test
nodeConfig:
cpuCount: 1
memorySizeMb: 1024
nodeCount: 1
memcacheVersion: MEMCACHE_1_5
maintenancePolicy:
weeklyMaintenanceWindows:
- day: SATURDAY
duration: 14400s
startTime:
hours: 0
minutes: 30
seconds: 0
nanos: 0

Import

Instance can be imported using any of these accepted formats:

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

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

  • {{region}}/{{name}}

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

$ pulumi import gcp:memcache/instance:Instance default projects/{{project}}/locations/{{region}}/instances/{{name}}
$ pulumi import gcp:memcache/instance:Instance default {{project}}/{{region}}/{{name}}
$ pulumi import gcp:memcache/instance:Instance default {{region}}/{{name}}
$ pulumi import gcp:memcache/instance:Instance default {{name}}

Constructors

Link copied to clipboard
constructor(authorizedNetwork: Output<String>? = null, displayName: Output<String>? = null, labels: Output<Map<String, String>>? = null, maintenancePolicy: Output<InstanceMaintenancePolicyArgs>? = null, memcacheParameters: Output<InstanceMemcacheParametersArgs>? = null, memcacheVersion: Output<String>? = null, name: Output<String>? = null, nodeConfig: Output<InstanceNodeConfigArgs>? = null, nodeCount: Output<Int>? = null, project: Output<String>? = null, region: Output<String>? = null, reservedIpRangeIds: Output<List<String>>? = null, zones: Output<List<String>>? = null)

Properties

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

The full name of the GCE network to connect the instance to. If not provided, 'default' will be used.

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

A user-visible name for the instance.

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

Resource labels to represent user-provided metadata. 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

Maintenance policy for an instance.

Link copied to clipboard

User-specified parameters for this memcache instance.

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

The major version of Memcached software. If not provided, latest supported version will be used. Currently the latest supported major version is MEMCACHE_1_5. The minor version will be automatically determined by our system based on the latest supported minor version. Default value: "MEMCACHE_1_5" Possible values: "MEMCACHE_1_5", "MEMCACHE_1_6_15"

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

The resource name of the instance.

Link copied to clipboard
val nodeConfig: Output<InstanceNodeConfigArgs>? = null

Configuration for memcache nodes. Structure is documented below.

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

Number of nodes in the memcache instance.

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

The region of the Memcache instance. If it is not provided, the provider region is used.

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

Contains the name of allocated IP address ranges associated with the private service access connection for example, "test-default" associated with IP range 10.0.0.0/29.

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

Zones where memcache nodes should be provisioned. If not provided, all zones will be used.

Functions

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