ElasticInstanceArgs

data class ElasticInstanceArgs(val dbInstanceCategory: Output<String>? = null, val dbInstanceDescription: Output<String>? = null, val encryptionKey: Output<String>? = null, val encryptionType: Output<String>? = null, val engine: Output<String>? = null, val engineVersion: Output<String>? = null, val instanceNetworkType: Output<String>? = null, val instanceSpec: Output<String>? = null, val paymentDuration: Output<Int>? = null, val paymentDurationUnit: Output<String>? = null, val paymentType: Output<String>? = null, val securityIpLists: Output<List<String>>? = null, val segNodeNum: Output<Int>? = null, val segStorageType: Output<String>? = null, val storageSize: Output<Int>? = null, val tags: Output<Map<String, String>>? = null, val vswitchId: Output<String>? = null, val zoneId: Output<String>? = null) : ConvertibleToJava<ElasticInstanceArgs>

Provides a AnalyticDB for PostgreSQL instance resource which storage type is flexible. Compared to the reserved storage ADB PG instance, you can scale up each disk and smoothly scale out nodes online. For more detail product introduction, see here.

NOTE: Deprecated since v1.147.0. DEPRECATED: This resource has been deprecated from version 1.147.0. Please use new resource alicloud_gpdb_instance.

Example Usage

Create a AnalyticDB for PostgreSQL instance

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const _default = alicloud.getZones({
availableResourceCreation: "Gpdb",
});
const defaultNetwork = new alicloud.vpc.Network("default", {
name: "vpc-123456",
cidrBlock: "172.16.0.0/16",
});
const defaultSwitch = new alicloud.vpc.Switch("default", {
zoneId: _default.then(_default => _default.zones?.[0]?.id),
vpcId: defaultNetwork.id,
cidrBlock: "172.16.0.0/24",
vswitchName: "vpc-123456",
});
const adbPgInstance = new alicloud.gpdb.ElasticInstance("adb_pg_instance", {
engine: "gpdb",
engineVersion: "6.0",
segStorageType: "cloud_essd",
segNodeNum: 4,
storageSize: 50,
instanceSpec: "2C16G",
dbInstanceDescription: "Created by terraform",
instanceNetworkType: "VPC",
paymentType: "PayAsYouGo",
vswitchId: defaultSwitch.id,
});
import pulumi
import pulumi_alicloud as alicloud
default = alicloud.get_zones(available_resource_creation="Gpdb")
default_network = alicloud.vpc.Network("default",
name="vpc-123456",
cidr_block="172.16.0.0/16")
default_switch = alicloud.vpc.Switch("default",
zone_id=default.zones[0].id,
vpc_id=default_network.id,
cidr_block="172.16.0.0/24",
vswitch_name="vpc-123456")
adb_pg_instance = alicloud.gpdb.ElasticInstance("adb_pg_instance",
engine="gpdb",
engine_version="6.0",
seg_storage_type="cloud_essd",
seg_node_num=4,
storage_size=50,
instance_spec="2C16G",
db_instance_description="Created by terraform",
instance_network_type="VPC",
payment_type="PayAsYouGo",
vswitch_id=default_switch.id)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var @default = AliCloud.GetZones.Invoke(new()
{
AvailableResourceCreation = "Gpdb",
});
var defaultNetwork = new AliCloud.Vpc.Network("default", new()
{
Name = "vpc-123456",
CidrBlock = "172.16.0.0/16",
});
var defaultSwitch = new AliCloud.Vpc.Switch("default", new()
{
ZoneId = @default.Apply(@default => @default.Apply(getZonesResult => getZonesResult.Zones[0]?.Id)),
VpcId = defaultNetwork.Id,
CidrBlock = "172.16.0.0/24",
VswitchName = "vpc-123456",
});
var adbPgInstance = new AliCloud.Gpdb.ElasticInstance("adb_pg_instance", new()
{
Engine = "gpdb",
EngineVersion = "6.0",
SegStorageType = "cloud_essd",
SegNodeNum = 4,
StorageSize = 50,
InstanceSpec = "2C16G",
DbInstanceDescription = "Created by terraform",
InstanceNetworkType = "VPC",
PaymentType = "PayAsYouGo",
VswitchId = defaultSwitch.Id,
});
});
package main
import (
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/gpdb"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_default, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
AvailableResourceCreation: pulumi.StringRef("Gpdb"),
}, nil)
if err != nil {
return err
}
defaultNetwork, err := vpc.NewNetwork(ctx, "default", &vpc.NetworkArgs{
Name: pulumi.String("vpc-123456"),
CidrBlock: pulumi.String("172.16.0.0/16"),
})
if err != nil {
return err
}
defaultSwitch, err := vpc.NewSwitch(ctx, "default", &vpc.SwitchArgs{
ZoneId: pulumi.String(_default.Zones[0].Id),
VpcId: defaultNetwork.ID(),
CidrBlock: pulumi.String("172.16.0.0/24"),
VswitchName: pulumi.String("vpc-123456"),
})
if err != nil {
return err
}
_, err = gpdb.NewElasticInstance(ctx, "adb_pg_instance", &gpdb.ElasticInstanceArgs{
Engine: pulumi.String("gpdb"),
EngineVersion: pulumi.String("6.0"),
SegStorageType: pulumi.String("cloud_essd"),
SegNodeNum: pulumi.Int(4),
StorageSize: pulumi.Int(50),
InstanceSpec: pulumi.String("2C16G"),
DbInstanceDescription: pulumi.String("Created by terraform"),
InstanceNetworkType: pulumi.String("VPC"),
PaymentType: pulumi.String("PayAsYouGo"),
VswitchId: defaultSwitch.ID(),
})
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.alicloud.AlicloudFunctions;
import com.pulumi.alicloud.inputs.GetZonesArgs;
import com.pulumi.alicloud.vpc.Network;
import com.pulumi.alicloud.vpc.NetworkArgs;
import com.pulumi.alicloud.vpc.Switch;
import com.pulumi.alicloud.vpc.SwitchArgs;
import com.pulumi.alicloud.gpdb.ElasticInstance;
import com.pulumi.alicloud.gpdb.ElasticInstanceArgs;
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) {
final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableResourceCreation("Gpdb")
.build());
var defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()
.name("vpc-123456")
.cidrBlock("172.16.0.0/16")
.build());
var defaultSwitch = new Switch("defaultSwitch", SwitchArgs.builder()
.zoneId(default_.zones()[0].id())
.vpcId(defaultNetwork.id())
.cidrBlock("172.16.0.0/24")
.vswitchName("vpc-123456")
.build());
var adbPgInstance = new ElasticInstance("adbPgInstance", ElasticInstanceArgs.builder()
.engine("gpdb")
.engineVersion("6.0")
.segStorageType("cloud_essd")
.segNodeNum(4)
.storageSize(50)
.instanceSpec("2C16G")
.dbInstanceDescription("Created by terraform")
.instanceNetworkType("VPC")
.paymentType("PayAsYouGo")
.vswitchId(defaultSwitch.id())
.build());
}
}
resources:
defaultNetwork:
type: alicloud:vpc:Network
name: default
properties:
name: vpc-123456
cidrBlock: 172.16.0.0/16
defaultSwitch:
type: alicloud:vpc:Switch
name: default
properties:
zoneId: ${default.zones[0].id}
vpcId: ${defaultNetwork.id}
cidrBlock: 172.16.0.0/24
vswitchName: vpc-123456
adbPgInstance:
type: alicloud:gpdb:ElasticInstance
name: adb_pg_instance
properties:
engine: gpdb
engineVersion: '6.0'
segStorageType: cloud_essd
segNodeNum: 4
storageSize: 50
instanceSpec: 2C16G
dbInstanceDescription: Created by terraform
instanceNetworkType: VPC
paymentType: PayAsYouGo
vswitchId: ${defaultSwitch.id}
variables:
default:
fn::invoke:
function: alicloud:getZones
arguments:
availableResourceCreation: Gpdb

Import

AnalyticDB for PostgreSQL can be imported using the id, e.g.

$ pulumi import alicloud:gpdb/elasticInstance:ElasticInstance adb_pg_instance gp-bpxxxxxxxxxxxxxx

Constructors

Link copied to clipboard
constructor(dbInstanceCategory: Output<String>? = null, dbInstanceDescription: Output<String>? = null, encryptionKey: Output<String>? = null, encryptionType: Output<String>? = null, engine: Output<String>? = null, engineVersion: Output<String>? = null, instanceNetworkType: Output<String>? = null, instanceSpec: Output<String>? = null, paymentDuration: Output<Int>? = null, paymentDurationUnit: Output<String>? = null, paymentType: Output<String>? = null, securityIpLists: Output<List<String>>? = null, segNodeNum: Output<Int>? = null, segStorageType: Output<String>? = null, storageSize: Output<Int>? = null, tags: Output<Map<String, String>>? = null, vswitchId: Output<String>? = null, zoneId: Output<String>? = null)

Properties

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

The edition of the instance. Valid values: Basic, HighAvailability. Default value: HighAvailability.

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

The description of ADB PG instance. It is a string of 2 to 256 characters.

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

The ID of the encryption key. Note: If the encryption_type parameter is set to CloudDisk, you must specify this parameter to the encryption key that is in the same region as the disk that is specified by the EncryptionType parameter. Otherwise, leave this parameter empty.

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

The type of the encryption. Valid values: CloudDisk. Note: Disk encryption cannot be disabled after it is enabled.

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

Database engine: gpdb.

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

Database version. Valid value is 6.0.

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

The network type of ADB PG instance. Only VPC supported now.

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

The specification of segment nodes.

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

The subscription period. Valid values: 1~12. It is valid when payment_type is Subscription. NOTE: Will not take effect after modifying payment_duration for now, if you want to renew a PayAsYouGo instance, need to do in on aliyun console.

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

The unit of the subscription period. Valid values: Month, Year. It is valid when payment_type is Subscription. NOTE: Will not take effect after modifying payment_duration_unit for now, if you want to renew a PayAsYouGo instance, need to do in on aliyun console.

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

Valid values are PayAsYouGo, Subscription. Default to PayAsYouGo.

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

List of IP addresses allowed to access all databases of an instance. The list contains up to 1,000 IP addresses, separated by commas. Supported formats include 0.0.0.0/0, 10.23.12.24 (IP), and 10.23.12.24/24 (Classless Inter-Domain Routing (CIDR) mode. /24 represents the length of the prefix in an IP address. The range of the prefix length is 1,32).

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

The number of segment nodes. Minimum is 4, max is 256, step is 4.

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

The disk type of segment nodes. Valid values: cloud_essd, cloud_efficiency.

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

The storage capacity of per segment node. Unit: GB. Minimum is 50, max is 4000, step is 50.

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

A mapping of tags to assign to the resource.

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

The virtual switch ID to launch ADB PG instances in one VPC.

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

The Zone to launch the ADB PG instance. If specified, must be consistent with the zone where the vswitch is located.

Functions

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