/*
* Copyright (c) 2018 THL A29 Limited, a Tencent company. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
namespace TencentCloud.Es.V20180416.Models
{
using Newtonsoft.Json;
using System.Collections.Generic;
using TencentCloud.Common;
public class CreateInstanceRequest : AbstractModel
{
///
/// 可用区
///
[JsonProperty("Zone")]
public string Zone{ get; set; }
///
/// 实例版本(支持"5.6.4"、"6.4.3"、"6.8.2"、"7.5.1")
///
[JsonProperty("EsVersion")]
public string EsVersion{ get; set; }
///
/// 私有网络ID
///
[JsonProperty("VpcId")]
public string VpcId{ get; set; }
///
/// 子网ID
///
[JsonProperty("SubnetId")]
public string SubnetId{ get; set; }
///
/// 访问密码(密码需8到16位,至少包括两项([a-z,A-Z],[0-9]和[-!@#$%&^*+=_:;,.?]的特殊符号)
///
[JsonProperty("Password")]
public string Password{ get; set; }
///
/// 实例名称(1-50 个英文、汉字、数字、连接线-或下划线_)
///
[JsonProperty("InstanceName")]
public string InstanceName{ get; set; }
///
/// 已废弃请使用NodeInfoList
/// 节点数量(2-50个)
///
[JsonProperty("NodeNum")]
public ulong? NodeNum{ get; set; }
///
/// 计费类型PREPAID:预付费,即包年包月POSTPAID_BY_HOUR:按小时后付费默认值POSTPAID_BY_HOUR
///
[JsonProperty("ChargeType")]
public string ChargeType{ get; set; }
///
/// 包年包月购买时长(单位由参数TimeUnit决定)
///
[JsonProperty("ChargePeriod")]
public ulong? ChargePeriod{ get; set; }
///
/// 自动续费标识RENEW_FLAG_AUTO:自动续费RENEW_FLAG_MANUAL:不自动续费,用户手动续费ChargeType为PREPAID时需要设置,如不传递该参数,普通用户默认不自动续费,SVIP用户自动续费
///
[JsonProperty("RenewFlag")]
public string RenewFlag{ get; set; }
///
/// 已废弃请使用NodeInfoList
/// 节点规格ES.S1.SMALL2:1核2GES.S1.MEDIUM4:2核4GES.S1.MEDIUM8:2核8GES.S1.LARGE16:4核16GES.S1.2XLARGE32:8核32GES.S1.4XLARGE32:16核32GES.S1.4XLARGE64:16核64G
///
[JsonProperty("NodeType")]
public string NodeType{ get; set; }
///
/// 已废弃请使用NodeInfoList
/// 节点磁盘类型CLOUD_SSD:SSD云硬盘CLOUD_PREMIUM:高硬能云硬盘默认值CLOUD_SSD
///
[JsonProperty("DiskType")]
public string DiskType{ get; set; }
///
/// 已废弃请使用NodeInfoList
/// 节点磁盘容量(单位GB)
///
[JsonProperty("DiskSize")]
public ulong? DiskSize{ get; set; }
///
/// 计费时长单位(ChargeType为PREPAID时需要设置,默认值为“m”,表示月,当前只支持“m”)
///
[JsonProperty("TimeUnit")]
public string TimeUnit{ get; set; }
///
/// 是否自动使用代金券0:不自动使用1:自动使用默认值0
///
[JsonProperty("AutoVoucher")]
public long? AutoVoucher{ get; set; }
///
/// 代金券ID列表(目前仅支持指定一张代金券)
///
[JsonProperty("VoucherIds")]
public string[] VoucherIds{ get; set; }
///
/// 已废弃请使用NodeInfoList
/// 是否创建专用主节点true:开启专用主节点false:不开启专用主节点默认值false
///
[JsonProperty("EnableDedicatedMaster")]
public bool? EnableDedicatedMaster{ get; set; }
///
/// 已废弃请使用NodeInfoList
/// 专用主节点个数(只支持3个和5个,EnableDedicatedMaster为true时该值必传)
///
[JsonProperty("MasterNodeNum")]
public ulong? MasterNodeNum{ get; set; }
///
/// 已废弃请使用NodeInfoList
/// 专用主节点类型(EnableDedicatedMaster为true时必传)ES.S1.SMALL2:1核2GES.S1.MEDIUM4:2核4GES.S1.MEDIUM8:2核8GES.S1.LARGE16:4核16GES.S1.2XLARGE32:8核32GES.S1.4XLARGE32:16核32GES.S1.4XLARGE64:16核64G
///
[JsonProperty("MasterNodeType")]
public string MasterNodeType{ get; set; }
///
/// 已废弃请使用NodeInfoList
/// 专用主节点磁盘大小(单位GB,非必传,若传递则必须为50,暂不支持自定义)
///
[JsonProperty("MasterNodeDiskSize")]
public ulong? MasterNodeDiskSize{ get; set; }
///
/// 集群配置文件中的ClusterName(系统默认配置为实例ID,暂不支持自定义)
///
[JsonProperty("ClusterNameInConf")]
public string ClusterNameInConf{ get; set; }
///
/// 集群部署方式0:单可用区部署1:多可用区部署默认为0
///
[JsonProperty("DeployMode")]
public ulong? DeployMode{ get; set; }
///
/// 多可用区部署时可用区的详细信息(DeployMode为1时必传)
///
[JsonProperty("MultiZoneInfo")]
public ZoneDetail[] MultiZoneInfo{ get; set; }
///
/// License类型oss:开源版basic:基础版platinum:白金版默认值platinum
///
[JsonProperty("LicenseType")]
public string LicenseType{ get; set; }
///
/// 节点信息列表, 用于描述集群各类节点的规格信息如节点类型,节点个数,节点规格,磁盘类型,磁盘大小等
///
[JsonProperty("NodeInfoList")]
public NodeInfo[] NodeInfoList{ get; set; }
///
/// 节点标签信息列表
///
[JsonProperty("TagList")]
public TagInfo[] TagList{ get; set; }
///
/// 6.8(及以上版本)基础版是否开启xpack security认证1:不开启2:开启
///
[JsonProperty("BasicSecurityType")]
public ulong? BasicSecurityType{ get; set; }
///
/// For internal usage only. DO NOT USE IT.
///
internal override void ToMap(Dictionary map, string prefix)
{
this.SetParamSimple(map, prefix + "Zone", this.Zone);
this.SetParamSimple(map, prefix + "EsVersion", this.EsVersion);
this.SetParamSimple(map, prefix + "VpcId", this.VpcId);
this.SetParamSimple(map, prefix + "SubnetId", this.SubnetId);
this.SetParamSimple(map, prefix + "Password", this.Password);
this.SetParamSimple(map, prefix + "InstanceName", this.InstanceName);
this.SetParamSimple(map, prefix + "NodeNum", this.NodeNum);
this.SetParamSimple(map, prefix + "ChargeType", this.ChargeType);
this.SetParamSimple(map, prefix + "ChargePeriod", this.ChargePeriod);
this.SetParamSimple(map, prefix + "RenewFlag", this.RenewFlag);
this.SetParamSimple(map, prefix + "NodeType", this.NodeType);
this.SetParamSimple(map, prefix + "DiskType", this.DiskType);
this.SetParamSimple(map, prefix + "DiskSize", this.DiskSize);
this.SetParamSimple(map, prefix + "TimeUnit", this.TimeUnit);
this.SetParamSimple(map, prefix + "AutoVoucher", this.AutoVoucher);
this.SetParamArraySimple(map, prefix + "VoucherIds.", this.VoucherIds);
this.SetParamSimple(map, prefix + "EnableDedicatedMaster", this.EnableDedicatedMaster);
this.SetParamSimple(map, prefix + "MasterNodeNum", this.MasterNodeNum);
this.SetParamSimple(map, prefix + "MasterNodeType", this.MasterNodeType);
this.SetParamSimple(map, prefix + "MasterNodeDiskSize", this.MasterNodeDiskSize);
this.SetParamSimple(map, prefix + "ClusterNameInConf", this.ClusterNameInConf);
this.SetParamSimple(map, prefix + "DeployMode", this.DeployMode);
this.SetParamArrayObj(map, prefix + "MultiZoneInfo.", this.MultiZoneInfo);
this.SetParamSimple(map, prefix + "LicenseType", this.LicenseType);
this.SetParamArrayObj(map, prefix + "NodeInfoList.", this.NodeInfoList);
this.SetParamArrayObj(map, prefix + "TagList.", this.TagList);
this.SetParamSimple(map, prefix + "BasicSecurityType", this.BasicSecurityType);
}
}
}