/*
* 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 Instance : AbstractModel
{
///
/// 实例所在的位置。
///
[JsonProperty("Placement")]
public Placement Placement{ get; set; }
///
/// 实例`ID`。
///
[JsonProperty("InstanceId")]
public string InstanceId{ get; set; }
///
/// 实例机型。
///
[JsonProperty("InstanceType")]
public string InstanceType{ get; set; }
///
/// 实例的CPU核数,单位:核。
///
[JsonProperty("CPU")]
public long? CPU{ get; set; }
///
/// 实例内存容量,单位:`GB`。
///
[JsonProperty("Memory")]
public long? Memory{ get; set; }
///
/// 实例业务状态。取值范围:
NORMAL:表示正常状态的实例
EXPIRED:表示过期的实例
PROTECTIVELY_ISOLATED:表示被安全隔离的实例。
///
[JsonProperty("RestrictState")]
public string RestrictState{ get; set; }
///
/// 实例名称。
///
[JsonProperty("InstanceName")]
public string InstanceName{ get; set; }
///
/// 实例计费模式。取值范围:
`PREPAID`:表示预付费,即包年包月
`POSTPAID_BY_HOUR`:表示后付费,即按量计费
`CDHPAID`:`CDH`付费,即只对`CDH`计费,不对`CDH`上的实例计费。
`SPOTPAID`:表示竞价实例付费。
///
[JsonProperty("InstanceChargeType")]
public string InstanceChargeType{ get; set; }
///
/// 实例系统盘信息。
///
[JsonProperty("SystemDisk")]
public SystemDisk SystemDisk{ get; set; }
///
/// 实例数据盘信息。只包含随实例购买的数据盘。
///
[JsonProperty("DataDisks")]
public DataDisk[] DataDisks{ get; set; }
///
/// 实例主网卡的内网`IP`列表。
///
[JsonProperty("PrivateIpAddresses")]
public string[] PrivateIpAddresses{ get; set; }
///
/// 实例主网卡的公网`IP`列表。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("PublicIpAddresses")]
public string[] PublicIpAddresses{ get; set; }
///
/// 实例带宽信息。
///
[JsonProperty("InternetAccessible")]
public InternetAccessible InternetAccessible{ get; set; }
///
/// 实例所属虚拟私有网络信息。
///
[JsonProperty("VirtualPrivateCloud")]
public VirtualPrivateCloud VirtualPrivateCloud{ get; set; }
///
/// 生产实例所使用的镜像`ID`。
///
[JsonProperty("ImageId")]
public string ImageId{ get; set; }
///
/// 自动续费标识。取值范围:
`NOTIFY_AND_MANUAL_RENEW`:表示通知即将过期,但不自动续费
`NOTIFY_AND_AUTO_RENEW`:表示通知即将过期,而且自动续费
`DISABLE_NOTIFY_AND_MANUAL_RENEW`:表示不通知即将过期,也不自动续费。
///
注意:后付费模式本项为null
///
[JsonProperty("RenewFlag")]
public string RenewFlag{ get; set; }
///
/// 创建时间。按照`ISO8601`标准表示,并且使用`UTC`时间。格式为:`YYYY-MM-DDThh:mm:ssZ`。
///
[JsonProperty("CreatedTime")]
public string CreatedTime{ get; set; }
///
/// 到期时间。按照`ISO8601`标准表示,并且使用`UTC`时间。格式为:`YYYY-MM-DDThh:mm:ssZ`。注意:后付费模式本项为null
///
[JsonProperty("ExpiredTime")]
public string ExpiredTime{ get; set; }
///
/// 操作系统名称。
///
[JsonProperty("OsName")]
public string OsName{ get; set; }
///
/// 实例所属安全组。该参数可以通过调用 [DescribeSecurityGroups](https://cloud.tencent.com/document/api/215/15808) 的返回值中的sgId字段来获取。
///
[JsonProperty("SecurityGroupIds")]
public string[] SecurityGroupIds{ get; set; }
///
/// 实例登录设置。目前只返回实例所关联的密钥。
///
[JsonProperty("LoginSettings")]
public LoginSettings LoginSettings{ get; set; }
///
/// 实例状态。取值范围:
PENDING:表示创建中
LAUNCH_FAILED:表示创建失败
RUNNING:表示运行中
STOPPED:表示关机
STARTING:表示开机中
STOPPING:表示关机中
REBOOTING:表示重启中
SHUTDOWN:表示停止待销毁
TERMINATING:表示销毁中。
///
[JsonProperty("InstanceState")]
public string InstanceState{ get; set; }
///
/// 实例关联的标签列表。
///
[JsonProperty("Tags")]
public Tag[] Tags{ get; set; }
///
/// 实例的关机计费模式。
/// 取值范围:
KEEP_CHARGING:关机继续收费
STOP_CHARGING:关机停止收费NOT_APPLICABLE:实例处于非关机状态或者不适用关机停止计费的条件
///
[JsonProperty("StopChargingMode")]
public string StopChargingMode{ get; set; }
///
/// 实例全局唯一ID
///
[JsonProperty("Uuid")]
public string Uuid{ get; set; }
///
/// 实例的最新操作。例:StopInstances、ResetInstance。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("LatestOperation")]
public string LatestOperation{ get; set; }
///
/// 实例的最新操作状态。取值范围:
SUCCESS:表示操作成功
OPERATING:表示操作执行中
FAILED:表示操作失败
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("LatestOperationState")]
public string LatestOperationState{ get; set; }
///
/// 实例最新操作的唯一请求 ID。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("LatestOperationRequestId")]
public string LatestOperationRequestId{ get; set; }
///
/// 分散置放群组ID。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("DisasterRecoverGroupId")]
public string DisasterRecoverGroupId{ get; set; }
///
/// 实例的IPv6地址。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("IPv6Addresses")]
public string[] IPv6Addresses{ get; set; }
///
/// CAM角色名。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("CamRoleName")]
public string CamRoleName{ get; set; }
///
/// For internal usage only. DO NOT USE IT.
///
internal override void ToMap(Dictionary map, string prefix)
{
this.SetParamObj(map, prefix + "Placement.", this.Placement);
this.SetParamSimple(map, prefix + "InstanceId", this.InstanceId);
this.SetParamSimple(map, prefix + "InstanceType", this.InstanceType);
this.SetParamSimple(map, prefix + "CPU", this.CPU);
this.SetParamSimple(map, prefix + "Memory", this.Memory);
this.SetParamSimple(map, prefix + "RestrictState", this.RestrictState);
this.SetParamSimple(map, prefix + "InstanceName", this.InstanceName);
this.SetParamSimple(map, prefix + "InstanceChargeType", this.InstanceChargeType);
this.SetParamObj(map, prefix + "SystemDisk.", this.SystemDisk);
this.SetParamArrayObj(map, prefix + "DataDisks.", this.DataDisks);
this.SetParamArraySimple(map, prefix + "PrivateIpAddresses.", this.PrivateIpAddresses);
this.SetParamArraySimple(map, prefix + "PublicIpAddresses.", this.PublicIpAddresses);
this.SetParamObj(map, prefix + "InternetAccessible.", this.InternetAccessible);
this.SetParamObj(map, prefix + "VirtualPrivateCloud.", this.VirtualPrivateCloud);
this.SetParamSimple(map, prefix + "ImageId", this.ImageId);
this.SetParamSimple(map, prefix + "RenewFlag", this.RenewFlag);
this.SetParamSimple(map, prefix + "CreatedTime", this.CreatedTime);
this.SetParamSimple(map, prefix + "ExpiredTime", this.ExpiredTime);
this.SetParamSimple(map, prefix + "OsName", this.OsName);
this.SetParamArraySimple(map, prefix + "SecurityGroupIds.", this.SecurityGroupIds);
this.SetParamObj(map, prefix + "LoginSettings.", this.LoginSettings);
this.SetParamSimple(map, prefix + "InstanceState", this.InstanceState);
this.SetParamArrayObj(map, prefix + "Tags.", this.Tags);
this.SetParamSimple(map, prefix + "StopChargingMode", this.StopChargingMode);
this.SetParamSimple(map, prefix + "Uuid", this.Uuid);
this.SetParamSimple(map, prefix + "LatestOperation", this.LatestOperation);
this.SetParamSimple(map, prefix + "LatestOperationState", this.LatestOperationState);
this.SetParamSimple(map, prefix + "LatestOperationRequestId", this.LatestOperationRequestId);
this.SetParamSimple(map, prefix + "DisasterRecoverGroupId", this.DisasterRecoverGroupId);
this.SetParamArraySimple(map, prefix + "IPv6Addresses.", this.IPv6Addresses);
this.SetParamSimple(map, prefix + "CamRoleName", this.CamRoleName);
}
}
}