/*
* 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.Cdb.V20170320.Models
{
using Newtonsoft.Json;
using System.Collections.Generic;
using TencentCloud.Common;
public class UpgradeDBInstanceRequest : AbstractModel
{
///
/// 实例 ID,格式如:cdb-c1nl9rpv 或者 cdbro-c1nl9rpv。与云数据库控制台页面中显示的实例 ID 相同,可使用 [查询实例列表](https://cloud.tencent.com/document/api/236/15872) 接口获取,其值为输出参数中字段 InstanceId 的值。
///
[JsonProperty("InstanceId")]
public string InstanceId{ get; set; }
///
/// 升级后的内存大小,单位:MB,为保证传入 Memory 值有效,请使用 [获取云数据库可售卖规格](https://cloud.tencent.com/document/product/236/17229) 接口获取可升级的内存规格。
///
[JsonProperty("Memory")]
public long? Memory{ get; set; }
///
/// 升级后的硬盘大小,单位:GB,为保证传入 Volume 值有效,请使用 [获取云数据库可售卖规格](https://cloud.tencent.com/document/product/236/17229) 接口获取可升级的硬盘范围。
///
[JsonProperty("Volume")]
public long? Volume{ get; set; }
///
/// 数据复制方式,支持值包括:0 - 异步复制,1 - 半同步复制,2 - 强同步复制,升级主实例时可指定该参数,升级只读实例或者灾备实例时指定该参数无意义。
///
[JsonProperty("ProtectMode")]
public long? ProtectMode{ get; set; }
///
/// 部署模式,默认为 0,支持值包括:0 - 单可用区部署,1 - 多可用区部署,升级主实例时可指定该参数,升级只读实例或者灾备实例时指定该参数无意义。
///
[JsonProperty("DeployMode")]
public long? DeployMode{ get; set; }
///
/// 备库1的可用区信息,默认和实例的 Zone 参数一致,升级主实例为多可用区部署时可指定该参数,升级只读实例或者灾备实例时指定该参数无意义。可通过 [获取云数据库可售卖规格](https://cloud.tencent.com/document/product/236/17229) 接口查询支持的可用区。
///
[JsonProperty("SlaveZone")]
public string SlaveZone{ get; set; }
///
/// 主实例数据库引擎版本,支持值包括:5.5、5.6 和 5.7。
///
[JsonProperty("EngineVersion")]
public string EngineVersion{ get; set; }
///
/// 切换访问新实例的方式,默认为 0。支持值包括:0 - 立刻切换,1 - 时间窗切换;当该值为 1 时,升级中过程中,切换访问新实例的流程将会在时间窗内进行,或者用户主动调用接口 [切换访问新实例](https://cloud.tencent.com/document/product/236/15864) 触发该流程。
///
[JsonProperty("WaitSwitch")]
public long? WaitSwitch{ get; set; }
///
/// 备库 2 的可用区信息,默认为空,升级主实例时可指定该参数,升级只读实例或者灾备实例时指定该参数无意义。
///
[JsonProperty("BackupZone")]
public string BackupZone{ get; set; }
///
/// 实例类型,默认为 master,支持值包括:master - 表示主实例,dr - 表示灾备实例,ro - 表示只读实例。
///
[JsonProperty("InstanceRole")]
public string InstanceRole{ 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 + "Memory", this.Memory);
this.SetParamSimple(map, prefix + "Volume", this.Volume);
this.SetParamSimple(map, prefix + "ProtectMode", this.ProtectMode);
this.SetParamSimple(map, prefix + "DeployMode", this.DeployMode);
this.SetParamSimple(map, prefix + "SlaveZone", this.SlaveZone);
this.SetParamSimple(map, prefix + "EngineVersion", this.EngineVersion);
this.SetParamSimple(map, prefix + "WaitSwitch", this.WaitSwitch);
this.SetParamSimple(map, prefix + "BackupZone", this.BackupZone);
this.SetParamSimple(map, prefix + "InstanceRole", this.InstanceRole);
}
}
}