196 lines
12 KiB
C#
196 lines
12 KiB
C#
|
|
/*
|
|||
|
|
* 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>
|
|||
|
|
/// 购买实例数量。包年包月实例取值范围:[1,300],按量计费实例取值范围:[1,100]。默认取值: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);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|