/*
* 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.Emr.V20190103.Models
{
using Newtonsoft.Json;
using System.Collections.Generic;
using TencentCloud.Common;
public class CreateInstanceRequest : AbstractModel
{
///
/// 产品ID,不同产品ID表示不同的EMR产品版本。取值范围:
/// 1:表示EMR-V1.3.1。
/// 2:表示EMR-V2.0.1。
/// 4:表示EMR-V2.1.0。
/// 7:表示EMR-V3.0.0。
///
[JsonProperty("ProductId")]
public ulong? ProductId{ get; set; }
///
/// 私有网络相关信息配置。通过该参数可以指定私有网络的ID,子网ID等信息。
///
[JsonProperty("VPCSettings")]
public VPCSettings VPCSettings{ get; set; }
///
/// 部署的组件列表。不同的EMR产品ID(ProductId:具体含义参考入参ProductId字段)需要选择不同的必选组件:
/// ProductId为1的时候,必选组件包括:hadoop-2.7.3、knox-1.2.0、zookeeper-3.4.9
/// ProductId为2的时候,必选组件包括:hadoop-2.7.3、knox-1.2.0、zookeeper-3.4.9
/// ProductId为4的时候,必选组件包括:hadoop-2.8.4、knox-1.2.0、zookeeper-3.4.9
/// ProductId为7的时候,必选组件包括:hadoop-3.1.2、knox-1.2.0、zookeeper-3.4.9
///
[JsonProperty("Software")]
public string[] Software{ get; set; }
///
/// 节点资源的规格。
///
[JsonProperty("ResourceSpec")]
public NewResourceSpec ResourceSpec{ get; set; }
///
/// 是否开启节点高可用。取值范围:
/// 0:表示不开启节点高可用。
/// 1:表示开启节点高可用。
///
[JsonProperty("SupportHA")]
public ulong? SupportHA{ get; set; }
///
/// 实例名称。
/// 长度限制为6-36个字符。
/// 只允许包含中文、字母、数字、-、_。
///
[JsonProperty("InstanceName")]
public string InstanceName{ get; set; }
///
/// 实例计费模式。取值范围:
/// 0:表示按量计费。
/// 1:表示包年包月。
///
[JsonProperty("PayMode")]
public ulong? PayMode{ get; set; }
///
/// 实例所在的位置。通过该参数可以指定实例所属可用区,所属项目等属性。
///
[JsonProperty("Placement")]
public Placement Placement{ get; set; }
///
/// 购买实例的时长。结合TimeUnit一起使用。
/// TimeUnit为s时,该参数只能填写3600,表示按量计费实例。
/// TimeUnit为m时,该参数填写的数字表示包年包月实例的购买时长,如1表示购买一个月
///
[JsonProperty("TimeSpan")]
public ulong? TimeSpan{ get; set; }
///
/// 购买实例的时间单位。取值范围:
/// s:表示秒。PayMode取值为0时,TimeUnit只能取值为s。
/// m:表示月份。PayMode取值为1时,TimeUnit只能取值为m。
///
[JsonProperty("TimeUnit")]
public string TimeUnit{ get; set; }
///
/// 实例登录设置。通过该参数可以设置所购买节点的登录方式密码或者密钥。
/// 设置密钥时,密码仅用于组件原生WebUI快捷入口登录。
/// 未设置密钥时,密码用于登录所购节点以及组件原生WebUI快捷入口登录。
///
[JsonProperty("LoginSettings")]
public LoginSettings LoginSettings{ get; set; }
///
/// 开启COS访问需要设置的参数。
///
[JsonProperty("COSSettings")]
public COSSettings COSSettings{ get; set; }
///
/// 实例所属安全组的ID,形如sg-xxxxxxxx。该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的SecurityGroupId字段来获取。
///
[JsonProperty("SgId")]
public string SgId{ get; set; }
///
/// 引导操作脚本设置。
///
[JsonProperty("PreExecutedFileSettings")]
public PreExecuteFileSettings[] PreExecutedFileSettings{ get; set; }
///
/// 包年包月实例是否自动续费。取值范围:
/// 0:表示不自动续费。
/// 1:表示自动续费。
///
[JsonProperty("AutoRenew")]
public ulong? AutoRenew{ get; set; }
///
/// 客户端Token。
///
[JsonProperty("ClientToken")]
public string ClientToken{ get; set; }
///
/// 是否开启集群Master节点公网。取值范围:
/// NEED_MASTER_WAN:表示开启集群Master节点公网。
/// NOT_NEED_MASTER_WAN:表示不开启。默认开启集群Master节点公网。
///
[JsonProperty("NeedMasterWan")]
public string NeedMasterWan{ get; set; }
///
/// 是否需要开启外网远程登录,即22号端口。在SgId不为空时,该参数无效。
///
[JsonProperty("RemoteLoginAtCreate")]
public long? RemoteLoginAtCreate{ get; set; }
///
/// 是否开启安全集群。0表示不开启,非0表示开启。
///
[JsonProperty("CheckSecurity")]
public long? CheckSecurity{ get; set; }
///
/// 访问外部文件系统。
///
[JsonProperty("ExtendFsField")]
public string ExtendFsField{ get; set; }
///
/// 标签描述列表。通过指定该参数可以同时绑定标签到相应的实例。
///
[JsonProperty("Tags")]
public Tag[] Tags{ get; set; }
///
/// 分散置放群组ID列表,当前只支持指定一个。
///
[JsonProperty("DisasterRecoverGroupIds")]
public string[] DisasterRecoverGroupIds{ get; set; }
///
/// 集群维度CBS加密盘,默认0表示不加密,1表示加密
///
[JsonProperty("CbsEncrypt")]
public ulong? CbsEncrypt{ get; set; }
///
/// hive共享元数据库类型。取值范围:
/// EMR_NEW_META:表示集群默认创建
/// EMR_EXIT_METE:表示集群使用指定EMR-MetaDB。
/// USER_CUSTOM_META:表示集群使用自定义MetaDB。
///
[JsonProperty("MetaType")]
public string MetaType{ get; set; }
///
/// EMR-MetaDB实例
///
[JsonProperty("UnifyMetaInstanceId")]
public string UnifyMetaInstanceId{ get; set; }
///
/// 自定义MetaDB信息
///
[JsonProperty("MetaDBInfo")]
public CustomMetaInfo MetaDBInfo{ get; set; }
///
/// For internal usage only. DO NOT USE IT.
///
internal override void ToMap(Dictionary map, string prefix)
{
this.SetParamSimple(map, prefix + "ProductId", this.ProductId);
this.SetParamObj(map, prefix + "VPCSettings.", this.VPCSettings);
this.SetParamArraySimple(map, prefix + "Software.", this.Software);
this.SetParamObj(map, prefix + "ResourceSpec.", this.ResourceSpec);
this.SetParamSimple(map, prefix + "SupportHA", this.SupportHA);
this.SetParamSimple(map, prefix + "InstanceName", this.InstanceName);
this.SetParamSimple(map, prefix + "PayMode", this.PayMode);
this.SetParamObj(map, prefix + "Placement.", this.Placement);
this.SetParamSimple(map, prefix + "TimeSpan", this.TimeSpan);
this.SetParamSimple(map, prefix + "TimeUnit", this.TimeUnit);
this.SetParamObj(map, prefix + "LoginSettings.", this.LoginSettings);
this.SetParamObj(map, prefix + "COSSettings.", this.COSSettings);
this.SetParamSimple(map, prefix + "SgId", this.SgId);
this.SetParamArrayObj(map, prefix + "PreExecutedFileSettings.", this.PreExecutedFileSettings);
this.SetParamSimple(map, prefix + "AutoRenew", this.AutoRenew);
this.SetParamSimple(map, prefix + "ClientToken", this.ClientToken);
this.SetParamSimple(map, prefix + "NeedMasterWan", this.NeedMasterWan);
this.SetParamSimple(map, prefix + "RemoteLoginAtCreate", this.RemoteLoginAtCreate);
this.SetParamSimple(map, prefix + "CheckSecurity", this.CheckSecurity);
this.SetParamSimple(map, prefix + "ExtendFsField", this.ExtendFsField);
this.SetParamArrayObj(map, prefix + "Tags.", this.Tags);
this.SetParamArraySimple(map, prefix + "DisasterRecoverGroupIds.", this.DisasterRecoverGroupIds);
this.SetParamSimple(map, prefix + "CbsEncrypt", this.CbsEncrypt);
this.SetParamSimple(map, prefix + "MetaType", this.MetaType);
this.SetParamSimple(map, prefix + "UnifyMetaInstanceId", this.UnifyMetaInstanceId);
this.SetParamObj(map, prefix + "MetaDBInfo.", this.MetaDBInfo);
}
}
}