/*
* 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.Vpc.V20170312.Models
{
using Newtonsoft.Json;
using System.Collections.Generic;
using TencentCloud.Common;
public class CreateVpnGatewayRequest : AbstractModel
{
///
/// VPC实例ID。可通过DescribeVpcs接口返回值中的VpcId获取。
///
[JsonProperty("VpcId")]
public string VpcId{ get; set; }
///
/// VPN网关名称,最大长度不能超过60个字节。
///
[JsonProperty("VpnGatewayName")]
public string VpnGatewayName{ get; set; }
///
/// 公网带宽设置。可选带宽规格:5, 10, 20, 50, 100;单位:Mbps
///
[JsonProperty("InternetMaxBandwidthOut")]
public ulong? InternetMaxBandwidthOut{ get; set; }
///
/// VPN网关计费模式,PREPAID:表示预付费,即包年包月,POSTPAID_BY_HOUR:表示后付费,即按量计费。默认:POSTPAID_BY_HOUR,如果指定预付费模式,参数InstanceChargePrepaid必填。
///
[JsonProperty("InstanceChargeType")]
public string InstanceChargeType{ get; set; }
///
/// 预付费模式,即包年包月相关参数设置。通过该参数可以指定包年包月实例的购买时长、是否设置自动续费等属性。若指定实例的付费模式为预付费则该参数必传。
///
[JsonProperty("InstanceChargePrepaid")]
public InstanceChargePrepaid InstanceChargePrepaid{ get; set; }
///
/// 可用区,如:ap-guangzhou-2。
///
[JsonProperty("Zone")]
public string Zone{ get; set; }
///
/// VPN网关类型。值“CCN”云联网类型VPN网关
///
[JsonProperty("Type")]
public string Type{ get; set; }
///
/// For internal usage only. DO NOT USE IT.
///
internal override void ToMap(Dictionary map, string prefix)
{
this.SetParamSimple(map, prefix + "VpcId", this.VpcId);
this.SetParamSimple(map, prefix + "VpnGatewayName", this.VpnGatewayName);
this.SetParamSimple(map, prefix + "InternetMaxBandwidthOut", this.InternetMaxBandwidthOut);
this.SetParamSimple(map, prefix + "InstanceChargeType", this.InstanceChargeType);
this.SetParamObj(map, prefix + "InstanceChargePrepaid.", this.InstanceChargePrepaid);
this.SetParamSimple(map, prefix + "Zone", this.Zone);
this.SetParamSimple(map, prefix + "Type", this.Type);
}
}
}