ShardingInstanceArgs

data class ShardingInstanceArgs(val accountPassword: Output<String>? = null, val autoRenew: Output<Boolean>? = null, val backupPeriods: Output<List<String>>? = null, val backupTime: Output<String>? = null, val engineVersion: Output<String>? = null, val instanceChargeType: Output<String>? = null, val kmsEncryptedPassword: Output<String>? = null, val kmsEncryptionContext: Output<Map<String, Any>>? = null, val mongoLists: Output<List<ShardingInstanceMongoListArgs>>? = null, val name: Output<String>? = null, val networkType: Output<String>? = null, val orderType: Output<String>? = null, val period: Output<Int>? = null, val protocolType: Output<String>? = null, val resourceGroupId: Output<String>? = null, val securityGroupId: Output<String>? = null, val securityIpLists: Output<List<String>>? = null, val shardLists: Output<List<ShardingInstanceShardListArgs>>? = null, val storageEngine: Output<String>? = null, val tags: Output<Map<String, Any>>? = null, val tdeStatus: Output<String>? = null, val vpcId: Output<String>? = null, val vswitchId: Output<String>? = null, val zoneId: Output<String>? = null) : ConvertibleToJava<ShardingInstanceArgs>

Provides a MongoDB sharding instance resource supports replica set instances only. the MongoDB provides stable, reliable, and automatic scalable database services. It offers a full range of database solutions, such as disaster recovery, backup, recovery, monitoring, and alarms. You can see detail product introduction here

NOTE: Available since v1.40.0. NOTE: The following regions don't support create Classic network MongoDB sharding instance. `cn-zhangjiakou`,`cn-huhehaote`,`ap-southeast-2`,`ap-southeast-3`,`ap-southeast-5`,`ap-south-1`,`me-east-1`,`ap-northeast-1`,`eu-west-1` NOTE: Create MongoDB Sharding instance or change instance type and storage would cost 10~20 minutes. Please make full preparation

Example Usage

Create a Mongodb Sharding instance

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.mongodb.MongodbFunctions;
import com.pulumi.alicloud.mongodb.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.mongodb.ShardingInstance;
import com.pulumi.alicloud.mongodb.ShardingInstanceArgs;
import com.pulumi.alicloud.mongodb.inputs.ShardingInstanceShardListArgs;
import com.pulumi.alicloud.mongodb.inputs.ShardingInstanceMongoListArgs;
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 config = ctx.config();
final var name = config.get("name").orElse("terraform-example");
final var defaultZones = MongodbFunctions.getZones();
final var index = defaultZones.applyValue(getZonesResult -> getZonesResult.zones()).length() - 1;
final var zoneId = defaultZones.applyValue(getZonesResult -> getZonesResult.zones())[index].id();
var defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()
.vpcName(name)
.cidrBlock("172.17.3.0/24")
.build());
var defaultSwitch = new Switch("defaultSwitch", SwitchArgs.builder()
.vswitchName(name)
.cidrBlock("172.17.3.0/24")
.vpcId(defaultNetwork.id())
.zoneId(zoneId)
.build());
var defaultShardingInstance = new ShardingInstance("defaultShardingInstance", ShardingInstanceArgs.builder()
.zoneId(zoneId)
.vswitchId(defaultSwitch.id())
.engineVersion("4.2")
.shardLists(
ShardingInstanceShardListArgs.builder()
.nodeClass("dds.shard.mid")
.nodeStorage("10")
.build(),
ShardingInstanceShardListArgs.builder()
.nodeClass("dds.shard.standard")
.nodeStorage("20")
.readonlyReplicas("1")
.build())
.mongoLists(
ShardingInstanceMongoListArgs.builder()
.nodeClass("dds.mongos.mid")
.build(),
ShardingInstanceMongoListArgs.builder()
.nodeClass("dds.mongos.mid")
.build())
.build());
}
}

Module Support

You can use to the existing mongodb-sharding module to create a MongoDB sharding instance resource one-click.

Import

MongoDB can be imported using the id, e.g.

$ pulumi import alicloud:mongodb/shardingInstance:ShardingInstance example dds-bp1291daeda44195

Constructors

Link copied to clipboard
fun ShardingInstanceArgs(accountPassword: Output<String>? = null, autoRenew: Output<Boolean>? = null, backupPeriods: Output<List<String>>? = null, backupTime: Output<String>? = null, engineVersion: Output<String>? = null, instanceChargeType: Output<String>? = null, kmsEncryptedPassword: Output<String>? = null, kmsEncryptionContext: Output<Map<String, Any>>? = null, mongoLists: Output<List<ShardingInstanceMongoListArgs>>? = null, name: Output<String>? = null, networkType: Output<String>? = null, orderType: Output<String>? = null, period: Output<Int>? = null, protocolType: Output<String>? = null, resourceGroupId: Output<String>? = null, securityGroupId: Output<String>? = null, securityIpLists: Output<List<String>>? = null, shardLists: Output<List<ShardingInstanceShardListArgs>>? = null, storageEngine: Output<String>? = null, tags: Output<Map<String, Any>>? = null, tdeStatus: Output<String>? = null, vpcId: Output<String>? = null, vswitchId: Output<String>? = null, zoneId: Output<String>? = null)

Functions

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

Properties

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

Password of the root account. It is a string of 6 to 32 characters and is composed of letters, numbers, and underlines.

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

Auto renew for prepaid, true of false. Default is false.

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

MongoDB Instance backup period. It is required when backup_time was existed. Valid values: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday. Default to Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday

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

MongoDB instance backup time. It is required when backup_period was existed. In the format of HH:mmZ- HH:mmZ. Time setting interval is one hour. If not set, the system will return a default, like "23:00Z-24:00Z".

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

Database version. Value options can refer to the latest docs CreateDBInstance EngineVersion.

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

Valid values are PrePaid, PostPaid,System default to PostPaid. NOTE: It can be modified from PostPaid to PrePaid after version v1.141.0.

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

An KMS encrypts password used to a instance. If the account_password is filled in, this field will be ignored.

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

An KMS encryption context used to decrypt kms_encrypted_password before creating or updating instance with kms_encrypted_password. See Encryption Context. It is valid when kms_encrypted_password is set.

Link copied to clipboard

The mongo-node count can be purchased is in range of 2, 32. See mongo_list below.

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

The name of DB instance. It a string of 2 to 256 characters.

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

The network type of the instance. Valid values:Classic or VPC. Default value: Classic.

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

The type of configuration changes performed. Default value: DOWNGRADE. Valid values:

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

The duration that you will buy DB instance (in month). It is valid when instance_charge_type is PrePaid. Valid values: 1~9, 12, 24, 36. System default to 1.

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

The type of the access protocol. Valid values: mongodb or dynamodb.

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

The ID of the Resource Group.

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

The Security Group ID of ECS.

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). System default to ["127&#46;0&#46;0&#46;1"].

Link copied to clipboard

the shard-node count can be purchased is in range of 2, 32. See shard_list below.

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

Storage engine: WiredTiger or RocksDB. System Default value: WiredTiger.

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

A mapping of tags to assign to the resource.

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

The TDE(Transparent Data Encryption) status. It can be updated from version 1.160.0+.

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

The ID of the VPC. NOTE: This parameter is valid only when NetworkType is set to VPC.

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

The virtual switch ID to launch DB instances in one VPC.

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

The Zone to launch the DB instance. MongoDB sharding instance does not support multiple-zone. If it is a multi-zone and vswitch_id is specified, the vswitch must in one of them.