163 lines
10 KiB
C#
163 lines
10 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 InquiryPriceRunInstancesRequest : 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) ,取返回信息中的`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>SPOTPAID:竞价付费<br>默认值:POSTPAID_BY_HOUR。
|
||
/// </summary>
|
||
[JsonProperty("InstanceChargeType")]
|
||
public string InstanceChargeType{ get; set; }
|
||
|
||
/// <summary>
|
||
/// 预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月实例的购买时长、是否设置自动续费等属性。若指定实例的付费模式为预付费则该参数必传。
|
||
/// </summary>
|
||
[JsonProperty("InstanceChargePrepaid")]
|
||
public InstanceChargePrepaid InstanceChargePrepaid{ get; set; }
|
||
|
||
/// <summary>
|
||
/// 实例机型。不同实例机型指定了不同的资源规格,具体取值可通过调用接口[DescribeInstanceTypeConfigs](https://cloud.tencent.com/document/api/213/15749)来获得最新的规格表或参见[实例规格](https://cloud.tencent.com/document/product/213/11518)描述。若不指定该参数,则默认机型为S1.SMALL1。
|
||
/// </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,那么InstanceCount参数只能为1。
|
||
/// </summary>
|
||
[JsonProperty("VirtualPrivateCloud")]
|
||
public VirtualPrivateCloud VirtualPrivateCloud{ get; set; }
|
||
|
||
/// <summary>
|
||
/// 公网带宽相关信息设置。若不指定该参数,则默认公网带宽为0Mbps。
|
||
/// </summary>
|
||
[JsonProperty("InternetAccessible")]
|
||
public InternetAccessible InternetAccessible{ get; set; }
|
||
|
||
/// <summary>
|
||
/// 购买实例数量。取值范围:[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字符。若不指定该参数,则无法保证请求的幂等性。<br>更多详细信息请参阅:如何保证幂等性。
|
||
/// </summary>
|
||
[JsonProperty("ClientToken")]
|
||
public string ClientToken{ get; set; }
|
||
|
||
/// <summary>
|
||
/// 云服务器的主机名。<br><li>点号(.)和短横线(-)不能作为 HostName 的首尾字符,不能连续使用。<br><li>Windows 实例:名字符长度为[2, 15],允许字母(不限制大小写)、数字和短横线(-)组成,不支持点号(.),不能全是数字。<br><li>其他类型(Linux 等)实例:字符长度为[2, 30],允许支持多个点号,点之间为一段,每段允许字母(不限制大小写)、数字和短横线(-)组成。
|
||
/// </summary>
|
||
[JsonProperty("HostName")]
|
||
public string HostName{ get; set; }
|
||
|
||
/// <summary>
|
||
/// 标签描述列表。通过指定该参数可以同时绑定标签到相应的资源实例,当前仅支持绑定标签到云服务器实例。
|
||
/// </summary>
|
||
[JsonProperty("TagSpecification")]
|
||
public TagSpecification[] TagSpecification{ get; set; }
|
||
|
||
/// <summary>
|
||
/// 实例的市场相关选项,如竞价实例相关参数
|
||
/// </summary>
|
||
[JsonProperty("InstanceMarketOptions")]
|
||
public InstanceMarketOptionsRequest InstanceMarketOptions{ 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.SetParamArrayObj(map, prefix + "TagSpecification.", this.TagSpecification);
|
||
this.SetParamObj(map, prefix + "InstanceMarketOptions.", this.InstanceMarketOptions);
|
||
}
|
||
}
|
||
}
|
||
|