InstanceArgs

data class InstanceArgs(val clientNodeAmount: Output<Int>? = null, val clientNodeSpec: Output<String>? = null, val dataNodeAmount: Output<Int>? = null, val dataNodeDiskEncrypted: Output<Boolean>? = null, val dataNodeDiskSize: Output<Int>? = null, val dataNodeDiskType: Output<String>? = null, val dataNodeSpec: Output<String>? = null, val description: Output<String>? = null, val enableKibanaPrivateNetwork: Output<Boolean>? = null, val enableKibanaPublicNetwork: Output<Boolean>? = null, val enablePublic: Output<Boolean>? = null, val instanceChargeType: Output<String>? = null, val kibanaNodeSpec: Output<String>? = null, val kibanaPrivateWhitelists: Output<List<String>>? = null, val kibanaWhitelists: Output<List<String>>? = null, val kmsEncryptedPassword: Output<String>? = null, val kmsEncryptionContext: Output<Map<String, Any>>? = null, val masterNodeSpec: Output<String>? = null, val password: Output<String>? = null, val period: Output<Int>? = null, val privateWhitelists: Output<List<String>>? = null, val protocol: Output<String>? = null, val publicWhitelists: Output<List<String>>? = null, val resourceGroupId: Output<String>? = null, val settingConfig: Output<Map<String, Any>>? = null, val tags: Output<Map<String, Any>>? = null, val version: Output<String>? = null, val vswitchId: Output<String>? = null, val zoneCount: Output<Int>? = null) : ConvertibleToJava<InstanceArgs>

Provides a Elasticsearch instance resource. It contains data nodes, dedicated master node(optional) and etc. It can be associated with private IP whitelists and kibana IP whitelist.

NOTE: Only one operation is supported in a request. So if data_node_spec and data_node_disk_size are both changed, system will respond error. NOTE: At present, version can not be modified once instance has been created.

Example Usage

Basic Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.elasticsearch.Instance;
import com.pulumi.alicloud.elasticsearch.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 instance = new Instance("instance", InstanceArgs.builder()
.clientNodeAmount("2")
.clientNodeSpec("elasticsearch.sn2ne.large")
.dataNodeAmount("2")
.dataNodeDiskSize("20")
.dataNodeDiskType("cloud_ssd")
.dataNodeSpec("elasticsearch.sn2ne.large")
.description("description")
.instanceChargeType("PostPaid")
.password("Your password")
.protocol("HTTPS")
.tags(Map.ofEntries(
Map.entry("key1", "value1"),
Map.entry("key2", "value2")
))
.version("5.5.3_with_X-Pack")
.vswitchId("some vswitch id")
.zoneCount("2")
.build());
}
}

Import

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

$ pulumi import alicloud:elasticsearch/instance:Instance example es-cn-abcde123456

Constructors

Link copied to clipboard
fun InstanceArgs(clientNodeAmount: Output<Int>? = null, clientNodeSpec: Output<String>? = null, dataNodeAmount: Output<Int>? = null, dataNodeDiskEncrypted: Output<Boolean>? = null, dataNodeDiskSize: Output<Int>? = null, dataNodeDiskType: Output<String>? = null, dataNodeSpec: Output<String>? = null, description: Output<String>? = null, enableKibanaPrivateNetwork: Output<Boolean>? = null, enableKibanaPublicNetwork: Output<Boolean>? = null, enablePublic: Output<Boolean>? = null, instanceChargeType: Output<String>? = null, kibanaNodeSpec: Output<String>? = null, kibanaPrivateWhitelists: Output<List<String>>? = null, kibanaWhitelists: Output<List<String>>? = null, kmsEncryptedPassword: Output<String>? = null, kmsEncryptionContext: Output<Map<String, Any>>? = null, masterNodeSpec: Output<String>? = null, password: Output<String>? = null, period: Output<Int>? = null, privateWhitelists: Output<List<String>>? = null, protocol: Output<String>? = null, publicWhitelists: Output<List<String>>? = null, resourceGroupId: Output<String>? = null, settingConfig: Output<Map<String, Any>>? = null, tags: Output<Map<String, Any>>? = null, version: Output<String>? = null, vswitchId: Output<String>? = null, zoneCount: Output<Int>? = null)

Functions

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

Properties

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

The Elasticsearch cluster's client node quantity, between 2 and 25.

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

The client node spec. If specified, client node will be created.

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

The Elasticsearch cluster's data node quantity, between 2 and 50.

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

If encrypt the data node disk. Valid values are true, false. Default to false.

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

The single data node storage space.

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

The data node disk type. Supported values: cloud_ssd, cloud_efficiency.

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

The data node specifications of the Elasticsearch instance.

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

The description of instance. It a string of 0 to 30 characters.

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

Bool, default to false. When it set to true, the instance can close kibana private network access。

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

Bool, default to true. When it set to false, the instance can enable kibana public network access。

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

Bool, default to false. When it set to true, the instance can enable public network access。

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

Valid values are PrePaid, PostPaid. Default to PostPaid. From version 1.69.0, the Elasticsearch cluster allows you to update your instance_charge_ype from PostPaid to PrePaid, the following attributes are required: period. But, updating from PostPaid to PrePaid is not supported.

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

The kibana node specifications of the Elasticsearch instance. Default is elasticsearch.n4.small.

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

Set the Kibana's IP whitelist in private network.

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

Set the Kibana's IP whitelist in internet network.

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

An KMS encrypts password used to a instance. If the password is filled in, this field will be ignored, but you have to specify one of password and kms_encrypted_password fields.

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
val masterNodeSpec: Output<String>? = null

The dedicated master node spec. If specified, dedicated master node will be created.

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

The password of the instance. The password can be 8 to 30 characters in length and must contain three of the following conditions: uppercase letters, lowercase letters, numbers, and special characters (!@#$%^&*()_+-=).

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

The duration that you will buy Elasticsearch instance (in month). It is valid when instance_charge_type is PrePaid. Valid values: 1~9, 12, 24, 36. Default to 1. From version 1.69.2, when to modify this value, the resource can renewal a PrePaid instance.

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

Set the instance's IP whitelist in VPC network.

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

Elasticsearch protocol. Supported values: HTTP, HTTPS.default is HTTP.

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

Set the instance's IP whitelist in internet network.

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

The Id of resource group which the Elasticsearch instance belongs.

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

The YML configuration of the instance.Detailed introduction.

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 version: Output<String>? = null

Elasticsearch version. Supported values: 5.5.3_with_X-Pack, 6.3_with_X-Pack, 6.7_with_X-Pack, 6.8_with_X-Pack, 7.4_with_X-Pack and 7.7_with_X-Pack.

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

The ID of VSwitch.

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

The Multi-AZ supported for Elasticsearch, between 1 and 3. The data_node_amount value must be an integral multiple of the zone_count value.