/*
* 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.Ecm.V20190719.Models
{
using Newtonsoft.Json;
using System.Collections.Generic;
using TencentCloud.Common;
public class Instance : AbstractModel
{
///
/// 实例ID。
///
[JsonProperty("InstanceId")]
public string InstanceId{ get; set; }
///
/// 实例名称,如ens-34241f3s。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("InstanceName")]
public string InstanceName{ get; set; }
///
/// 实例状态。取值范围:
/// PENDING:表示创建中
/// LAUNCH_FAILED:表示创建失败
/// RUNNING:表示运行中
/// STOPPED:表示关机
/// STARTING:表示开机中
/// STOPPING:表示关机中
/// REBOOTING:表示重启中
/// SHUTDOWN:表示停止待销毁
/// TERMINATING:表示销毁中。
///
[JsonProperty("InstanceState")]
public string InstanceState{ get; set; }
///
/// 实例当前使用的镜像的信息。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("Image")]
public Image Image{ get; set; }
///
/// 实例当前所属的模块简要信息。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("SimpleModule")]
public SimpleModule SimpleModule{ get; set; }
///
/// 实例所在的位置相关信息。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("Position")]
public Position Position{ get; set; }
///
/// 实例的网络相关信息。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("Internet")]
public Internet Internet{ get; set; }
///
/// 实例的配置相关信息。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("InstanceTypeConfig")]
public InstanceTypeConfig InstanceTypeConfig{ get; set; }
///
/// 实例的创建时间。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("CreateTime")]
public string CreateTime{ get; set; }
///
/// 实例的标签信息。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("TagSet")]
public Tag[] TagSet{ get; set; }
///
/// 实例最后一次操作。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("LatestOperation")]
public string LatestOperation{ get; set; }
///
/// 实例最后一次操作结果。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("LatestOperationState")]
public string LatestOperationState{ get; set; }
///
/// 实例业务状态。取值范围:
/// NORMAL:表示正常状态的实例
/// EXPIRED:表示过期的实例
/// PROTECTIVELY_ISOLATED:表示被安全隔离的实例。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("RestrictState")]
public string RestrictState{ get; set; }
///
/// 系统盘大小,单位GB。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("SystemDiskSize")]
public long? SystemDiskSize{ get; set; }
///
/// 数据盘大小,单位GB。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("DataDiskSize")]
public long? DataDiskSize{ get; set; }
///
/// UUID
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("UUID")]
public string UUID{ get; set; }
///
/// 付费方式。
/// 0为后付费。
/// 1为预付费。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("PayMode")]
public long? PayMode{ get; set; }
///
/// 过期时间。格式为yyyy-mm-dd HH:mm:ss。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("ExpireTime")]
public string ExpireTime{ get; set; }
///
/// 隔离时间。格式为yyyy-mm-dd HH:mm:ss。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("IsolatedTime")]
public string IsolatedTime{ get; set; }
///
/// 是否自动续费。
/// 0为不自动续费。
/// 1为自动续费。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("RenewFlag")]
public long? RenewFlag{ get; set; }
///
/// 过期状态。
/// NORMAL 表示机器运行正常。
/// WILL_EXPIRE 表示即将过期。
/// EXPIRED 表示已过期。
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("ExpireState")]
public string ExpireState{ get; set; }
///
/// 系统盘信息
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("SystemDisk")]
public DiskInfo SystemDisk{ get; set; }
///
/// 数据盘信息
/// 注意:此字段可能返回 null,表示取不到有效值。
///
[JsonProperty("DataDisks")]
public DiskInfo[] DataDisks{ get; set; }
///
/// For internal usage only. DO NOT USE IT.
///
internal override void ToMap(Dictionary map, string prefix)
{
this.SetParamSimple(map, prefix + "InstanceId", this.InstanceId);
this.SetParamSimple(map, prefix + "InstanceName", this.InstanceName);
this.SetParamSimple(map, prefix + "InstanceState", this.InstanceState);
this.SetParamObj(map, prefix + "Image.", this.Image);
this.SetParamObj(map, prefix + "SimpleModule.", this.SimpleModule);
this.SetParamObj(map, prefix + "Position.", this.Position);
this.SetParamObj(map, prefix + "Internet.", this.Internet);
this.SetParamObj(map, prefix + "InstanceTypeConfig.", this.InstanceTypeConfig);
this.SetParamSimple(map, prefix + "CreateTime", this.CreateTime);
this.SetParamArrayObj(map, prefix + "TagSet.", this.TagSet);
this.SetParamSimple(map, prefix + "LatestOperation", this.LatestOperation);
this.SetParamSimple(map, prefix + "LatestOperationState", this.LatestOperationState);
this.SetParamSimple(map, prefix + "RestrictState", this.RestrictState);
this.SetParamSimple(map, prefix + "SystemDiskSize", this.SystemDiskSize);
this.SetParamSimple(map, prefix + "DataDiskSize", this.DataDiskSize);
this.SetParamSimple(map, prefix + "UUID", this.UUID);
this.SetParamSimple(map, prefix + "PayMode", this.PayMode);
this.SetParamSimple(map, prefix + "ExpireTime", this.ExpireTime);
this.SetParamSimple(map, prefix + "IsolatedTime", this.IsolatedTime);
this.SetParamSimple(map, prefix + "RenewFlag", this.RenewFlag);
this.SetParamSimple(map, prefix + "ExpireState", this.ExpireState);
this.SetParamObj(map, prefix + "SystemDisk.", this.SystemDisk);
this.SetParamArrayObj(map, prefix + "DataDisks.", this.DataDisks);
}
}
}