Files

196 lines
12 KiB
C#
Raw Permalink Normal View History

/*
* 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.Cvm.V20170312.Models
{
using Newtonsoft.Json;
using System.Collections.Generic;
using TencentCloud.Common;
public class RunInstancesRequest : AbstractModel
{
/// <summary>
/// 实例所在的位置。通过该参数可以指定实例所属可用区,所属项目,所属宿主机(在专用宿主机上创建子机时指定)等属性。
/// </summary>
[JsonProperty("Placement")]
public Placement Placement{ get; set; }
/// <summary>
/// 指定有效的[镜像](https://cloud.tencent.com/document/product/213/4940)ID格式形如`img-xxx`。镜像类型分为四种:<br/><li>公共镜像</li><li>自定义镜像</li><li>共享镜像</li><li>服务市场镜像</li><br/>可通过以下方式获取可用的镜像ID<br/><li>`公共镜像`、`自定义镜像`、`共享镜像`的镜像ID可通过登录[控制台](https://console.cloud.tencent.com/cvm/image?rid=1&imageType=PUBLIC_IMAGE)查询;`服务镜像市场`的镜像ID可通过[云市场](https://market.cloud.tencent.com/list)查询。</li><li>通过调用接口 [DescribeImages](https://cloud.tencent.com/document/api/213/15715) 传入InstanceType获取当前机型支持的镜像列表取返回信息中的`ImageId`字段。</li>
/// </summary>
[JsonProperty("ImageId")]
public string ImageId{ get; set; }
/// <summary>
/// 实例[计费类型](https://cloud.tencent.com/document/product/213/2180)。<br><li>PREPAID预付费即包年包月<br><li>POSTPAID_BY_HOUR按小时后付费<br><li>CDHPAID独享子机基于专用宿主机创建宿主机部分的资源不收费<br><li>SPOTPAID竞价付费<br>默认值POSTPAID_BY_HOUR。
/// </summary>
[JsonProperty("InstanceChargeType")]
public string InstanceChargeType{ get; set; }
/// <summary>
/// 预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月实例的购买时长、是否设置自动续费等属性。若指定实例的付费模式为预付费则该参数必传。
/// </summary>
[JsonProperty("InstanceChargePrepaid")]
public InstanceChargePrepaid InstanceChargePrepaid{ get; set; }
/// <summary>
/// 实例机型。不同实例机型指定了不同的资源规格。
/// <br><li>对于付费模式为PREPAID或POSTPAID\_BY\_HOUR的实例创建具体取值可通过调用接口[DescribeInstanceTypeConfigs](https://cloud.tencent.com/document/api/213/15749)来获得最新的规格表或参见[实例规格](https://cloud.tencent.com/document/product/213/11518)描述。若不指定该参数则默认机型为S1.SMALL1。<br><li>对于付费模式为CDHPAID的实例创建该参数以"CDH_"为前缀根据CPU和内存配置生成具体形式为CDH_XCXG例如对于创建CPU为1核内存为1G大小的专用宿主机的实例该参数应该为CDH_1C1G。
/// </summary>
[JsonProperty("InstanceType")]
public string InstanceType{ get; set; }
/// <summary>
/// 实例系统盘配置信息。若不指定该参数,则按照系统默认值进行分配。
/// </summary>
[JsonProperty("SystemDisk")]
public SystemDisk SystemDisk{ get; set; }
/// <summary>
/// 实例数据盘配置信息。若不指定该参数则默认不购买数据盘。支持购买的时候指定21块数据盘其中最多包含1块LOCAL_BASIC数据盘或者LOCAL_SSD数据盘最多包含20块CLOUD_BASIC数据盘、CLOUD_PREMIUM数据盘或者CLOUD_SSD数据盘。
/// </summary>
[JsonProperty("DataDisks")]
public DataDisk[] DataDisks{ get; set; }
/// <summary>
/// 私有网络相关信息配置。通过该参数可以指定私有网络的ID子网ID等信息。若不指定该参数则默认使用基础网络。若在此参数中指定了私有网络IP表示每个实例的主网卡IP而且InstanceCount参数必须与私有网络IP的个数一致。
/// </summary>
[JsonProperty("VirtualPrivateCloud")]
public VirtualPrivateCloud VirtualPrivateCloud{ get; set; }
/// <summary>
/// 公网带宽相关信息设置。若不指定该参数则默认公网带宽为0Mbps。
/// </summary>
[JsonProperty("InternetAccessible")]
public InternetAccessible InternetAccessible{ get; set; }
/// <summary>
/// 购买实例数量。包年包月实例取值范围:[1300],按量计费实例取值范围:[1100]。默认取值1。指定购买实例的数量不能超过用户所能购买的剩余配额数量具体配额相关限制详见[CVM实例购买限制](https://cloud.tencent.com/document/product/213/2664)。
/// </summary>
[JsonProperty("InstanceCount")]
public long? InstanceCount{ get; set; }
/// <summary>
/// 实例显示名称。<br><li>不指定实例显示名称则默认显示‘未命名’。</li><li>购买多台实例,如果指定模式串`{R:x}`,表示生成数字`[x, x+n-1]`,其中`n`表示购买实例的数量,例如`server_{R:3}`购买1台时实例显示名称为`server_3`购买2台时实例显示名称分别为`server_3``server_4`。支持指定多个模式串`{R:x}`。</li><li>购买多台实例,如果不指定模式串,则在实例显示名称添加后缀`1、2...n`,其中`n`表示购买实例的数量,例如`server_`购买2台时实例显示名称分别为`server_1``server_2`。</li><li>最多支持60个字符包含模式串
/// </summary>
[JsonProperty("InstanceName")]
public string InstanceName{ get; set; }
/// <summary>
/// 实例登录设置。通过该参数可以设置实例的登录方式密码、密钥或保持镜像的原始登录设置。默认情况下会随机生成密码,并以站内信方式知会到用户。
/// </summary>
[JsonProperty("LoginSettings")]
public LoginSettings LoginSettings{ get; set; }
/// <summary>
/// 实例所属安全组。该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的sgId字段来获取。若不指定该参数则绑定默认安全组。
/// </summary>
[JsonProperty("SecurityGroupIds")]
public string[] SecurityGroupIds{ get; set; }
/// <summary>
/// 增强服务。通过该参数可以指定是否开启云安全、云监控等服务。若不指定该参数,则默认公共镜像开启云监控、云安全服务;自定义镜像与镜像市场镜像默认不开启云监控,云安全服务,而使用镜像里保留的服务。
/// </summary>
[JsonProperty("EnhancedService")]
public EnhancedService EnhancedService{ get; set; }
/// <summary>
/// 用于保证请求幂等性的字符串。该字符串由客户生成需保证不同请求之间唯一最大值不超过64个ASCII字符。若不指定该参数则无法保证请求的幂等性。
/// </summary>
[JsonProperty("ClientToken")]
public string ClientToken{ get; set; }
/// <summary>
/// 云服务器的主机名。<br><li>点号(.)和短横线(-)不能作为 HostName 的首尾字符,不能连续使用。<br><li>Windows 实例:名字符长度为[2, 15],允许字母(不限制大小写)、数字和短横线(-)组成,不支持点号(.),不能全是数字。<br><li>其他类型Linux 等)实例:字符长度为[2, 60],允许支持多个点号,点之间为一段,每段允许字母(不限制大小写)、数字和短横线(-)组成。
/// </summary>
[JsonProperty("HostName")]
public string HostName{ get; set; }
/// <summary>
/// 定时任务。通过该参数可以为实例指定定时任务,目前仅支持定时销毁。
/// </summary>
[JsonProperty("ActionTimer")]
public ActionTimer ActionTimer{ get; set; }
/// <summary>
/// 置放群组id仅支持指定一个。
/// </summary>
[JsonProperty("DisasterRecoverGroupIds")]
public string[] DisasterRecoverGroupIds{ get; set; }
/// <summary>
/// 标签描述列表。通过指定该参数可以同时绑定标签到相应的资源实例,当前仅支持绑定标签到云服务器实例。
/// </summary>
[JsonProperty("TagSpecification")]
public TagSpecification[] TagSpecification{ get; set; }
/// <summary>
/// 实例的市场相关选项,如竞价实例相关参数,若指定实例的付费模式为竞价付费则该参数必传。
/// </summary>
[JsonProperty("InstanceMarketOptions")]
public InstanceMarketOptionsRequest InstanceMarketOptions{ get; set; }
/// <summary>
/// 提供给实例使用的用户数据,需要以 base64 方式编码,支持的最大数据大小为 16KB。关于获取此参数的详细介绍请参阅[Windows](https://cloud.tencent.com/document/product/213/17526)和[Linux](https://cloud.tencent.com/document/product/213/17525)启动时运行命令。
/// </summary>
[JsonProperty("UserData")]
public string UserData{ get; set; }
/// <summary>
/// 是否只预检此次请求。
/// true发送检查请求不会创建实例。检查项包括是否填写了必需参数请求格式业务限制和云服务器库存。
/// 如果检查不通过,则返回对应错误码;
/// 如果检查通过则返回RequestId.
/// false默认发送正常请求通过检查后直接创建实例
/// </summary>
[JsonProperty("DryRun")]
public bool? DryRun{ get; set; }
/// <summary>
/// For internal usage only. DO NOT USE IT.
/// </summary>
internal override void ToMap(Dictionary<string, string> map, string prefix)
{
this.SetParamObj(map, prefix + "Placement.", this.Placement);
this.SetParamSimple(map, prefix + "ImageId", this.ImageId);
this.SetParamSimple(map, prefix + "InstanceChargeType", this.InstanceChargeType);
this.SetParamObj(map, prefix + "InstanceChargePrepaid.", this.InstanceChargePrepaid);
this.SetParamSimple(map, prefix + "InstanceType", this.InstanceType);
this.SetParamObj(map, prefix + "SystemDisk.", this.SystemDisk);
this.SetParamArrayObj(map, prefix + "DataDisks.", this.DataDisks);
this.SetParamObj(map, prefix + "VirtualPrivateCloud.", this.VirtualPrivateCloud);
this.SetParamObj(map, prefix + "InternetAccessible.", this.InternetAccessible);
this.SetParamSimple(map, prefix + "InstanceCount", this.InstanceCount);
this.SetParamSimple(map, prefix + "InstanceName", this.InstanceName);
this.SetParamObj(map, prefix + "LoginSettings.", this.LoginSettings);
this.SetParamArraySimple(map, prefix + "SecurityGroupIds.", this.SecurityGroupIds);
this.SetParamObj(map, prefix + "EnhancedService.", this.EnhancedService);
this.SetParamSimple(map, prefix + "ClientToken", this.ClientToken);
this.SetParamSimple(map, prefix + "HostName", this.HostName);
this.SetParamObj(map, prefix + "ActionTimer.", this.ActionTimer);
this.SetParamArraySimple(map, prefix + "DisasterRecoverGroupIds.", this.DisasterRecoverGroupIds);
this.SetParamArrayObj(map, prefix + "TagSpecification.", this.TagSpecification);
this.SetParamObj(map, prefix + "InstanceMarketOptions.", this.InstanceMarketOptions);
this.SetParamSimple(map, prefix + "UserData", this.UserData);
this.SetParamSimple(map, prefix + "DryRun", this.DryRun);
}
}
}