# -*- coding: utf8 -*-
# Copyright (c) 2017-2021 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.

import warnings

from tencentcloud.common.abstract_model import AbstractModel


class AcceptAttachCcnInstancesRequest(AbstractModel):
    """AcceptAttachCcnInstances请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnId: CCN实例ID。形如：ccn-f49l6u0z。
        :type CcnId: str
        :param _Instances: 接受关联实例列表。
        :type Instances: list of CcnInstance
        """
        self._CcnId = None
        self._Instances = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def Instances(self):
        return self._Instances

    @Instances.setter
    def Instances(self, Instances):
        self._Instances = Instances


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        if params.get("Instances") is not None:
            self._Instances = []
            for item in params.get("Instances"):
                obj = CcnInstance()
                obj._deserialize(item)
                self._Instances.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AcceptAttachCcnInstancesResponse(AbstractModel):
    """AcceptAttachCcnInstances返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class AcceptVpcPeeringConnectionRequest(AbstractModel):
    """AcceptVpcPeeringConnection请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PeeringConnectionId: 对等连接唯一ID。
        :type PeeringConnectionId: str
        """
        self._PeeringConnectionId = None

    @property
    def PeeringConnectionId(self):
        return self._PeeringConnectionId

    @PeeringConnectionId.setter
    def PeeringConnectionId(self, PeeringConnectionId):
        self._PeeringConnectionId = PeeringConnectionId


    def _deserialize(self, params):
        self._PeeringConnectionId = params.get("PeeringConnectionId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AcceptVpcPeeringConnectionResponse(AbstractModel):
    """AcceptVpcPeeringConnection返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class AccessPolicy(AbstractModel):
    """策略信息

    """

    def __init__(self):
        r"""
        :param _TargetCidr: 目的CIDR
        :type TargetCidr: str
        :param _VpnGatewayIdSslAccessPolicyId: 策略ID
        :type VpnGatewayIdSslAccessPolicyId: str
        :param _ForAllClient: 是否对所有用户都生效。1 生效 0不生效
        :type ForAllClient: int
        :param _UserGroupIds: 用户组ID
        :type UserGroupIds: list of str
        :param _UpdateTime: 更新时间
        :type UpdateTime: str
        :param _Remark: Remark
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        """
        self._TargetCidr = None
        self._VpnGatewayIdSslAccessPolicyId = None
        self._ForAllClient = None
        self._UserGroupIds = None
        self._UpdateTime = None
        self._Remark = None

    @property
    def TargetCidr(self):
        return self._TargetCidr

    @TargetCidr.setter
    def TargetCidr(self, TargetCidr):
        self._TargetCidr = TargetCidr

    @property
    def VpnGatewayIdSslAccessPolicyId(self):
        return self._VpnGatewayIdSslAccessPolicyId

    @VpnGatewayIdSslAccessPolicyId.setter
    def VpnGatewayIdSslAccessPolicyId(self, VpnGatewayIdSslAccessPolicyId):
        self._VpnGatewayIdSslAccessPolicyId = VpnGatewayIdSslAccessPolicyId

    @property
    def ForAllClient(self):
        return self._ForAllClient

    @ForAllClient.setter
    def ForAllClient(self, ForAllClient):
        self._ForAllClient = ForAllClient

    @property
    def UserGroupIds(self):
        return self._UserGroupIds

    @UserGroupIds.setter
    def UserGroupIds(self, UserGroupIds):
        self._UserGroupIds = UserGroupIds

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark


    def _deserialize(self, params):
        self._TargetCidr = params.get("TargetCidr")
        self._VpnGatewayIdSslAccessPolicyId = params.get("VpnGatewayIdSslAccessPolicyId")
        self._ForAllClient = params.get("ForAllClient")
        self._UserGroupIds = params.get("UserGroupIds")
        self._UpdateTime = params.get("UpdateTime")
        self._Remark = params.get("Remark")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AccountAttribute(AbstractModel):
    """账户属性对象

    """

    def __init__(self):
        r"""
        :param _AttributeName: 属性名
        :type AttributeName: str
        :param _AttributeValues: 属性值
        :type AttributeValues: list of str
        """
        self._AttributeName = None
        self._AttributeValues = None

    @property
    def AttributeName(self):
        return self._AttributeName

    @AttributeName.setter
    def AttributeName(self, AttributeName):
        self._AttributeName = AttributeName

    @property
    def AttributeValues(self):
        return self._AttributeValues

    @AttributeValues.setter
    def AttributeValues(self, AttributeValues):
        self._AttributeValues = AttributeValues


    def _deserialize(self, params):
        self._AttributeName = params.get("AttributeName")
        self._AttributeValues = params.get("AttributeValues")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddBandwidthPackageResourcesRequest(AbstractModel):
    """AddBandwidthPackageResources请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ResourceIds: 资源唯一ID，当前支持EIP资源和LB资源，形如'eip-xxxx', 'lb-xxxx'
        :type ResourceIds: list of str
        :param _BandwidthPackageId: 带宽包唯一标识ID，形如'bwp-xxxx'
        :type BandwidthPackageId: str
        :param _NetworkType: 带宽包类型，当前支持'BGP'、'HIGH_QUALITY_BGP'、'ANYCAST'、'SINGLEISP_CUCC'、'SINGLEISP_CMCC'、'SINGLEISP_CTCC'等类型。
        :type NetworkType: str
        :param _ResourceType: 资源类型，包括'Address', 'LoadBalance'
        :type ResourceType: str
        :param _Protocol: 带宽包协议类型。当前支持'ipv4'和'ipv6'协议类型。
        :type Protocol: str
        """
        self._ResourceIds = None
        self._BandwidthPackageId = None
        self._NetworkType = None
        self._ResourceType = None
        self._Protocol = None

    @property
    def ResourceIds(self):
        return self._ResourceIds

    @ResourceIds.setter
    def ResourceIds(self, ResourceIds):
        self._ResourceIds = ResourceIds

    @property
    def BandwidthPackageId(self):
        return self._BandwidthPackageId

    @BandwidthPackageId.setter
    def BandwidthPackageId(self, BandwidthPackageId):
        self._BandwidthPackageId = BandwidthPackageId

    @property
    def NetworkType(self):
        return self._NetworkType

    @NetworkType.setter
    def NetworkType(self, NetworkType):
        self._NetworkType = NetworkType

    @property
    def ResourceType(self):
        return self._ResourceType

    @ResourceType.setter
    def ResourceType(self, ResourceType):
        self._ResourceType = ResourceType

    @property
    def Protocol(self):
        return self._Protocol

    @Protocol.setter
    def Protocol(self, Protocol):
        self._Protocol = Protocol


    def _deserialize(self, params):
        self._ResourceIds = params.get("ResourceIds")
        self._BandwidthPackageId = params.get("BandwidthPackageId")
        self._NetworkType = params.get("NetworkType")
        self._ResourceType = params.get("ResourceType")
        self._Protocol = params.get("Protocol")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddBandwidthPackageResourcesResponse(AbstractModel):
    """AddBandwidthPackageResources返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class AddIp6RulesRequest(AbstractModel):
    """AddIp6Rules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip6TranslatorId: IPV6转换实例唯一ID，形如ip6-xxxxxxxx
        :type Ip6TranslatorId: str
        :param _Ip6RuleInfos: IPV6转换规则信息
        :type Ip6RuleInfos: list of Ip6RuleInfo
        :param _Ip6RuleName: IPV6转换规则名称
        :type Ip6RuleName: str
        """
        self._Ip6TranslatorId = None
        self._Ip6RuleInfos = None
        self._Ip6RuleName = None

    @property
    def Ip6TranslatorId(self):
        return self._Ip6TranslatorId

    @Ip6TranslatorId.setter
    def Ip6TranslatorId(self, Ip6TranslatorId):
        self._Ip6TranslatorId = Ip6TranslatorId

    @property
    def Ip6RuleInfos(self):
        return self._Ip6RuleInfos

    @Ip6RuleInfos.setter
    def Ip6RuleInfos(self, Ip6RuleInfos):
        self._Ip6RuleInfos = Ip6RuleInfos

    @property
    def Ip6RuleName(self):
        return self._Ip6RuleName

    @Ip6RuleName.setter
    def Ip6RuleName(self, Ip6RuleName):
        self._Ip6RuleName = Ip6RuleName


    def _deserialize(self, params):
        self._Ip6TranslatorId = params.get("Ip6TranslatorId")
        if params.get("Ip6RuleInfos") is not None:
            self._Ip6RuleInfos = []
            for item in params.get("Ip6RuleInfos"):
                obj = Ip6RuleInfo()
                obj._deserialize(item)
                self._Ip6RuleInfos.append(obj)
        self._Ip6RuleName = params.get("Ip6RuleName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddIp6RulesResponse(AbstractModel):
    """AddIp6Rules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip6RuleSet: IPV6转换规则唯一ID数组，形如rule6-xxxxxxxx
        :type Ip6RuleSet: list of str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Ip6RuleSet = None
        self._RequestId = None

    @property
    def Ip6RuleSet(self):
        return self._Ip6RuleSet

    @Ip6RuleSet.setter
    def Ip6RuleSet(self, Ip6RuleSet):
        self._Ip6RuleSet = Ip6RuleSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Ip6RuleSet = params.get("Ip6RuleSet")
        self._RequestId = params.get("RequestId")


class AddTemplateMemberRequest(AbstractModel):
    """AddTemplateMember请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TemplateId: 参数模板实例ID，支持IP地址、协议端口、IP地址组、协议端口组四种参数模板的实例ID。
        :type TemplateId: str
        :param _TemplateMember: 需要添加的参数模板成员信息，支持IP地址、协议端口、IP地址组、协议端口组四种类型，类型需要与TemplateId参数类型一致。
        :type TemplateMember: list of MemberInfo
        """
        self._TemplateId = None
        self._TemplateMember = None

    @property
    def TemplateId(self):
        return self._TemplateId

    @TemplateId.setter
    def TemplateId(self, TemplateId):
        self._TemplateId = TemplateId

    @property
    def TemplateMember(self):
        return self._TemplateMember

    @TemplateMember.setter
    def TemplateMember(self, TemplateMember):
        self._TemplateMember = TemplateMember


    def _deserialize(self, params):
        self._TemplateId = params.get("TemplateId")
        if params.get("TemplateMember") is not None:
            self._TemplateMember = []
            for item in params.get("TemplateMember"):
                obj = MemberInfo()
                obj._deserialize(item)
                self._TemplateMember.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddTemplateMemberResponse(AbstractModel):
    """AddTemplateMember返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class Address(AbstractModel):
    """描述 EIP 信息

    """

    def __init__(self):
        r"""
        :param _AddressId: `EIP`的`ID`，是`EIP`的唯一标识。
        :type AddressId: str
        :param _AddressName: `EIP`名称。
        :type AddressName: str
        :param _AddressStatus: `EIP`状态，包含'CREATING'(创建中),'BINDING'(绑定中),'BIND'(已绑定),'UNBINDING'(解绑中),'UNBIND'(已解绑),'OFFLINING'(释放中),'BIND_ENI'(绑定悬空弹性网卡)
        :type AddressStatus: str
        :param _AddressIp: 外网IP地址
        :type AddressIp: str
        :param _InstanceId: 绑定的资源实例`ID`。可能是一个`CVM`，`NAT`。
        :type InstanceId: str
        :param _CreatedTime: 创建时间。按照`ISO8601`标准表示，并且使用`UTC`时间。格式为：`YYYY-MM-DDThh:mm:ssZ`。
        :type CreatedTime: str
        :param _NetworkInterfaceId: 绑定的弹性网卡ID
        :type NetworkInterfaceId: str
        :param _PrivateAddressIp: 绑定的资源内网ip
        :type PrivateAddressIp: str
        :param _IsArrears: 资源隔离状态。true表示eip处于隔离状态，false表示资源处于未隔离状态
        :type IsArrears: bool
        :param _IsBlocked: 资源封堵状态。true表示eip处于封堵状态，false表示eip处于未封堵状态
        :type IsBlocked: bool
        :param _IsEipDirectConnection: eip是否支持直通模式。true表示eip支持直通模式，false表示资源不支持直通模式
        :type IsEipDirectConnection: bool
        :param _AddressType: EIP 资源类型，包括CalcIP、WanIP、EIP和AnycastEIP、高防EIP。其中：`CalcIP` 表示设备 IP，`WanIP` 表示普通公网 IP，`EIP` 表示弹性公网 IP，`AnycastEIP` 表示加速 EIP，`AntiDDoSEIP`表示高防EIP。
        :type AddressType: str
        :param _CascadeRelease: eip是否在解绑后自动释放。true表示eip将会在解绑后自动释放，false表示eip在解绑后不会自动释放
        :type CascadeRelease: bool
        :param _EipAlgType: EIP ALG开启的协议类型。
        :type EipAlgType: :class:`tencentcloud.vpc.v20170312.models.AlgType`
        :param _InternetServiceProvider: 弹性公网IP的运营商信息，当前可能返回值包括"CMCC","CTCC","CUCC","BGP"
        :type InternetServiceProvider: str
        :param _LocalBgp: 是否本地带宽EIP
        :type LocalBgp: bool
        :param _Bandwidth: 弹性公网IP的带宽值。注意，传统账户类型账户的弹性公网IP没有带宽属性，值为空。
注意：此字段可能返回 null，表示取不到有效值。
        :type Bandwidth: int
        :param _InternetChargeType: 弹性公网IP的网络计费模式。注意，传统账户类型账户的弹性公网IP没有网络计费模式属性，值为空。
注意：此字段可能返回 null，表示取不到有效值。
包括：
<li><strong>BANDWIDTH_PREPAID_BY_MONTH</strong></li>
<p style="padding-left: 30px;">表示包月带宽预付费。</p>
<li><strong>TRAFFIC_POSTPAID_BY_HOUR</strong></li>
<p style="padding-left: 30px;">表示按小时流量后付费。</p>
<li><strong>BANDWIDTH_POSTPAID_BY_HOUR</strong></li>
<p style="padding-left: 30px;">表示按小时带宽后付费。</p>
<li><strong>BANDWIDTH_PACKAGE</strong></li>
<p style="padding-left: 30px;">表示共享带宽包。</p>
注意：此字段可能返回 null，表示取不到有效值。
        :type InternetChargeType: str
        :param _TagSet: 弹性公网IP关联的标签列表。
注意：此字段可能返回 null，表示取不到有效值。
        :type TagSet: list of Tag
        :param _DeadlineDate: 到期时间。
注意：此字段可能返回 null，表示取不到有效值。
        :type DeadlineDate: str
        :param _InstanceType: EIP绑定的实例类型。
注意：此字段可能返回 null，表示取不到有效值。
        :type InstanceType: str
        :param _Egress: 静态单线IP网络出口
注意：此字段可能返回 null，表示取不到有效值。
        :type Egress: str
        :param _AntiDDoSPackageId: 高防包ID,当EIP类型为高防EIP时，返回EIP绑定的高防包ID.
        :type AntiDDoSPackageId: str
        :param _RenewFlag: 当前EIP是否自动续费，只有按月带宽预付费的EIP才会显示该字段，具体值示例如下:
<li>NOTIFY_AND_MANUAL_RENEW:正常续费</li><li>NOTIFY_AND_AUTO_RENEW:自动续费</li><li>DISABLE_NOTIFY_AND_MANUAL_RENEW:到期不续费 </li>

        :type RenewFlag: str
        """
        self._AddressId = None
        self._AddressName = None
        self._AddressStatus = None
        self._AddressIp = None
        self._InstanceId = None
        self._CreatedTime = None
        self._NetworkInterfaceId = None
        self._PrivateAddressIp = None
        self._IsArrears = None
        self._IsBlocked = None
        self._IsEipDirectConnection = None
        self._AddressType = None
        self._CascadeRelease = None
        self._EipAlgType = None
        self._InternetServiceProvider = None
        self._LocalBgp = None
        self._Bandwidth = None
        self._InternetChargeType = None
        self._TagSet = None
        self._DeadlineDate = None
        self._InstanceType = None
        self._Egress = None
        self._AntiDDoSPackageId = None
        self._RenewFlag = None

    @property
    def AddressId(self):
        return self._AddressId

    @AddressId.setter
    def AddressId(self, AddressId):
        self._AddressId = AddressId

    @property
    def AddressName(self):
        return self._AddressName

    @AddressName.setter
    def AddressName(self, AddressName):
        self._AddressName = AddressName

    @property
    def AddressStatus(self):
        return self._AddressStatus

    @AddressStatus.setter
    def AddressStatus(self, AddressStatus):
        self._AddressStatus = AddressStatus

    @property
    def AddressIp(self):
        return self._AddressIp

    @AddressIp.setter
    def AddressIp(self, AddressIp):
        self._AddressIp = AddressIp

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId

    @property
    def PrivateAddressIp(self):
        return self._PrivateAddressIp

    @PrivateAddressIp.setter
    def PrivateAddressIp(self, PrivateAddressIp):
        self._PrivateAddressIp = PrivateAddressIp

    @property
    def IsArrears(self):
        return self._IsArrears

    @IsArrears.setter
    def IsArrears(self, IsArrears):
        self._IsArrears = IsArrears

    @property
    def IsBlocked(self):
        return self._IsBlocked

    @IsBlocked.setter
    def IsBlocked(self, IsBlocked):
        self._IsBlocked = IsBlocked

    @property
    def IsEipDirectConnection(self):
        return self._IsEipDirectConnection

    @IsEipDirectConnection.setter
    def IsEipDirectConnection(self, IsEipDirectConnection):
        self._IsEipDirectConnection = IsEipDirectConnection

    @property
    def AddressType(self):
        return self._AddressType

    @AddressType.setter
    def AddressType(self, AddressType):
        self._AddressType = AddressType

    @property
    def CascadeRelease(self):
        return self._CascadeRelease

    @CascadeRelease.setter
    def CascadeRelease(self, CascadeRelease):
        self._CascadeRelease = CascadeRelease

    @property
    def EipAlgType(self):
        return self._EipAlgType

    @EipAlgType.setter
    def EipAlgType(self, EipAlgType):
        self._EipAlgType = EipAlgType

    @property
    def InternetServiceProvider(self):
        return self._InternetServiceProvider

    @InternetServiceProvider.setter
    def InternetServiceProvider(self, InternetServiceProvider):
        self._InternetServiceProvider = InternetServiceProvider

    @property
    def LocalBgp(self):
        return self._LocalBgp

    @LocalBgp.setter
    def LocalBgp(self, LocalBgp):
        self._LocalBgp = LocalBgp

    @property
    def Bandwidth(self):
        return self._Bandwidth

    @Bandwidth.setter
    def Bandwidth(self, Bandwidth):
        self._Bandwidth = Bandwidth

    @property
    def InternetChargeType(self):
        return self._InternetChargeType

    @InternetChargeType.setter
    def InternetChargeType(self, InternetChargeType):
        self._InternetChargeType = InternetChargeType

    @property
    def TagSet(self):
        return self._TagSet

    @TagSet.setter
    def TagSet(self, TagSet):
        self._TagSet = TagSet

    @property
    def DeadlineDate(self):
        return self._DeadlineDate

    @DeadlineDate.setter
    def DeadlineDate(self, DeadlineDate):
        self._DeadlineDate = DeadlineDate

    @property
    def InstanceType(self):
        return self._InstanceType

    @InstanceType.setter
    def InstanceType(self, InstanceType):
        self._InstanceType = InstanceType

    @property
    def Egress(self):
        return self._Egress

    @Egress.setter
    def Egress(self, Egress):
        self._Egress = Egress

    @property
    def AntiDDoSPackageId(self):
        return self._AntiDDoSPackageId

    @AntiDDoSPackageId.setter
    def AntiDDoSPackageId(self, AntiDDoSPackageId):
        self._AntiDDoSPackageId = AntiDDoSPackageId

    @property
    def RenewFlag(self):
        return self._RenewFlag

    @RenewFlag.setter
    def RenewFlag(self, RenewFlag):
        self._RenewFlag = RenewFlag


    def _deserialize(self, params):
        self._AddressId = params.get("AddressId")
        self._AddressName = params.get("AddressName")
        self._AddressStatus = params.get("AddressStatus")
        self._AddressIp = params.get("AddressIp")
        self._InstanceId = params.get("InstanceId")
        self._CreatedTime = params.get("CreatedTime")
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        self._PrivateAddressIp = params.get("PrivateAddressIp")
        self._IsArrears = params.get("IsArrears")
        self._IsBlocked = params.get("IsBlocked")
        self._IsEipDirectConnection = params.get("IsEipDirectConnection")
        self._AddressType = params.get("AddressType")
        self._CascadeRelease = params.get("CascadeRelease")
        if params.get("EipAlgType") is not None:
            self._EipAlgType = AlgType()
            self._EipAlgType._deserialize(params.get("EipAlgType"))
        self._InternetServiceProvider = params.get("InternetServiceProvider")
        self._LocalBgp = params.get("LocalBgp")
        self._Bandwidth = params.get("Bandwidth")
        self._InternetChargeType = params.get("InternetChargeType")
        if params.get("TagSet") is not None:
            self._TagSet = []
            for item in params.get("TagSet"):
                obj = Tag()
                obj._deserialize(item)
                self._TagSet.append(obj)
        self._DeadlineDate = params.get("DeadlineDate")
        self._InstanceType = params.get("InstanceType")
        self._Egress = params.get("Egress")
        self._AntiDDoSPackageId = params.get("AntiDDoSPackageId")
        self._RenewFlag = params.get("RenewFlag")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddressChargePrepaid(AbstractModel):
    """用于描述弹性公网IP的费用对象

    """

    def __init__(self):
        r"""
        :param _Period: 购买实例的时长，单位是月。可支持时长：1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, 36
        :type Period: int
        :param _AutoRenewFlag: 自动续费标志。0表示手动续费，1表示自动续费，2表示到期不续费。默认缺省为0即手动续费
        :type AutoRenewFlag: int
        """
        self._Period = None
        self._AutoRenewFlag = None

    @property
    def Period(self):
        return self._Period

    @Period.setter
    def Period(self, Period):
        self._Period = Period

    @property
    def AutoRenewFlag(self):
        return self._AutoRenewFlag

    @AutoRenewFlag.setter
    def AutoRenewFlag(self, AutoRenewFlag):
        self._AutoRenewFlag = AutoRenewFlag


    def _deserialize(self, params):
        self._Period = params.get("Period")
        self._AutoRenewFlag = params.get("AutoRenewFlag")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddressInfo(AbstractModel):
    """IP地址模板信息

    """

    def __init__(self):
        r"""
        :param _Address: ip地址。
        :type Address: str
        :param _Description: 备注。
注意：此字段可能返回 null，表示取不到有效值。
        :type Description: str
        """
        self._Address = None
        self._Description = None

    @property
    def Address(self):
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description


    def _deserialize(self, params):
        self._Address = params.get("Address")
        self._Description = params.get("Description")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddressTemplate(AbstractModel):
    """IP地址模板

    """

    def __init__(self):
        r"""
        :param _AddressTemplateName: IP地址模板名称。
        :type AddressTemplateName: str
        :param _AddressTemplateId: IP地址模板实例唯一ID。
        :type AddressTemplateId: str
        :param _AddressSet: IP地址信息。
        :type AddressSet: list of str
        :param _CreatedTime: 创建时间。
        :type CreatedTime: str
        :param _AddressExtraSet: 带备注的IP地址信息。
        :type AddressExtraSet: list of AddressInfo
        """
        self._AddressTemplateName = None
        self._AddressTemplateId = None
        self._AddressSet = None
        self._CreatedTime = None
        self._AddressExtraSet = None

    @property
    def AddressTemplateName(self):
        return self._AddressTemplateName

    @AddressTemplateName.setter
    def AddressTemplateName(self, AddressTemplateName):
        self._AddressTemplateName = AddressTemplateName

    @property
    def AddressTemplateId(self):
        return self._AddressTemplateId

    @AddressTemplateId.setter
    def AddressTemplateId(self, AddressTemplateId):
        self._AddressTemplateId = AddressTemplateId

    @property
    def AddressSet(self):
        return self._AddressSet

    @AddressSet.setter
    def AddressSet(self, AddressSet):
        self._AddressSet = AddressSet

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def AddressExtraSet(self):
        return self._AddressExtraSet

    @AddressExtraSet.setter
    def AddressExtraSet(self, AddressExtraSet):
        self._AddressExtraSet = AddressExtraSet


    def _deserialize(self, params):
        self._AddressTemplateName = params.get("AddressTemplateName")
        self._AddressTemplateId = params.get("AddressTemplateId")
        self._AddressSet = params.get("AddressSet")
        self._CreatedTime = params.get("CreatedTime")
        if params.get("AddressExtraSet") is not None:
            self._AddressExtraSet = []
            for item in params.get("AddressExtraSet"):
                obj = AddressInfo()
                obj._deserialize(item)
                self._AddressExtraSet.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddressTemplateGroup(AbstractModel):
    """IP地址模板集合

    """

    def __init__(self):
        r"""
        :param _AddressTemplateGroupName: IP地址模板集合名称。
        :type AddressTemplateGroupName: str
        :param _AddressTemplateGroupId: IP地址模板集合实例ID，例如：ipmg-dih8xdbq。
        :type AddressTemplateGroupId: str
        :param _AddressTemplateIdSet: IP地址模板ID。
        :type AddressTemplateIdSet: list of str
        :param _CreatedTime: 创建时间。
        :type CreatedTime: str
        :param _AddressTemplateSet: IP地址模板实例。
        :type AddressTemplateSet: list of AddressTemplateItem
        """
        self._AddressTemplateGroupName = None
        self._AddressTemplateGroupId = None
        self._AddressTemplateIdSet = None
        self._CreatedTime = None
        self._AddressTemplateSet = None

    @property
    def AddressTemplateGroupName(self):
        return self._AddressTemplateGroupName

    @AddressTemplateGroupName.setter
    def AddressTemplateGroupName(self, AddressTemplateGroupName):
        self._AddressTemplateGroupName = AddressTemplateGroupName

    @property
    def AddressTemplateGroupId(self):
        return self._AddressTemplateGroupId

    @AddressTemplateGroupId.setter
    def AddressTemplateGroupId(self, AddressTemplateGroupId):
        self._AddressTemplateGroupId = AddressTemplateGroupId

    @property
    def AddressTemplateIdSet(self):
        return self._AddressTemplateIdSet

    @AddressTemplateIdSet.setter
    def AddressTemplateIdSet(self, AddressTemplateIdSet):
        self._AddressTemplateIdSet = AddressTemplateIdSet

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def AddressTemplateSet(self):
        return self._AddressTemplateSet

    @AddressTemplateSet.setter
    def AddressTemplateSet(self, AddressTemplateSet):
        self._AddressTemplateSet = AddressTemplateSet


    def _deserialize(self, params):
        self._AddressTemplateGroupName = params.get("AddressTemplateGroupName")
        self._AddressTemplateGroupId = params.get("AddressTemplateGroupId")
        self._AddressTemplateIdSet = params.get("AddressTemplateIdSet")
        self._CreatedTime = params.get("CreatedTime")
        if params.get("AddressTemplateSet") is not None:
            self._AddressTemplateSet = []
            for item in params.get("AddressTemplateSet"):
                obj = AddressTemplateItem()
                obj._deserialize(item)
                self._AddressTemplateSet.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddressTemplateItem(AbstractModel):
    """地址信息

    """

    def __init__(self):
        r"""
        :param _AddressTemplateId: ipm-xxxxxxxx
        :type AddressTemplateId: str
        :param _AddressTemplateName: IP模板名称
        :type AddressTemplateName: str
        :param _From: 废弃字段
        :type From: str
        :param _To: 废弃字段
        :type To: str
        """
        self._AddressTemplateId = None
        self._AddressTemplateName = None
        self._From = None
        self._To = None

    @property
    def AddressTemplateId(self):
        return self._AddressTemplateId

    @AddressTemplateId.setter
    def AddressTemplateId(self, AddressTemplateId):
        self._AddressTemplateId = AddressTemplateId

    @property
    def AddressTemplateName(self):
        return self._AddressTemplateName

    @AddressTemplateName.setter
    def AddressTemplateName(self, AddressTemplateName):
        self._AddressTemplateName = AddressTemplateName

    @property
    def From(self):
        return self._From

    @From.setter
    def From(self, From):
        self._From = From

    @property
    def To(self):
        return self._To

    @To.setter
    def To(self, To):
        self._To = To


    def _deserialize(self, params):
        self._AddressTemplateId = params.get("AddressTemplateId")
        self._AddressTemplateName = params.get("AddressTemplateName")
        self._From = params.get("From")
        self._To = params.get("To")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddressTemplateSpecification(AbstractModel):
    """IP地址模板

    """

    def __init__(self):
        r"""
        :param _AddressId: IP地址ID，例如：ipm-2uw6ujo6。
        :type AddressId: str
        :param _AddressGroupId: IP地址组ID，例如：ipmg-2uw6ujo6。
        :type AddressGroupId: str
        """
        self._AddressId = None
        self._AddressGroupId = None

    @property
    def AddressId(self):
        return self._AddressId

    @AddressId.setter
    def AddressId(self, AddressId):
        self._AddressId = AddressId

    @property
    def AddressGroupId(self):
        return self._AddressGroupId

    @AddressGroupId.setter
    def AddressGroupId(self, AddressGroupId):
        self._AddressGroupId = AddressGroupId


    def _deserialize(self, params):
        self._AddressId = params.get("AddressId")
        self._AddressGroupId = params.get("AddressGroupId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AdjustPublicAddressRequest(AbstractModel):
    """AdjustPublicAddress请求参数结构体

    """

    def __init__(self):
        r"""
        :param _InstanceId: 标识CVM实例的唯一 ID。CVM 唯一 ID 形如：`ins-11112222`。
        :type InstanceId: str
        :param _AddressId: 标识EIP实例的唯一 ID。EIP 唯一 ID 形如：`eip-11112222`。
        :type AddressId: str
        """
        self._InstanceId = None
        self._AddressId = None

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def AddressId(self):
        return self._AddressId

    @AddressId.setter
    def AddressId(self, AddressId):
        self._AddressId = AddressId


    def _deserialize(self, params):
        self._InstanceId = params.get("InstanceId")
        self._AddressId = params.get("AddressId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AdjustPublicAddressResponse(AbstractModel):
    """AdjustPublicAddress返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步任务TaskId。可以使用[DescribeTaskResult](https://cloud.tencent.com/document/api/215/36271)接口查询任务状态。
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class AlgType(AbstractModel):
    """ALG协议类型

    """

    def __init__(self):
        r"""
        :param _Ftp: Ftp协议Alg功能是否开启
        :type Ftp: bool
        :param _Sip: Sip协议Alg功能是否开启
        :type Sip: bool
        """
        self._Ftp = None
        self._Sip = None

    @property
    def Ftp(self):
        return self._Ftp

    @Ftp.setter
    def Ftp(self, Ftp):
        self._Ftp = Ftp

    @property
    def Sip(self):
        return self._Sip

    @Sip.setter
    def Sip(self, Sip):
        self._Sip = Sip


    def _deserialize(self, params):
        self._Ftp = params.get("Ftp")
        self._Sip = params.get("Sip")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AllocateAddressesRequest(AbstractModel):
    """AllocateAddresses请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressCount: EIP数量。默认值：1。
        :type AddressCount: int
        :param _InternetServiceProvider: EIP线路类型。默认值：BGP。
<ul style="margin:0"><li>已开通静态单线IP白名单的用户，可选值：<ul><li>CMCC：中国移动</li>
<li>CTCC：中国电信</li>
<li>CUCC：中国联通</li></ul>注意：仅部分地域支持静态单线IP。</li></ul>
        :type InternetServiceProvider: str
        :param _InternetChargeType: EIP计费方式。
<ul style="margin:0"><li>已开通标准账户类型白名单的用户，可选值：<ul><li>BANDWIDTH_PACKAGE：[共享带宽包](https://cloud.tencent.com/document/product/684/15255)付费（需额外开通共享带宽包白名单）</li>
<li>BANDWIDTH_POSTPAID_BY_HOUR：带宽按小时后付费</li>
<li>BANDWIDTH_PREPAID_BY_MONTH：包月按带宽预付费</li>
<li>TRAFFIC_POSTPAID_BY_HOUR：流量按小时后付费</li></ul>默认值：TRAFFIC_POSTPAID_BY_HOUR。</li>
<li>未开通标准账户类型白名单的用户，EIP计费方式与其绑定的实例的计费方式一致，无需传递此参数。</li></ul>
        :type InternetChargeType: str
        :param _InternetMaxBandwidthOut: EIP出带宽上限，单位：Mbps。
<ul style="margin:0"><li>已开通标准账户类型白名单的用户，可选值范围取决于EIP计费方式：<ul><li>BANDWIDTH_PACKAGE：1 Mbps 至 2000 Mbps</li>
<li>BANDWIDTH_POSTPAID_BY_HOUR：1 Mbps 至 100 Mbps</li>
<li>BANDWIDTH_PREPAID_BY_MONTH：1 Mbps 至 200 Mbps</li>
<li>TRAFFIC_POSTPAID_BY_HOUR：1 Mbps 至 100 Mbps</li></ul>默认值：1 Mbps。</li>
<li>未开通标准账户类型白名单的用户，EIP出带宽上限取决于与其绑定的实例的公网出带宽上限，无需传递此参数。</li></ul>
        :type InternetMaxBandwidthOut: int
        :param _AddressChargePrepaid: 包月按带宽预付费EIP的计费参数。EIP为包月按带宽预付费时，该参数必传，其余场景不需传递
        :type AddressChargePrepaid: :class:`tencentcloud.vpc.v20170312.models.AddressChargePrepaid`
        :param _AddressType: EIP类型。默认值：EIP。
<ul style="margin:0"><li>已开通Anycast公网加速白名单的用户，可选值：<ul><li>AnycastEIP：加速IP，可参见 [Anycast 公网加速](https://cloud.tencent.com/document/product/644)</li></ul>注意：仅部分地域支持加速IP。</li></ul>
<ul style="margin:0"><li>已开通精品IP白名单的用户，可选值：<ul><li>HighQualityEIP：精品IP</li></ul>注意：仅部分地域支持精品IP。</li></ul>
<ul style="margin:0"><li>已开高防IP白名单的用户，可选值：<ul><li>AntiDDoSEIP：高防IP</li></ul>注意：仅部分地域支持高防IP。</li></ul>
        :type AddressType: str
        :param _AnycastZone: Anycast发布域。
<ul style="margin:0"><li>已开通Anycast公网加速白名单的用户，可选值：<ul><li>ANYCAST_ZONE_GLOBAL：全球发布域（需要额外开通Anycast全球加速白名单）</li><li>ANYCAST_ZONE_OVERSEAS：境外发布域</li><li><b>[已废弃]</b> ANYCAST_ZONE_A：发布域A（已更新为全球发布域）</li><li><b>[已废弃]</b> ANYCAST_ZONE_B：发布域B（已更新为全球发布域）</li></ul>默认值：ANYCAST_ZONE_OVERSEAS。</li></ul>
        :type AnycastZone: str
        :param _ApplicableForCLB: <b>[已废弃]</b> AnycastEIP不再区分是否负载均衡。原参数说明如下：
AnycastEIP是否用于绑定负载均衡。
<ul style="margin:0"><li>已开通Anycast公网加速白名单的用户，可选值：<ul><li>TRUE：AnycastEIP可绑定对象为负载均衡</li>
<li>FALSE：AnycastEIP可绑定对象为云服务器、NAT网关、高可用虚拟IP等</li></ul>默认值：FALSE。</li></ul>
        :type ApplicableForCLB: bool
        :param _Tags: 需要关联的标签列表。
        :type Tags: list of Tag
        :param _BandwidthPackageId: BGP带宽包唯一ID参数。设定该参数且InternetChargeType为BANDWIDTH_PACKAGE，则表示创建的EIP加入该BGP带宽包并采用带宽包计费
        :type BandwidthPackageId: str
        :param _AddressName: EIP名称，用于申请EIP时用户自定义该EIP的个性化名称，默认值：未命名
        :type AddressName: str
        :param _Egress: 静态单线IP网络出口，默认值：center_egress1
        :type Egress: str
        :param _AntiDDoSPackageId: 高防包ID， 申请高防IP时，该字段必传。
        :type AntiDDoSPackageId: str
        :param _ClientToken: 保证请求幂等性。从您的客户端生成一个参数值，确保不同请求间该参数值唯一。ClientToken只支持ASCII字符，且不能超过64个字符。
        :type ClientToken: str
        """
        self._AddressCount = None
        self._InternetServiceProvider = None
        self._InternetChargeType = None
        self._InternetMaxBandwidthOut = None
        self._AddressChargePrepaid = None
        self._AddressType = None
        self._AnycastZone = None
        self._ApplicableForCLB = None
        self._Tags = None
        self._BandwidthPackageId = None
        self._AddressName = None
        self._Egress = None
        self._AntiDDoSPackageId = None
        self._ClientToken = None

    @property
    def AddressCount(self):
        return self._AddressCount

    @AddressCount.setter
    def AddressCount(self, AddressCount):
        self._AddressCount = AddressCount

    @property
    def InternetServiceProvider(self):
        return self._InternetServiceProvider

    @InternetServiceProvider.setter
    def InternetServiceProvider(self, InternetServiceProvider):
        self._InternetServiceProvider = InternetServiceProvider

    @property
    def InternetChargeType(self):
        return self._InternetChargeType

    @InternetChargeType.setter
    def InternetChargeType(self, InternetChargeType):
        self._InternetChargeType = InternetChargeType

    @property
    def InternetMaxBandwidthOut(self):
        return self._InternetMaxBandwidthOut

    @InternetMaxBandwidthOut.setter
    def InternetMaxBandwidthOut(self, InternetMaxBandwidthOut):
        self._InternetMaxBandwidthOut = InternetMaxBandwidthOut

    @property
    def AddressChargePrepaid(self):
        return self._AddressChargePrepaid

    @AddressChargePrepaid.setter
    def AddressChargePrepaid(self, AddressChargePrepaid):
        self._AddressChargePrepaid = AddressChargePrepaid

    @property
    def AddressType(self):
        return self._AddressType

    @AddressType.setter
    def AddressType(self, AddressType):
        self._AddressType = AddressType

    @property
    def AnycastZone(self):
        return self._AnycastZone

    @AnycastZone.setter
    def AnycastZone(self, AnycastZone):
        self._AnycastZone = AnycastZone

    @property
    def ApplicableForCLB(self):
        return self._ApplicableForCLB

    @ApplicableForCLB.setter
    def ApplicableForCLB(self, ApplicableForCLB):
        self._ApplicableForCLB = ApplicableForCLB

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def BandwidthPackageId(self):
        return self._BandwidthPackageId

    @BandwidthPackageId.setter
    def BandwidthPackageId(self, BandwidthPackageId):
        self._BandwidthPackageId = BandwidthPackageId

    @property
    def AddressName(self):
        return self._AddressName

    @AddressName.setter
    def AddressName(self, AddressName):
        self._AddressName = AddressName

    @property
    def Egress(self):
        return self._Egress

    @Egress.setter
    def Egress(self, Egress):
        self._Egress = Egress

    @property
    def AntiDDoSPackageId(self):
        return self._AntiDDoSPackageId

    @AntiDDoSPackageId.setter
    def AntiDDoSPackageId(self, AntiDDoSPackageId):
        self._AntiDDoSPackageId = AntiDDoSPackageId

    @property
    def ClientToken(self):
        return self._ClientToken

    @ClientToken.setter
    def ClientToken(self, ClientToken):
        self._ClientToken = ClientToken


    def _deserialize(self, params):
        self._AddressCount = params.get("AddressCount")
        self._InternetServiceProvider = params.get("InternetServiceProvider")
        self._InternetChargeType = params.get("InternetChargeType")
        self._InternetMaxBandwidthOut = params.get("InternetMaxBandwidthOut")
        if params.get("AddressChargePrepaid") is not None:
            self._AddressChargePrepaid = AddressChargePrepaid()
            self._AddressChargePrepaid._deserialize(params.get("AddressChargePrepaid"))
        self._AddressType = params.get("AddressType")
        self._AnycastZone = params.get("AnycastZone")
        self._ApplicableForCLB = params.get("ApplicableForCLB")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self._Tags.append(obj)
        self._BandwidthPackageId = params.get("BandwidthPackageId")
        self._AddressName = params.get("AddressName")
        self._Egress = params.get("Egress")
        self._AntiDDoSPackageId = params.get("AntiDDoSPackageId")
        self._ClientToken = params.get("ClientToken")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AllocateAddressesResponse(AbstractModel):
    """AllocateAddresses返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressSet: 申请到的 EIP 的唯一 ID 列表。
        :type AddressSet: list of str
        :param _TaskId: 异步任务TaskId。可以使用[DescribeTaskResult](https://cloud.tencent.com/document/api/215/36271)接口查询任务状态。
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AddressSet = None
        self._TaskId = None
        self._RequestId = None

    @property
    def AddressSet(self):
        return self._AddressSet

    @AddressSet.setter
    def AddressSet(self, AddressSet):
        self._AddressSet = AddressSet

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._AddressSet = params.get("AddressSet")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class AllocateIp6AddressesBandwidthRequest(AbstractModel):
    """AllocateIp6AddressesBandwidth请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip6Addresses: 需要开通公网访问能力的IPV6地址
        :type Ip6Addresses: list of str
        :param _InternetMaxBandwidthOut: 带宽，单位Mbps。默认是1Mbps
        :type InternetMaxBandwidthOut: int
        :param _InternetChargeType: 网络计费模式。IPV6当前支持"TRAFFIC_POSTPAID_BY_HOUR"，"BANDWIDTH_PACKAGE"。默认网络计费模式是"TRAFFIC_POSTPAID_BY_HOUR"。
        :type InternetChargeType: str
        :param _BandwidthPackageId: 带宽包id，上移账号，申请带宽包计费模式的ipv6地址需要传入.
        :type BandwidthPackageId: str
        """
        self._Ip6Addresses = None
        self._InternetMaxBandwidthOut = None
        self._InternetChargeType = None
        self._BandwidthPackageId = None

    @property
    def Ip6Addresses(self):
        return self._Ip6Addresses

    @Ip6Addresses.setter
    def Ip6Addresses(self, Ip6Addresses):
        self._Ip6Addresses = Ip6Addresses

    @property
    def InternetMaxBandwidthOut(self):
        return self._InternetMaxBandwidthOut

    @InternetMaxBandwidthOut.setter
    def InternetMaxBandwidthOut(self, InternetMaxBandwidthOut):
        self._InternetMaxBandwidthOut = InternetMaxBandwidthOut

    @property
    def InternetChargeType(self):
        return self._InternetChargeType

    @InternetChargeType.setter
    def InternetChargeType(self, InternetChargeType):
        self._InternetChargeType = InternetChargeType

    @property
    def BandwidthPackageId(self):
        return self._BandwidthPackageId

    @BandwidthPackageId.setter
    def BandwidthPackageId(self, BandwidthPackageId):
        self._BandwidthPackageId = BandwidthPackageId


    def _deserialize(self, params):
        self._Ip6Addresses = params.get("Ip6Addresses")
        self._InternetMaxBandwidthOut = params.get("InternetMaxBandwidthOut")
        self._InternetChargeType = params.get("InternetChargeType")
        self._BandwidthPackageId = params.get("BandwidthPackageId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AllocateIp6AddressesBandwidthResponse(AbstractModel):
    """AllocateIp6AddressesBandwidth返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressSet: 弹性公网 IPV6 的唯一 ID 列表。
        :type AddressSet: list of str
        :param _TaskId: 异步任务TaskId。可以使用[DescribeTaskResult](https://cloud.tencent.com/document/api/215/36271)接口查询任务状态。
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AddressSet = None
        self._TaskId = None
        self._RequestId = None

    @property
    def AddressSet(self):
        return self._AddressSet

    @AddressSet.setter
    def AddressSet(self, AddressSet):
        self._AddressSet = AddressSet

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._AddressSet = params.get("AddressSet")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class AssignIpv6AddressesRequest(AbstractModel):
    """AssignIpv6Addresses请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceId: 弹性网卡实例`ID`，形如：`eni-m6dyj72l`。
        :type NetworkInterfaceId: str
        :param _Ipv6Addresses: 指定的`IPv6`地址列表，单次最多指定10个。与入参`Ipv6AddressCount`合并计算配额。与Ipv6AddressCount必填一个。
        :type Ipv6Addresses: list of Ipv6Address
        :param _Ipv6AddressCount: 自动分配`IPv6`地址个数，内网IP地址个数总和不能超过配额数。与入参`Ipv6Addresses`合并计算配额。与Ipv6Addresses必填一个。
        :type Ipv6AddressCount: int
        """
        self._NetworkInterfaceId = None
        self._Ipv6Addresses = None
        self._Ipv6AddressCount = None

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId

    @property
    def Ipv6Addresses(self):
        return self._Ipv6Addresses

    @Ipv6Addresses.setter
    def Ipv6Addresses(self, Ipv6Addresses):
        self._Ipv6Addresses = Ipv6Addresses

    @property
    def Ipv6AddressCount(self):
        return self._Ipv6AddressCount

    @Ipv6AddressCount.setter
    def Ipv6AddressCount(self, Ipv6AddressCount):
        self._Ipv6AddressCount = Ipv6AddressCount


    def _deserialize(self, params):
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        if params.get("Ipv6Addresses") is not None:
            self._Ipv6Addresses = []
            for item in params.get("Ipv6Addresses"):
                obj = Ipv6Address()
                obj._deserialize(item)
                self._Ipv6Addresses.append(obj)
        self._Ipv6AddressCount = params.get("Ipv6AddressCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssignIpv6AddressesResponse(AbstractModel):
    """AssignIpv6Addresses返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Ipv6AddressSet: 分配给弹性网卡的`IPv6`地址列表。
        :type Ipv6AddressSet: list of Ipv6Address
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Ipv6AddressSet = None
        self._RequestId = None

    @property
    def Ipv6AddressSet(self):
        return self._Ipv6AddressSet

    @Ipv6AddressSet.setter
    def Ipv6AddressSet(self, Ipv6AddressSet):
        self._Ipv6AddressSet = Ipv6AddressSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Ipv6AddressSet") is not None:
            self._Ipv6AddressSet = []
            for item in params.get("Ipv6AddressSet"):
                obj = Ipv6Address()
                obj._deserialize(item)
                self._Ipv6AddressSet.append(obj)
        self._RequestId = params.get("RequestId")


class AssignIpv6CidrBlockRequest(AbstractModel):
    """AssignIpv6CidrBlock请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: `VPC`实例`ID`，形如：`vpc-f49l6u0z`。
        :type VpcId: str
        """
        self._VpcId = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssignIpv6CidrBlockResponse(AbstractModel):
    """AssignIpv6CidrBlock返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Ipv6CidrBlock: 分配的 `IPv6` 网段。形如：`3402:4e00:20:1000::/56`。
        :type Ipv6CidrBlock: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Ipv6CidrBlock = None
        self._RequestId = None

    @property
    def Ipv6CidrBlock(self):
        return self._Ipv6CidrBlock

    @Ipv6CidrBlock.setter
    def Ipv6CidrBlock(self, Ipv6CidrBlock):
        self._Ipv6CidrBlock = Ipv6CidrBlock

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Ipv6CidrBlock = params.get("Ipv6CidrBlock")
        self._RequestId = params.get("RequestId")


class AssignIpv6SubnetCidrBlockRequest(AbstractModel):
    """AssignIpv6SubnetCidrBlock请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: 子网所在私有网络`ID`。形如：`vpc-f49l6u0z`。
        :type VpcId: str
        :param _Ipv6SubnetCidrBlocks: 分配 `IPv6` 子网段列表。
        :type Ipv6SubnetCidrBlocks: list of Ipv6SubnetCidrBlock
        :param _ClientToken: 用于保证请求幂等性的字符串。该字符串由客户生成，需保证不同请求之间唯一，最大值不超过64个ASCII字符。若不指定该参数，则无法保证请求的幂等性。
        :type ClientToken: str
        """
        self._VpcId = None
        self._Ipv6SubnetCidrBlocks = None
        self._ClientToken = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def Ipv6SubnetCidrBlocks(self):
        return self._Ipv6SubnetCidrBlocks

    @Ipv6SubnetCidrBlocks.setter
    def Ipv6SubnetCidrBlocks(self, Ipv6SubnetCidrBlocks):
        self._Ipv6SubnetCidrBlocks = Ipv6SubnetCidrBlocks

    @property
    def ClientToken(self):
        return self._ClientToken

    @ClientToken.setter
    def ClientToken(self, ClientToken):
        self._ClientToken = ClientToken


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        if params.get("Ipv6SubnetCidrBlocks") is not None:
            self._Ipv6SubnetCidrBlocks = []
            for item in params.get("Ipv6SubnetCidrBlocks"):
                obj = Ipv6SubnetCidrBlock()
                obj._deserialize(item)
                self._Ipv6SubnetCidrBlocks.append(obj)
        self._ClientToken = params.get("ClientToken")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssignIpv6SubnetCidrBlockResponse(AbstractModel):
    """AssignIpv6SubnetCidrBlock返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Ipv6SubnetCidrBlockSet: 分配 `IPv6` 子网段列表。
        :type Ipv6SubnetCidrBlockSet: list of Ipv6SubnetCidrBlock
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Ipv6SubnetCidrBlockSet = None
        self._RequestId = None

    @property
    def Ipv6SubnetCidrBlockSet(self):
        return self._Ipv6SubnetCidrBlockSet

    @Ipv6SubnetCidrBlockSet.setter
    def Ipv6SubnetCidrBlockSet(self, Ipv6SubnetCidrBlockSet):
        self._Ipv6SubnetCidrBlockSet = Ipv6SubnetCidrBlockSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Ipv6SubnetCidrBlockSet") is not None:
            self._Ipv6SubnetCidrBlockSet = []
            for item in params.get("Ipv6SubnetCidrBlockSet"):
                obj = Ipv6SubnetCidrBlock()
                obj._deserialize(item)
                self._Ipv6SubnetCidrBlockSet.append(obj)
        self._RequestId = params.get("RequestId")


class AssignPrivateIpAddressesRequest(AbstractModel):
    """AssignPrivateIpAddresses请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceId: 弹性网卡实例ID，例如：eni-m6dyj72l。
        :type NetworkInterfaceId: str
        :param _PrivateIpAddresses: 指定的内网IP信息，单次最多指定10个。与SecondaryPrivateIpAddressCount至少提供一个。
        :type PrivateIpAddresses: list of PrivateIpAddressSpecification
        :param _SecondaryPrivateIpAddressCount: 新申请的内网IP地址个数，与PrivateIpAddresses至少提供一个。内网IP地址个数总和不能超过配额数，详见<a href="/document/product/576/18527">弹性网卡使用限制</a>。
        :type SecondaryPrivateIpAddressCount: int
        :param _QosLevel: IP服务质量等级，和SecondaryPrivateIpAddressCount配合使用，可选值：PT、AU、AG、DEFAULT，分别代表云金、云银、云铜、默认四个等级。
        :type QosLevel: str
        :param _ClientToken: 用于保证请求幂等性的字符串。该字符串由客户生成，需保证不同请求之间唯一，最大值不超过64个ASCII字符。若不指定该参数，则无法保证请求的幂等性。
        :type ClientToken: str
        """
        self._NetworkInterfaceId = None
        self._PrivateIpAddresses = None
        self._SecondaryPrivateIpAddressCount = None
        self._QosLevel = None
        self._ClientToken = None

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId

    @property
    def PrivateIpAddresses(self):
        return self._PrivateIpAddresses

    @PrivateIpAddresses.setter
    def PrivateIpAddresses(self, PrivateIpAddresses):
        self._PrivateIpAddresses = PrivateIpAddresses

    @property
    def SecondaryPrivateIpAddressCount(self):
        return self._SecondaryPrivateIpAddressCount

    @SecondaryPrivateIpAddressCount.setter
    def SecondaryPrivateIpAddressCount(self, SecondaryPrivateIpAddressCount):
        self._SecondaryPrivateIpAddressCount = SecondaryPrivateIpAddressCount

    @property
    def QosLevel(self):
        return self._QosLevel

    @QosLevel.setter
    def QosLevel(self, QosLevel):
        self._QosLevel = QosLevel

    @property
    def ClientToken(self):
        return self._ClientToken

    @ClientToken.setter
    def ClientToken(self, ClientToken):
        self._ClientToken = ClientToken


    def _deserialize(self, params):
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        if params.get("PrivateIpAddresses") is not None:
            self._PrivateIpAddresses = []
            for item in params.get("PrivateIpAddresses"):
                obj = PrivateIpAddressSpecification()
                obj._deserialize(item)
                self._PrivateIpAddresses.append(obj)
        self._SecondaryPrivateIpAddressCount = params.get("SecondaryPrivateIpAddressCount")
        self._QosLevel = params.get("QosLevel")
        self._ClientToken = params.get("ClientToken")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssignPrivateIpAddressesResponse(AbstractModel):
    """AssignPrivateIpAddresses返回参数结构体

    """

    def __init__(self):
        r"""
        :param _PrivateIpAddressSet: 内网IP详细信息。
        :type PrivateIpAddressSet: list of PrivateIpAddressSpecification
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._PrivateIpAddressSet = None
        self._RequestId = None

    @property
    def PrivateIpAddressSet(self):
        return self._PrivateIpAddressSet

    @PrivateIpAddressSet.setter
    def PrivateIpAddressSet(self, PrivateIpAddressSet):
        self._PrivateIpAddressSet = PrivateIpAddressSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("PrivateIpAddressSet") is not None:
            self._PrivateIpAddressSet = []
            for item in params.get("PrivateIpAddressSet"):
                obj = PrivateIpAddressSpecification()
                obj._deserialize(item)
                self._PrivateIpAddressSet.append(obj)
        self._RequestId = params.get("RequestId")


class AssistantCidr(AbstractModel):
    """VPC辅助CIDR信息。

    """

    def __init__(self):
        r"""
        :param _VpcId: `VPC`实例`ID`。形如：`vpc-6v2ht8q5`
        :type VpcId: str
        :param _CidrBlock: 辅助CIDR。形如：`172.16.0.0/16`
        :type CidrBlock: str
        :param _AssistantType: 辅助CIDR类型（0：普通辅助CIDR，1：容器辅助CIDR），默认都是0。
        :type AssistantType: int
        :param _SubnetSet: 辅助CIDR拆分的子网。
注意：此字段可能返回 null，表示取不到有效值。
        :type SubnetSet: list of Subnet
        """
        self._VpcId = None
        self._CidrBlock = None
        self._AssistantType = None
        self._SubnetSet = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def CidrBlock(self):
        return self._CidrBlock

    @CidrBlock.setter
    def CidrBlock(self, CidrBlock):
        self._CidrBlock = CidrBlock

    @property
    def AssistantType(self):
        return self._AssistantType

    @AssistantType.setter
    def AssistantType(self, AssistantType):
        self._AssistantType = AssistantType

    @property
    def SubnetSet(self):
        return self._SubnetSet

    @SubnetSet.setter
    def SubnetSet(self, SubnetSet):
        self._SubnetSet = SubnetSet


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._CidrBlock = params.get("CidrBlock")
        self._AssistantType = params.get("AssistantType")
        if params.get("SubnetSet") is not None:
            self._SubnetSet = []
            for item in params.get("SubnetSet"):
                obj = Subnet()
                obj._deserialize(item)
                self._SubnetSet.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssociateAddressRequest(AbstractModel):
    """AssociateAddress请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressId: 标识 EIP 的唯一 ID。EIP 唯一 ID 形如：`eip-11112222`。
        :type AddressId: str
        :param _InstanceId: 要绑定的实例 ID。实例 ID 形如：`ins-11112222`、`lb-11112222`。可通过登录[控制台](https://console.cloud.tencent.com/cvm)查询，也可通过 [DescribeInstances](https://cloud.tencent.com/document/api/213/15728) 接口返回值中的`InstanceId`获取。
        :type InstanceId: str
        :param _NetworkInterfaceId: 要绑定的弹性网卡 ID。 弹性网卡 ID 形如：`eni-11112222`。`NetworkInterfaceId` 与 `InstanceId` 不可同时指定。弹性网卡 ID 可通过登录[控制台](https://console.cloud.tencent.com/vpc/eni)查询，也可通过[DescribeNetworkInterfaces](https://cloud.tencent.com/document/api/215/15817)接口返回值中的`networkInterfaceId`获取。
        :type NetworkInterfaceId: str
        :param _PrivateIpAddress: 要绑定的内网 IP。如果指定了 `NetworkInterfaceId` 则也必须指定 `PrivateIpAddress` ，表示将 EIP 绑定到指定弹性网卡的指定内网 IP 上。同时要确保指定的 `PrivateIpAddress` 是指定的 `NetworkInterfaceId` 上的一个内网 IP。指定弹性网卡的内网 IP 可通过登录[控制台](https://console.cloud.tencent.com/vpc/eni)查询，也可通过[DescribeNetworkInterfaces](https://cloud.tencent.com/document/api/215/15817)接口返回值中的`privateIpAddress`获取。
        :type PrivateIpAddress: str
        :param _EipDirectConnection: 指定绑定时是否设置直通。弹性公网 IP 直通请参见 [EIP 直通](https://cloud.tencent.com/document/product/1199/41709)。取值：True、False，默认值为 False。当绑定 CVM 实例、EKS 弹性集群时，可设定此参数为 True。此参数目前处于内测中，如需使用，请提交 [工单申请](https://console.cloud.tencent.com/workorder/category?level1_id=6&level2_id=163&source=0&data_title=%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%20CLB&level3_id=1071&queue=96&scene_code=34639&step=2)。
        :type EipDirectConnection: bool
        """
        self._AddressId = None
        self._InstanceId = None
        self._NetworkInterfaceId = None
        self._PrivateIpAddress = None
        self._EipDirectConnection = None

    @property
    def AddressId(self):
        return self._AddressId

    @AddressId.setter
    def AddressId(self, AddressId):
        self._AddressId = AddressId

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId

    @property
    def PrivateIpAddress(self):
        return self._PrivateIpAddress

    @PrivateIpAddress.setter
    def PrivateIpAddress(self, PrivateIpAddress):
        self._PrivateIpAddress = PrivateIpAddress

    @property
    def EipDirectConnection(self):
        return self._EipDirectConnection

    @EipDirectConnection.setter
    def EipDirectConnection(self, EipDirectConnection):
        self._EipDirectConnection = EipDirectConnection


    def _deserialize(self, params):
        self._AddressId = params.get("AddressId")
        self._InstanceId = params.get("InstanceId")
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        self._PrivateIpAddress = params.get("PrivateIpAddress")
        self._EipDirectConnection = params.get("EipDirectConnection")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssociateAddressResponse(AbstractModel):
    """AssociateAddress返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步任务TaskId。可以使用[DescribeTaskResult](https://cloud.tencent.com/document/api/215/36271)接口查询任务状态。
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class AssociateDhcpIpWithAddressIpRequest(AbstractModel):
    """AssociateDhcpIpWithAddressIp请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DhcpIpId: `DhcpIp`唯一`ID`，形如：`dhcpip-9o233uri`。必须是没有绑定`EIP`的`DhcpIp`
        :type DhcpIpId: str
        :param _AddressIp: 弹性公网`IP`。必须是没有绑定`DhcpIp`的`EIP`
        :type AddressIp: str
        """
        self._DhcpIpId = None
        self._AddressIp = None

    @property
    def DhcpIpId(self):
        return self._DhcpIpId

    @DhcpIpId.setter
    def DhcpIpId(self, DhcpIpId):
        self._DhcpIpId = DhcpIpId

    @property
    def AddressIp(self):
        return self._AddressIp

    @AddressIp.setter
    def AddressIp(self, AddressIp):
        self._AddressIp = AddressIp


    def _deserialize(self, params):
        self._DhcpIpId = params.get("DhcpIpId")
        self._AddressIp = params.get("AddressIp")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssociateDhcpIpWithAddressIpResponse(AbstractModel):
    """AssociateDhcpIpWithAddressIp返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class AssociateDirectConnectGatewayNatGatewayRequest(AbstractModel):
    """AssociateDirectConnectGatewayNatGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。形如：vpc-xxx。
        :type VpcId: str
        :param _NatGatewayId: NAT网关ID。形如：nat-xxx
        :type NatGatewayId: str
        :param _DirectConnectGatewayId: 专线网关ID。形如：dcg-xxx
        :type DirectConnectGatewayId: str
        """
        self._VpcId = None
        self._NatGatewayId = None
        self._DirectConnectGatewayId = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def DirectConnectGatewayId(self):
        return self._DirectConnectGatewayId

    @DirectConnectGatewayId.setter
    def DirectConnectGatewayId(self, DirectConnectGatewayId):
        self._DirectConnectGatewayId = DirectConnectGatewayId


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._NatGatewayId = params.get("NatGatewayId")
        self._DirectConnectGatewayId = params.get("DirectConnectGatewayId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssociateDirectConnectGatewayNatGatewayResponse(AbstractModel):
    """AssociateDirectConnectGatewayNatGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class AssociateNatGatewayAddressRequest(AbstractModel):
    """AssociateNatGatewayAddress请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayId: NAT网关的ID，形如：`nat-df45454`。
        :type NatGatewayId: str
        :param _AddressCount: 需要申请的弹性IP个数，系统会按您的要求生产N个弹性IP, 其中AddressCount和PublicAddresses至少传递一个。
        :type AddressCount: int
        :param _PublicIpAddresses: 绑定NAT网关的弹性IP数组，其中AddressCount和PublicAddresses至少传递一个。
        :type PublicIpAddresses: list of str
        :param _Zone: 弹性IP可用区，自动分配弹性IP时传递。
        :type Zone: str
        :param _StockPublicIpAddressesBandwidthOut: 绑定NAT网关的弹性IP带宽大小（单位Mbps），默认为当前用户类型所能使用的最大值。
        :type StockPublicIpAddressesBandwidthOut: int
        :param _PublicIpAddressesBandwidthOut: 需要申请公网IP带宽大小（单位Mbps），默认为当前用户类型所能使用的最大值。
        :type PublicIpAddressesBandwidthOut: int
        :param _PublicIpFromSameZone: 公网IP是否强制与NAT网关来自同可用区，true表示需要与NAT网关同可用区；false表示可与NAT网关不是同一个可用区。此参数只有当参数Zone存在时才能生效。
        :type PublicIpFromSameZone: bool
        """
        self._NatGatewayId = None
        self._AddressCount = None
        self._PublicIpAddresses = None
        self._Zone = None
        self._StockPublicIpAddressesBandwidthOut = None
        self._PublicIpAddressesBandwidthOut = None
        self._PublicIpFromSameZone = None

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def AddressCount(self):
        return self._AddressCount

    @AddressCount.setter
    def AddressCount(self, AddressCount):
        self._AddressCount = AddressCount

    @property
    def PublicIpAddresses(self):
        return self._PublicIpAddresses

    @PublicIpAddresses.setter
    def PublicIpAddresses(self, PublicIpAddresses):
        self._PublicIpAddresses = PublicIpAddresses

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def StockPublicIpAddressesBandwidthOut(self):
        return self._StockPublicIpAddressesBandwidthOut

    @StockPublicIpAddressesBandwidthOut.setter
    def StockPublicIpAddressesBandwidthOut(self, StockPublicIpAddressesBandwidthOut):
        self._StockPublicIpAddressesBandwidthOut = StockPublicIpAddressesBandwidthOut

    @property
    def PublicIpAddressesBandwidthOut(self):
        return self._PublicIpAddressesBandwidthOut

    @PublicIpAddressesBandwidthOut.setter
    def PublicIpAddressesBandwidthOut(self, PublicIpAddressesBandwidthOut):
        self._PublicIpAddressesBandwidthOut = PublicIpAddressesBandwidthOut

    @property
    def PublicIpFromSameZone(self):
        return self._PublicIpFromSameZone

    @PublicIpFromSameZone.setter
    def PublicIpFromSameZone(self, PublicIpFromSameZone):
        self._PublicIpFromSameZone = PublicIpFromSameZone


    def _deserialize(self, params):
        self._NatGatewayId = params.get("NatGatewayId")
        self._AddressCount = params.get("AddressCount")
        self._PublicIpAddresses = params.get("PublicIpAddresses")
        self._Zone = params.get("Zone")
        self._StockPublicIpAddressesBandwidthOut = params.get("StockPublicIpAddressesBandwidthOut")
        self._PublicIpAddressesBandwidthOut = params.get("PublicIpAddressesBandwidthOut")
        self._PublicIpFromSameZone = params.get("PublicIpFromSameZone")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssociateNatGatewayAddressResponse(AbstractModel):
    """AssociateNatGatewayAddress返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class AssociateNetworkAclSubnetsRequest(AbstractModel):
    """AssociateNetworkAclSubnets请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkAclId: 网络ACL实例ID。例如：acl-12345678。
        :type NetworkAclId: str
        :param _SubnetIds: 子网实例ID数组。例如：[subnet-12345678]。
        :type SubnetIds: list of str
        """
        self._NetworkAclId = None
        self._SubnetIds = None

    @property
    def NetworkAclId(self):
        return self._NetworkAclId

    @NetworkAclId.setter
    def NetworkAclId(self, NetworkAclId):
        self._NetworkAclId = NetworkAclId

    @property
    def SubnetIds(self):
        return self._SubnetIds

    @SubnetIds.setter
    def SubnetIds(self, SubnetIds):
        self._SubnetIds = SubnetIds


    def _deserialize(self, params):
        self._NetworkAclId = params.get("NetworkAclId")
        self._SubnetIds = params.get("SubnetIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssociateNetworkAclSubnetsResponse(AbstractModel):
    """AssociateNetworkAclSubnets返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class AssociateNetworkInterfaceSecurityGroupsRequest(AbstractModel):
    """AssociateNetworkInterfaceSecurityGroups请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceIds: 弹性网卡实例ID。形如：eni-pxir56ns。每次请求的实例的上限为100。
        :type NetworkInterfaceIds: list of str
        :param _SecurityGroupIds: 安全组实例ID，例如：sg-33ocnj9n，可通过DescribeSecurityGroups获取。每次请求的实例的上限为100。
        :type SecurityGroupIds: list of str
        """
        self._NetworkInterfaceIds = None
        self._SecurityGroupIds = None

    @property
    def NetworkInterfaceIds(self):
        return self._NetworkInterfaceIds

    @NetworkInterfaceIds.setter
    def NetworkInterfaceIds(self, NetworkInterfaceIds):
        self._NetworkInterfaceIds = NetworkInterfaceIds

    @property
    def SecurityGroupIds(self):
        return self._SecurityGroupIds

    @SecurityGroupIds.setter
    def SecurityGroupIds(self, SecurityGroupIds):
        self._SecurityGroupIds = SecurityGroupIds


    def _deserialize(self, params):
        self._NetworkInterfaceIds = params.get("NetworkInterfaceIds")
        self._SecurityGroupIds = params.get("SecurityGroupIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssociateNetworkInterfaceSecurityGroupsResponse(AbstractModel):
    """AssociateNetworkInterfaceSecurityGroups返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class AttachCcnInstancesRequest(AbstractModel):
    """AttachCcnInstances请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnId: CCN实例ID。形如：ccn-f49l6u0z。
        :type CcnId: str
        :param _Instances: 关联网络实例列表
        :type Instances: list of CcnInstance
        :param _CcnUin: CCN所属UIN（根账号），默认当前账号所属UIN
        :type CcnUin: str
        """
        self._CcnId = None
        self._Instances = None
        self._CcnUin = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def Instances(self):
        return self._Instances

    @Instances.setter
    def Instances(self, Instances):
        self._Instances = Instances

    @property
    def CcnUin(self):
        return self._CcnUin

    @CcnUin.setter
    def CcnUin(self, CcnUin):
        self._CcnUin = CcnUin


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        if params.get("Instances") is not None:
            self._Instances = []
            for item in params.get("Instances"):
                obj = CcnInstance()
                obj._deserialize(item)
                self._Instances.append(obj)
        self._CcnUin = params.get("CcnUin")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AttachCcnInstancesResponse(AbstractModel):
    """AttachCcnInstances返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class AttachClassicLinkVpcRequest(AbstractModel):
    """AttachClassicLinkVpc请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID
        :type VpcId: str
        :param _InstanceIds: CVM实例ID
        :type InstanceIds: list of str
        """
        self._VpcId = None
        self._InstanceIds = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def InstanceIds(self):
        return self._InstanceIds

    @InstanceIds.setter
    def InstanceIds(self, InstanceIds):
        self._InstanceIds = InstanceIds


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._InstanceIds = params.get("InstanceIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AttachClassicLinkVpcResponse(AbstractModel):
    """AttachClassicLinkVpc返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class AttachNetworkInterfaceRequest(AbstractModel):
    """AttachNetworkInterface请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceId: 弹性网卡实例ID，例如：eni-m6dyj72l。
        :type NetworkInterfaceId: str
        :param _InstanceId: CVM实例ID。形如：ins-r8hr2upy。
        :type InstanceId: str
        :param _AttachType: 网卡的挂载类型：0 标准型，1扩展型，默认值0。
        :type AttachType: int
        :param _ClientToken: 用于保证请求幂等性的字符串。该字符串由客户生成，需保证不同请求之间唯一，最大值不超过64个ASCII字符。若不指定该参数，则无法保证请求的幂等性。	
        :type ClientToken: str
        """
        self._NetworkInterfaceId = None
        self._InstanceId = None
        self._AttachType = None
        self._ClientToken = None

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def AttachType(self):
        return self._AttachType

    @AttachType.setter
    def AttachType(self, AttachType):
        self._AttachType = AttachType

    @property
    def ClientToken(self):
        return self._ClientToken

    @ClientToken.setter
    def ClientToken(self, ClientToken):
        self._ClientToken = ClientToken


    def _deserialize(self, params):
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        self._InstanceId = params.get("InstanceId")
        self._AttachType = params.get("AttachType")
        self._ClientToken = params.get("ClientToken")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AttachNetworkInterfaceResponse(AbstractModel):
    """AttachNetworkInterface返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class AttachSnapshotInstancesRequest(AbstractModel):
    """AttachSnapshotInstances请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SnapshotPolicyId: 快照策略Id。
        :type SnapshotPolicyId: str
        :param _Instances: 关联实例信息。
        :type Instances: list of SnapshotInstance
        """
        self._SnapshotPolicyId = None
        self._Instances = None

    @property
    def SnapshotPolicyId(self):
        return self._SnapshotPolicyId

    @SnapshotPolicyId.setter
    def SnapshotPolicyId(self, SnapshotPolicyId):
        self._SnapshotPolicyId = SnapshotPolicyId

    @property
    def Instances(self):
        return self._Instances

    @Instances.setter
    def Instances(self, Instances):
        self._Instances = Instances


    def _deserialize(self, params):
        self._SnapshotPolicyId = params.get("SnapshotPolicyId")
        if params.get("Instances") is not None:
            self._Instances = []
            for item in params.get("Instances"):
                obj = SnapshotInstance()
                obj._deserialize(item)
                self._Instances.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AttachSnapshotInstancesResponse(AbstractModel):
    """AttachSnapshotInstances返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class AuditCrossBorderComplianceRequest(AbstractModel):
    """AuditCrossBorderCompliance请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ServiceProvider: 服务商, 可选值：`UNICOM`。
        :type ServiceProvider: str
        :param _ComplianceId: 表单唯一`ID`。可通过[DescribeCrossBorderCompliance](https://cloud.tencent.com/document/product/215/47838)接口查询ComplianceId信息
        :type ComplianceId: int
        :param _AuditBehavior: 通过：`APPROVED `，拒绝：`DENY`。
        :type AuditBehavior: str
        """
        self._ServiceProvider = None
        self._ComplianceId = None
        self._AuditBehavior = None

    @property
    def ServiceProvider(self):
        return self._ServiceProvider

    @ServiceProvider.setter
    def ServiceProvider(self, ServiceProvider):
        self._ServiceProvider = ServiceProvider

    @property
    def ComplianceId(self):
        return self._ComplianceId

    @ComplianceId.setter
    def ComplianceId(self, ComplianceId):
        self._ComplianceId = ComplianceId

    @property
    def AuditBehavior(self):
        return self._AuditBehavior

    @AuditBehavior.setter
    def AuditBehavior(self, AuditBehavior):
        self._AuditBehavior = AuditBehavior


    def _deserialize(self, params):
        self._ServiceProvider = params.get("ServiceProvider")
        self._ComplianceId = params.get("ComplianceId")
        self._AuditBehavior = params.get("AuditBehavior")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AuditCrossBorderComplianceResponse(AbstractModel):
    """AuditCrossBorderCompliance返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class BackupPolicy(AbstractModel):
    """时间备份策略详情

    """

    def __init__(self):
        r"""
        :param _BackupDay: 备份周期时间，取值为monday, tuesday, wednesday, thursday, friday, saturday, sunday。
        :type BackupDay: str
        :param _BackupTime: 备份时间点，格式：HH:mm:ss。
        :type BackupTime: str
        """
        self._BackupDay = None
        self._BackupTime = None

    @property
    def BackupDay(self):
        return self._BackupDay

    @BackupDay.setter
    def BackupDay(self, BackupDay):
        self._BackupDay = BackupDay

    @property
    def BackupTime(self):
        return self._BackupTime

    @BackupTime.setter
    def BackupTime(self, BackupTime):
        self._BackupTime = BackupTime


    def _deserialize(self, params):
        self._BackupDay = params.get("BackupDay")
        self._BackupTime = params.get("BackupTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BandwidthPackage(AbstractModel):
    """描述带宽包信息的结构

    """

    def __init__(self):
        r"""
        :param _BandwidthPackageId: 带宽包唯一标识Id
        :type BandwidthPackageId: str
        :param _NetworkType: 带宽包类型，包括'BGP','SINGLEISP','ANYCAST','SINGLEISP_CMCC','SINGLEISP_CTCC','SINGLEISP_CUCC'
        :type NetworkType: str
        :param _ChargeType: 带宽包计费类型，包括:<li>'TOP5_POSTPAID_BY_MONTH':按月后付费TOP5计费</li><li> 'PERCENT95_POSTPAID_BY_MONTH':按月后付费月95计费</li><li>'ENHANCED95_POSTPAID_BY_MONTH':按月后付费增强型95计费</li><li>'FIXED_PREPAID_BY_MONTH':包月预付费计费</li><li>‘PEAK_BANDWIDTH_POSTPAID_BY_DAY’: 后付费日结按带宽计费</li>

        :type ChargeType: str
        :param _BandwidthPackageName: 带宽包名称
        :type BandwidthPackageName: str
        :param _CreatedTime: 带宽包创建时间。按照`ISO8601`标准表示，并且使用`UTC`时间。格式为：`YYYY-MM-DDThh:mm:ssZ`。
        :type CreatedTime: str
        :param _Status: 带宽包状态，包括'CREATING','CREATED','DELETING','DELETED'
        :type Status: str
        :param _ResourceSet: 带宽包资源信息
        :type ResourceSet: list of Resource
        :param _Bandwidth: 带宽包限速大小。单位：Mbps，-1表示不限速。
        :type Bandwidth: int
        :param _Egress: 网络出口
注意：此字段可能返回 null，表示取不到有效值。
        :type Egress: str
        :param _Deadline: 带宽包到期时间，只有预付费会返回，按量计费返回为null
注意：此字段可能返回 null，表示取不到有效值。
        :type Deadline: str
        """
        self._BandwidthPackageId = None
        self._NetworkType = None
        self._ChargeType = None
        self._BandwidthPackageName = None
        self._CreatedTime = None
        self._Status = None
        self._ResourceSet = None
        self._Bandwidth = None
        self._Egress = None
        self._Deadline = None

    @property
    def BandwidthPackageId(self):
        return self._BandwidthPackageId

    @BandwidthPackageId.setter
    def BandwidthPackageId(self, BandwidthPackageId):
        self._BandwidthPackageId = BandwidthPackageId

    @property
    def NetworkType(self):
        return self._NetworkType

    @NetworkType.setter
    def NetworkType(self, NetworkType):
        self._NetworkType = NetworkType

    @property
    def ChargeType(self):
        return self._ChargeType

    @ChargeType.setter
    def ChargeType(self, ChargeType):
        self._ChargeType = ChargeType

    @property
    def BandwidthPackageName(self):
        return self._BandwidthPackageName

    @BandwidthPackageName.setter
    def BandwidthPackageName(self, BandwidthPackageName):
        self._BandwidthPackageName = BandwidthPackageName

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def ResourceSet(self):
        return self._ResourceSet

    @ResourceSet.setter
    def ResourceSet(self, ResourceSet):
        self._ResourceSet = ResourceSet

    @property
    def Bandwidth(self):
        return self._Bandwidth

    @Bandwidth.setter
    def Bandwidth(self, Bandwidth):
        self._Bandwidth = Bandwidth

    @property
    def Egress(self):
        return self._Egress

    @Egress.setter
    def Egress(self, Egress):
        self._Egress = Egress

    @property
    def Deadline(self):
        return self._Deadline

    @Deadline.setter
    def Deadline(self, Deadline):
        self._Deadline = Deadline


    def _deserialize(self, params):
        self._BandwidthPackageId = params.get("BandwidthPackageId")
        self._NetworkType = params.get("NetworkType")
        self._ChargeType = params.get("ChargeType")
        self._BandwidthPackageName = params.get("BandwidthPackageName")
        self._CreatedTime = params.get("CreatedTime")
        self._Status = params.get("Status")
        if params.get("ResourceSet") is not None:
            self._ResourceSet = []
            for item in params.get("ResourceSet"):
                obj = Resource()
                obj._deserialize(item)
                self._ResourceSet.append(obj)
        self._Bandwidth = params.get("Bandwidth")
        self._Egress = params.get("Egress")
        self._Deadline = params.get("Deadline")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BandwidthPackageBillBandwidth(AbstractModel):
    """后付费共享带宽包的当前计费用量

    """

    def __init__(self):
        r"""
        :param _BandwidthUsage: 当前计费用量，单位为 Mbps
        :type BandwidthUsage: float
        """
        self._BandwidthUsage = None

    @property
    def BandwidthUsage(self):
        return self._BandwidthUsage

    @BandwidthUsage.setter
    def BandwidthUsage(self, BandwidthUsage):
        self._BandwidthUsage = BandwidthUsage


    def _deserialize(self, params):
        self._BandwidthUsage = params.get("BandwidthUsage")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BatchModifySnapshotPolicy(AbstractModel):
    """批量修改快照策略信息

    """

    def __init__(self):
        r"""
        :param _SnapshotPolicyId: 快照策略Id。
        :type SnapshotPolicyId: str
        :param _SnapshotPolicyName: 快照策略名称。
        :type SnapshotPolicyName: str
        :param _BackupPolicies: 备份策略。
        :type BackupPolicies: list of BackupPolicy
        :param _KeepTime: 快照保留时间，支持1～365天。
        :type KeepTime: int
        """
        self._SnapshotPolicyId = None
        self._SnapshotPolicyName = None
        self._BackupPolicies = None
        self._KeepTime = None

    @property
    def SnapshotPolicyId(self):
        return self._SnapshotPolicyId

    @SnapshotPolicyId.setter
    def SnapshotPolicyId(self, SnapshotPolicyId):
        self._SnapshotPolicyId = SnapshotPolicyId

    @property
    def SnapshotPolicyName(self):
        return self._SnapshotPolicyName

    @SnapshotPolicyName.setter
    def SnapshotPolicyName(self, SnapshotPolicyName):
        self._SnapshotPolicyName = SnapshotPolicyName

    @property
    def BackupPolicies(self):
        return self._BackupPolicies

    @BackupPolicies.setter
    def BackupPolicies(self, BackupPolicies):
        self._BackupPolicies = BackupPolicies

    @property
    def KeepTime(self):
        return self._KeepTime

    @KeepTime.setter
    def KeepTime(self, KeepTime):
        self._KeepTime = KeepTime


    def _deserialize(self, params):
        self._SnapshotPolicyId = params.get("SnapshotPolicyId")
        self._SnapshotPolicyName = params.get("SnapshotPolicyName")
        if params.get("BackupPolicies") is not None:
            self._BackupPolicies = []
            for item in params.get("BackupPolicies"):
                obj = BackupPolicy()
                obj._deserialize(item)
                self._BackupPolicies.append(obj)
        self._KeepTime = params.get("KeepTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BgpConfig(AbstractModel):
    """BgpConfig

    """

    def __init__(self):
        r"""
        :param _TunnelCidr: BGP隧道网段。
        :type TunnelCidr: str
        :param _LocalBgpIp: 云端BGP地址。必须从BGP隧道网段内分配。
        :type LocalBgpIp: str
        :param _RemoteBgpIp: 用户端BGP地址。必须从BGP隧道网段内分配。
        :type RemoteBgpIp: str
        """
        self._TunnelCidr = None
        self._LocalBgpIp = None
        self._RemoteBgpIp = None

    @property
    def TunnelCidr(self):
        return self._TunnelCidr

    @TunnelCidr.setter
    def TunnelCidr(self, TunnelCidr):
        self._TunnelCidr = TunnelCidr

    @property
    def LocalBgpIp(self):
        return self._LocalBgpIp

    @LocalBgpIp.setter
    def LocalBgpIp(self, LocalBgpIp):
        self._LocalBgpIp = LocalBgpIp

    @property
    def RemoteBgpIp(self):
        return self._RemoteBgpIp

    @RemoteBgpIp.setter
    def RemoteBgpIp(self, RemoteBgpIp):
        self._RemoteBgpIp = RemoteBgpIp


    def _deserialize(self, params):
        self._TunnelCidr = params.get("TunnelCidr")
        self._LocalBgpIp = params.get("LocalBgpIp")
        self._RemoteBgpIp = params.get("RemoteBgpIp")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BgpConfigAndAsn(AbstractModel):
    """VPN通道BGP配置

    """

    def __init__(self):
        r"""
        :param _TunnelCidr: BGP通道CIDR
注意：此字段可能返回 null，表示取不到有效值。
        :type TunnelCidr: str
        :param _LocalBgpIp: 本端BGP IP
注意：此字段可能返回 null，表示取不到有效值。
        :type LocalBgpIp: str
        :param _RemoteBgpIp: 对端BGP IP
注意：此字段可能返回 null，表示取不到有效值。
        :type RemoteBgpIp: str
        :param _LocalBgpAsn: 本端BGP ASN号
注意：此字段可能返回 null，表示取不到有效值。
        :type LocalBgpAsn: str
        :param _RemoteBgpAsn: 对端BGP ASN号
注意：此字段可能返回 null，表示取不到有效值。
        :type RemoteBgpAsn: str
        """
        self._TunnelCidr = None
        self._LocalBgpIp = None
        self._RemoteBgpIp = None
        self._LocalBgpAsn = None
        self._RemoteBgpAsn = None

    @property
    def TunnelCidr(self):
        return self._TunnelCidr

    @TunnelCidr.setter
    def TunnelCidr(self, TunnelCidr):
        self._TunnelCidr = TunnelCidr

    @property
    def LocalBgpIp(self):
        return self._LocalBgpIp

    @LocalBgpIp.setter
    def LocalBgpIp(self, LocalBgpIp):
        self._LocalBgpIp = LocalBgpIp

    @property
    def RemoteBgpIp(self):
        return self._RemoteBgpIp

    @RemoteBgpIp.setter
    def RemoteBgpIp(self, RemoteBgpIp):
        self._RemoteBgpIp = RemoteBgpIp

    @property
    def LocalBgpAsn(self):
        return self._LocalBgpAsn

    @LocalBgpAsn.setter
    def LocalBgpAsn(self, LocalBgpAsn):
        self._LocalBgpAsn = LocalBgpAsn

    @property
    def RemoteBgpAsn(self):
        return self._RemoteBgpAsn

    @RemoteBgpAsn.setter
    def RemoteBgpAsn(self, RemoteBgpAsn):
        self._RemoteBgpAsn = RemoteBgpAsn


    def _deserialize(self, params):
        self._TunnelCidr = params.get("TunnelCidr")
        self._LocalBgpIp = params.get("LocalBgpIp")
        self._RemoteBgpIp = params.get("RemoteBgpIp")
        self._LocalBgpAsn = params.get("LocalBgpAsn")
        self._RemoteBgpAsn = params.get("RemoteBgpAsn")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CCN(AbstractModel):
    """云联网（CCN）对象

    """

    def __init__(self):
        r"""
        :param _CcnId: 云联网唯一ID
        :type CcnId: str
        :param _CcnName: 云联网名称
        :type CcnName: str
        :param _CcnDescription: 云联网描述信息
        :type CcnDescription: str
        :param _InstanceCount: 关联实例数量
        :type InstanceCount: int
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _State: 实例状态， 'ISOLATED': 隔离中（欠费停服），'AVAILABLE'：运行中。
        :type State: str
        :param _QosLevel: 实例服务质量，’PT’：白金，'AU'：金，'AG'：银。
        :type QosLevel: str
        :param _InstanceChargeType: 付费类型，PREPAID为预付费，POSTPAID为后付费。
注意：此字段可能返回 null，表示取不到有效值。
        :type InstanceChargeType: str
        :param _BandwidthLimitType: 限速类型，`INTER_REGION_LIMIT` 为地域间限速；`OUTER_REGION_LIMIT` 为地域出口限速。
注意：此字段可能返回 null，表示取不到有效值。
        :type BandwidthLimitType: str
        :param _TagSet: 标签键值对。
        :type TagSet: list of Tag
        :param _RoutePriorityFlag: 是否支持云联网路由优先级的功能。`False`：不支持，`True`：支持。
        :type RoutePriorityFlag: bool
        :param _RouteTableCount: 实例关联的路由表个数。
注意：此字段可能返回 null，表示取不到有效值。
        :type RouteTableCount: int
        :param _RouteTableFlag: 是否开启云联网多路由表特性。`False`：未开启，`True`：开启。
注意：此字段可能返回 null，表示取不到有效值。
        :type RouteTableFlag: bool
        :param _IsSecurityLock: `true`：实例已被封禁，流量不通，`false`:解封禁。
注意：此字段可能返回 null，表示取不到有效值。
        :type IsSecurityLock: bool
        :param _RouteBroadcastPolicyFlag: 是否开启云联网路由传播策略。`False` 未开启，`True` 开启。
注意：此字段可能返回 null，表示取不到有效值。
        :type RouteBroadcastPolicyFlag: bool
        """
        self._CcnId = None
        self._CcnName = None
        self._CcnDescription = None
        self._InstanceCount = None
        self._CreateTime = None
        self._State = None
        self._QosLevel = None
        self._InstanceChargeType = None
        self._BandwidthLimitType = None
        self._TagSet = None
        self._RoutePriorityFlag = None
        self._RouteTableCount = None
        self._RouteTableFlag = None
        self._IsSecurityLock = None
        self._RouteBroadcastPolicyFlag = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def CcnName(self):
        return self._CcnName

    @CcnName.setter
    def CcnName(self, CcnName):
        self._CcnName = CcnName

    @property
    def CcnDescription(self):
        return self._CcnDescription

    @CcnDescription.setter
    def CcnDescription(self, CcnDescription):
        self._CcnDescription = CcnDescription

    @property
    def InstanceCount(self):
        return self._InstanceCount

    @InstanceCount.setter
    def InstanceCount(self, InstanceCount):
        self._InstanceCount = InstanceCount

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def QosLevel(self):
        return self._QosLevel

    @QosLevel.setter
    def QosLevel(self, QosLevel):
        self._QosLevel = QosLevel

    @property
    def InstanceChargeType(self):
        return self._InstanceChargeType

    @InstanceChargeType.setter
    def InstanceChargeType(self, InstanceChargeType):
        self._InstanceChargeType = InstanceChargeType

    @property
    def BandwidthLimitType(self):
        return self._BandwidthLimitType

    @BandwidthLimitType.setter
    def BandwidthLimitType(self, BandwidthLimitType):
        self._BandwidthLimitType = BandwidthLimitType

    @property
    def TagSet(self):
        return self._TagSet

    @TagSet.setter
    def TagSet(self, TagSet):
        self._TagSet = TagSet

    @property
    def RoutePriorityFlag(self):
        return self._RoutePriorityFlag

    @RoutePriorityFlag.setter
    def RoutePriorityFlag(self, RoutePriorityFlag):
        self._RoutePriorityFlag = RoutePriorityFlag

    @property
    def RouteTableCount(self):
        return self._RouteTableCount

    @RouteTableCount.setter
    def RouteTableCount(self, RouteTableCount):
        self._RouteTableCount = RouteTableCount

    @property
    def RouteTableFlag(self):
        return self._RouteTableFlag

    @RouteTableFlag.setter
    def RouteTableFlag(self, RouteTableFlag):
        self._RouteTableFlag = RouteTableFlag

    @property
    def IsSecurityLock(self):
        return self._IsSecurityLock

    @IsSecurityLock.setter
    def IsSecurityLock(self, IsSecurityLock):
        self._IsSecurityLock = IsSecurityLock

    @property
    def RouteBroadcastPolicyFlag(self):
        return self._RouteBroadcastPolicyFlag

    @RouteBroadcastPolicyFlag.setter
    def RouteBroadcastPolicyFlag(self, RouteBroadcastPolicyFlag):
        self._RouteBroadcastPolicyFlag = RouteBroadcastPolicyFlag


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        self._CcnName = params.get("CcnName")
        self._CcnDescription = params.get("CcnDescription")
        self._InstanceCount = params.get("InstanceCount")
        self._CreateTime = params.get("CreateTime")
        self._State = params.get("State")
        self._QosLevel = params.get("QosLevel")
        self._InstanceChargeType = params.get("InstanceChargeType")
        self._BandwidthLimitType = params.get("BandwidthLimitType")
        if params.get("TagSet") is not None:
            self._TagSet = []
            for item in params.get("TagSet"):
                obj = Tag()
                obj._deserialize(item)
                self._TagSet.append(obj)
        self._RoutePriorityFlag = params.get("RoutePriorityFlag")
        self._RouteTableCount = params.get("RouteTableCount")
        self._RouteTableFlag = params.get("RouteTableFlag")
        self._IsSecurityLock = params.get("IsSecurityLock")
        self._RouteBroadcastPolicyFlag = params.get("RouteBroadcastPolicyFlag")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CcnAttachedInstance(AbstractModel):
    """云联网（CCN）关联实例（Instance）对象

    """

    def __init__(self):
        r"""
        :param _CcnId: 云联网实例ID。
        :type CcnId: str
        :param _InstanceType: 关联实例类型：
<li>`VPC`：私有网络</li>
<li>`DIRECTCONNECT`：专线网关</li>
<li>`BMVPC`：黑石私有网络</li>
        :type InstanceType: str
        :param _InstanceId: 关联实例ID。
        :type InstanceId: str
        :param _InstanceName: 关联实例名称。
        :type InstanceName: str
        :param _InstanceRegion: 关联实例所属大区，例如：ap-guangzhou。
        :type InstanceRegion: str
        :param _InstanceUin: 关联实例所属UIN（根账号）。
        :type InstanceUin: str
        :param _CidrBlock: 关联实例CIDR。
        :type CidrBlock: list of str
        :param _State: 关联实例状态：
<li>`PENDING`：申请中</li>
<li>`ACTIVE`：已连接</li>
<li>`EXPIRED`：已过期</li>
<li>`REJECTED`：已拒绝</li>
<li>`DELETED`：已删除</li>
<li>`FAILED`：失败的（2小时后将异步强制解关联）</li>
<li>`ATTACHING`：关联中</li>
<li>`DETACHING`：解关联中</li>
<li>`DETACHFAILED`：解关联失败（2小时后将异步强制解关联）</li>
        :type State: str
        :param _AttachedTime: 关联时间。
        :type AttachedTime: str
        :param _CcnUin: 云联网所属UIN（根账号）。
        :type CcnUin: str
        :param _InstanceArea: 关联实例所属的大地域，如: CHINA_MAINLAND
        :type InstanceArea: str
        :param _Description: 备注
        :type Description: str
        :param _RouteTableId: 路由表ID
注意：此字段可能返回 null，表示取不到有效值。
        :type RouteTableId: str
        :param _RouteTableName: 路由表名称
注意：此字段可能返回 null，表示取不到有效值。
        :type RouteTableName: str
        """
        self._CcnId = None
        self._InstanceType = None
        self._InstanceId = None
        self._InstanceName = None
        self._InstanceRegion = None
        self._InstanceUin = None
        self._CidrBlock = None
        self._State = None
        self._AttachedTime = None
        self._CcnUin = None
        self._InstanceArea = None
        self._Description = None
        self._RouteTableId = None
        self._RouteTableName = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def InstanceType(self):
        return self._InstanceType

    @InstanceType.setter
    def InstanceType(self, InstanceType):
        self._InstanceType = InstanceType

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def InstanceName(self):
        return self._InstanceName

    @InstanceName.setter
    def InstanceName(self, InstanceName):
        self._InstanceName = InstanceName

    @property
    def InstanceRegion(self):
        return self._InstanceRegion

    @InstanceRegion.setter
    def InstanceRegion(self, InstanceRegion):
        self._InstanceRegion = InstanceRegion

    @property
    def InstanceUin(self):
        return self._InstanceUin

    @InstanceUin.setter
    def InstanceUin(self, InstanceUin):
        self._InstanceUin = InstanceUin

    @property
    def CidrBlock(self):
        return self._CidrBlock

    @CidrBlock.setter
    def CidrBlock(self, CidrBlock):
        self._CidrBlock = CidrBlock

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def AttachedTime(self):
        return self._AttachedTime

    @AttachedTime.setter
    def AttachedTime(self, AttachedTime):
        self._AttachedTime = AttachedTime

    @property
    def CcnUin(self):
        return self._CcnUin

    @CcnUin.setter
    def CcnUin(self, CcnUin):
        self._CcnUin = CcnUin

    @property
    def InstanceArea(self):
        return self._InstanceArea

    @InstanceArea.setter
    def InstanceArea(self, InstanceArea):
        self._InstanceArea = InstanceArea

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId

    @property
    def RouteTableName(self):
        return self._RouteTableName

    @RouteTableName.setter
    def RouteTableName(self, RouteTableName):
        self._RouteTableName = RouteTableName


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        self._InstanceType = params.get("InstanceType")
        self._InstanceId = params.get("InstanceId")
        self._InstanceName = params.get("InstanceName")
        self._InstanceRegion = params.get("InstanceRegion")
        self._InstanceUin = params.get("InstanceUin")
        self._CidrBlock = params.get("CidrBlock")
        self._State = params.get("State")
        self._AttachedTime = params.get("AttachedTime")
        self._CcnUin = params.get("CcnUin")
        self._InstanceArea = params.get("InstanceArea")
        self._Description = params.get("Description")
        self._RouteTableId = params.get("RouteTableId")
        self._RouteTableName = params.get("RouteTableName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CcnBandwidth(AbstractModel):
    """用于描述云联网地域间限速带宽实例的信息。

    """

    def __init__(self):
        r"""
        :param _CcnId: 带宽所属的云联网ID。
        :type CcnId: str
        :param _CreatedTime: 实例的创建时间。
注意：此字段可能返回 null，表示取不到有效值。
        :type CreatedTime: str
        :param _ExpiredTime: 实例的过期时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ExpiredTime: str
        :param _RegionFlowControlId: 带宽实例的唯一ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type RegionFlowControlId: str
        :param _RenewFlag: 带宽是否自动续费的标记。
注意：此字段可能返回 null，表示取不到有效值。
        :type RenewFlag: str
        :param _CcnRegionBandwidthLimit: 描述带宽的地域和限速上限信息。在地域间限速的情况下才会返回参数，出口限速模式不返回。
注意：此字段可能返回 null，表示取不到有效值。
        :type CcnRegionBandwidthLimit: :class:`tencentcloud.vpc.v20170312.models.CcnRegionBandwidthLimitInfo`
        :param _MarketId: 云市场实例ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type MarketId: str
        :param _UserAccountID: 实例所属用户主账号ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type UserAccountID: str
        :param _IsCrossBorder: 是否跨境，`true`表示跨境，反之不跨境。
注意：此字段可能返回 null，表示取不到有效值。
        :type IsCrossBorder: bool
        :param _IsSecurityLock: `true`表示封禁，地域间流量不通，`false`解禁，地域间流量正常
注意：此字段可能返回 null，表示取不到有效值。
        :type IsSecurityLock: bool
        :param _InstanceChargeType: `POSTPAID`表示后付费，`PREPAID`表示预付费。
注意：此字段可能返回 null，表示取不到有效值。
        :type InstanceChargeType: str
        :param _UpdateTime: 实例更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        """
        self._CcnId = None
        self._CreatedTime = None
        self._ExpiredTime = None
        self._RegionFlowControlId = None
        self._RenewFlag = None
        self._CcnRegionBandwidthLimit = None
        self._MarketId = None
        self._UserAccountID = None
        self._IsCrossBorder = None
        self._IsSecurityLock = None
        self._InstanceChargeType = None
        self._UpdateTime = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def ExpiredTime(self):
        return self._ExpiredTime

    @ExpiredTime.setter
    def ExpiredTime(self, ExpiredTime):
        self._ExpiredTime = ExpiredTime

    @property
    def RegionFlowControlId(self):
        return self._RegionFlowControlId

    @RegionFlowControlId.setter
    def RegionFlowControlId(self, RegionFlowControlId):
        self._RegionFlowControlId = RegionFlowControlId

    @property
    def RenewFlag(self):
        return self._RenewFlag

    @RenewFlag.setter
    def RenewFlag(self, RenewFlag):
        self._RenewFlag = RenewFlag

    @property
    def CcnRegionBandwidthLimit(self):
        return self._CcnRegionBandwidthLimit

    @CcnRegionBandwidthLimit.setter
    def CcnRegionBandwidthLimit(self, CcnRegionBandwidthLimit):
        self._CcnRegionBandwidthLimit = CcnRegionBandwidthLimit

    @property
    def MarketId(self):
        return self._MarketId

    @MarketId.setter
    def MarketId(self, MarketId):
        self._MarketId = MarketId

    @property
    def UserAccountID(self):
        return self._UserAccountID

    @UserAccountID.setter
    def UserAccountID(self, UserAccountID):
        self._UserAccountID = UserAccountID

    @property
    def IsCrossBorder(self):
        return self._IsCrossBorder

    @IsCrossBorder.setter
    def IsCrossBorder(self, IsCrossBorder):
        self._IsCrossBorder = IsCrossBorder

    @property
    def IsSecurityLock(self):
        return self._IsSecurityLock

    @IsSecurityLock.setter
    def IsSecurityLock(self, IsSecurityLock):
        self._IsSecurityLock = IsSecurityLock

    @property
    def InstanceChargeType(self):
        return self._InstanceChargeType

    @InstanceChargeType.setter
    def InstanceChargeType(self, InstanceChargeType):
        self._InstanceChargeType = InstanceChargeType

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        self._CreatedTime = params.get("CreatedTime")
        self._ExpiredTime = params.get("ExpiredTime")
        self._RegionFlowControlId = params.get("RegionFlowControlId")
        self._RenewFlag = params.get("RenewFlag")
        if params.get("CcnRegionBandwidthLimit") is not None:
            self._CcnRegionBandwidthLimit = CcnRegionBandwidthLimitInfo()
            self._CcnRegionBandwidthLimit._deserialize(params.get("CcnRegionBandwidthLimit"))
        self._MarketId = params.get("MarketId")
        self._UserAccountID = params.get("UserAccountID")
        self._IsCrossBorder = params.get("IsCrossBorder")
        self._IsSecurityLock = params.get("IsSecurityLock")
        self._InstanceChargeType = params.get("InstanceChargeType")
        self._UpdateTime = params.get("UpdateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CcnBandwidthInfo(AbstractModel):
    """用于描述云联网地域间限速带宽实例的信息。

    """

    def __init__(self):
        r"""
        :param _CcnId: 带宽所属的云联网ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type CcnId: str
        :param _CreatedTime: 实例的创建时间。
注意：此字段可能返回 null，表示取不到有效值。
        :type CreatedTime: str
        :param _ExpiredTime: 实例的过期时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ExpiredTime: str
        :param _RegionFlowControlId: 带宽实例的唯一ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type RegionFlowControlId: str
        :param _RenewFlag: 带宽是否自动续费的标记。
注意：此字段可能返回 null，表示取不到有效值。
        :type RenewFlag: str
        :param _CcnRegionBandwidthLimit: 描述带宽的地域和限速上限信息。在地域间限速的情况下才会返回参数，出口限速模式不返回。
注意：此字段可能返回 null，表示取不到有效值。
        :type CcnRegionBandwidthLimit: :class:`tencentcloud.vpc.v20170312.models.CcnRegionBandwidthLimit`
        :param _MarketId: 云市场实例ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type MarketId: str
        :param _TagSet: 资源绑定的标签列表
注意：此字段可能返回 null，表示取不到有效值。
        :type TagSet: list of Tag
        """
        self._CcnId = None
        self._CreatedTime = None
        self._ExpiredTime = None
        self._RegionFlowControlId = None
        self._RenewFlag = None
        self._CcnRegionBandwidthLimit = None
        self._MarketId = None
        self._TagSet = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def ExpiredTime(self):
        return self._ExpiredTime

    @ExpiredTime.setter
    def ExpiredTime(self, ExpiredTime):
        self._ExpiredTime = ExpiredTime

    @property
    def RegionFlowControlId(self):
        return self._RegionFlowControlId

    @RegionFlowControlId.setter
    def RegionFlowControlId(self, RegionFlowControlId):
        self._RegionFlowControlId = RegionFlowControlId

    @property
    def RenewFlag(self):
        return self._RenewFlag

    @RenewFlag.setter
    def RenewFlag(self, RenewFlag):
        self._RenewFlag = RenewFlag

    @property
    def CcnRegionBandwidthLimit(self):
        return self._CcnRegionBandwidthLimit

    @CcnRegionBandwidthLimit.setter
    def CcnRegionBandwidthLimit(self, CcnRegionBandwidthLimit):
        self._CcnRegionBandwidthLimit = CcnRegionBandwidthLimit

    @property
    def MarketId(self):
        return self._MarketId

    @MarketId.setter
    def MarketId(self, MarketId):
        self._MarketId = MarketId

    @property
    def TagSet(self):
        return self._TagSet

    @TagSet.setter
    def TagSet(self, TagSet):
        self._TagSet = TagSet


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        self._CreatedTime = params.get("CreatedTime")
        self._ExpiredTime = params.get("ExpiredTime")
        self._RegionFlowControlId = params.get("RegionFlowControlId")
        self._RenewFlag = params.get("RenewFlag")
        if params.get("CcnRegionBandwidthLimit") is not None:
            self._CcnRegionBandwidthLimit = CcnRegionBandwidthLimit()
            self._CcnRegionBandwidthLimit._deserialize(params.get("CcnRegionBandwidthLimit"))
        self._MarketId = params.get("MarketId")
        if params.get("TagSet") is not None:
            self._TagSet = []
            for item in params.get("TagSet"):
                obj = Tag()
                obj._deserialize(item)
                self._TagSet.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CcnFlowLock(AbstractModel):
    """云联网限速实例锁对象，该对象特用于运营端使用，用于封禁实例流量。

    """

    def __init__(self):
        r"""
        :param _CcnId: 带宽所属的云联网ID。
        :type CcnId: str
        :param _UserAccountID: 实例所属用户主账号ID。
        :type UserAccountID: str
        :param _RegionFlowControlId: 带宽实例的唯一ID。作为`UnlockCcnBandwidths`接口和`LockCcnBandwidths`接口的入参时，该字段必传。
        :type RegionFlowControlId: str
        """
        self._CcnId = None
        self._UserAccountID = None
        self._RegionFlowControlId = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def UserAccountID(self):
        return self._UserAccountID

    @UserAccountID.setter
    def UserAccountID(self, UserAccountID):
        self._UserAccountID = UserAccountID

    @property
    def RegionFlowControlId(self):
        return self._RegionFlowControlId

    @RegionFlowControlId.setter
    def RegionFlowControlId(self, RegionFlowControlId):
        self._RegionFlowControlId = RegionFlowControlId


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        self._UserAccountID = params.get("UserAccountID")
        self._RegionFlowControlId = params.get("RegionFlowControlId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CcnInstance(AbstractModel):
    """云联网（CCN）关联实例（Instance）对象。

    """

    def __init__(self):
        r"""
        :param _InstanceId: 关联实例ID。
        :type InstanceId: str
        :param _InstanceRegion: 关联实例ID所属大区，例如：ap-guangzhou。
        :type InstanceRegion: str
        :param _InstanceType: 关联实例类型，可选值：
<li>`VPC`：私有网络</li>
<li>`DIRECTCONNECT`：专线网关</li>
<li>`BMVPC`：黑石私有网络</li>
<li>`VPNGW`：VPNGW类型</li>
        :type InstanceType: str
        :param _Description: 备注
        :type Description: str
        :param _RouteTableId: 实例关联的路由表ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type RouteTableId: str
        """
        self._InstanceId = None
        self._InstanceRegion = None
        self._InstanceType = None
        self._Description = None
        self._RouteTableId = None

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def InstanceRegion(self):
        return self._InstanceRegion

    @InstanceRegion.setter
    def InstanceRegion(self, InstanceRegion):
        self._InstanceRegion = InstanceRegion

    @property
    def InstanceType(self):
        return self._InstanceType

    @InstanceType.setter
    def InstanceType(self, InstanceType):
        self._InstanceType = InstanceType

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId


    def _deserialize(self, params):
        self._InstanceId = params.get("InstanceId")
        self._InstanceRegion = params.get("InstanceRegion")
        self._InstanceType = params.get("InstanceType")
        self._Description = params.get("Description")
        self._RouteTableId = params.get("RouteTableId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CcnInstanceInfo(AbstractModel):
    """云联网实例对象，该对象特用于运营端使用，不建议给租户的接口中提供该复杂类型。

    """


class CcnRegionBandwidthLimit(AbstractModel):
    """云联网（CCN）地域出带宽上限

    """

    def __init__(self):
        r"""
        :param _Region: 地域，例如：ap-guangzhou
        :type Region: str
        :param _BandwidthLimit: 出带宽上限，单位：Mbps
        :type BandwidthLimit: int
        :param _IsBm: 是否黑石地域，默认`false`。
        :type IsBm: bool
        :param _DstRegion: 目的地域，例如：ap-shanghai
注意：此字段可能返回 null，表示取不到有效值。
        :type DstRegion: str
        :param _DstIsBm: 目的地域是否为黑石地域，默认`false`。
        :type DstIsBm: bool
        """
        self._Region = None
        self._BandwidthLimit = None
        self._IsBm = None
        self._DstRegion = None
        self._DstIsBm = None

    @property
    def Region(self):
        return self._Region

    @Region.setter
    def Region(self, Region):
        self._Region = Region

    @property
    def BandwidthLimit(self):
        return self._BandwidthLimit

    @BandwidthLimit.setter
    def BandwidthLimit(self, BandwidthLimit):
        self._BandwidthLimit = BandwidthLimit

    @property
    def IsBm(self):
        return self._IsBm

    @IsBm.setter
    def IsBm(self, IsBm):
        self._IsBm = IsBm

    @property
    def DstRegion(self):
        return self._DstRegion

    @DstRegion.setter
    def DstRegion(self, DstRegion):
        self._DstRegion = DstRegion

    @property
    def DstIsBm(self):
        return self._DstIsBm

    @DstIsBm.setter
    def DstIsBm(self, DstIsBm):
        self._DstIsBm = DstIsBm


    def _deserialize(self, params):
        self._Region = params.get("Region")
        self._BandwidthLimit = params.get("BandwidthLimit")
        self._IsBm = params.get("IsBm")
        self._DstRegion = params.get("DstRegion")
        self._DstIsBm = params.get("DstIsBm")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CcnRegionBandwidthLimitInfo(AbstractModel):
    """云联网（CCN）地域出带宽上限。

    """

    def __init__(self):
        r"""
        :param _SourceRegion: 源地域，例如：ap-shanghai
注意：此字段可能返回 null，表示取不到有效值。
        :type SourceRegion: str
        :param _DestinationRegion: 目的地域， 例如：ap-shanghai
注意：此字段可能返回 null，表示取不到有效值。
        :type DestinationRegion: str
        :param _BandwidthLimit: 出带宽上限，单位：Mbps。
注意：此字段可能返回 null，表示取不到有效值。
        :type BandwidthLimit: int
        """
        self._SourceRegion = None
        self._DestinationRegion = None
        self._BandwidthLimit = None

    @property
    def SourceRegion(self):
        return self._SourceRegion

    @SourceRegion.setter
    def SourceRegion(self, SourceRegion):
        self._SourceRegion = SourceRegion

    @property
    def DestinationRegion(self):
        return self._DestinationRegion

    @DestinationRegion.setter
    def DestinationRegion(self, DestinationRegion):
        self._DestinationRegion = DestinationRegion

    @property
    def BandwidthLimit(self):
        return self._BandwidthLimit

    @BandwidthLimit.setter
    def BandwidthLimit(self, BandwidthLimit):
        self._BandwidthLimit = BandwidthLimit


    def _deserialize(self, params):
        self._SourceRegion = params.get("SourceRegion")
        self._DestinationRegion = params.get("DestinationRegion")
        self._BandwidthLimit = params.get("BandwidthLimit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CcnRoute(AbstractModel):
    """CCN路由策略对象

    """

    def __init__(self):
        r"""
        :param _RouteId: 路由策略ID
        :type RouteId: str
        :param _DestinationCidrBlock: 目的端
        :type DestinationCidrBlock: str
        :param _InstanceType: 下一跳类型（关联实例类型），所有类型：VPC、DIRECTCONNECT
        :type InstanceType: str
        :param _InstanceId: 下一跳（关联实例）
        :type InstanceId: str
        :param _InstanceName: 下一跳名称（关联实例名称）
        :type InstanceName: str
        :param _InstanceRegion: 下一跳所属地域（关联实例所属地域）
        :type InstanceRegion: str
        :param _UpdateTime: 更新时间
        :type UpdateTime: str
        :param _Enabled: 路由是否启用
        :type Enabled: bool
        :param _InstanceUin: 关联实例所属UIN（根账号）
        :type InstanceUin: str
        :param _ExtraState: 路由的扩展状态
        :type ExtraState: str
        :param _IsBgp: 是否动态路由
        :type IsBgp: bool
        :param _RoutePriority: 路由优先级
        :type RoutePriority: int
        :param _InstanceExtraName: 下一跳扩展名称（关联实例的扩展名称）
        :type InstanceExtraName: str
        """
        self._RouteId = None
        self._DestinationCidrBlock = None
        self._InstanceType = None
        self._InstanceId = None
        self._InstanceName = None
        self._InstanceRegion = None
        self._UpdateTime = None
        self._Enabled = None
        self._InstanceUin = None
        self._ExtraState = None
        self._IsBgp = None
        self._RoutePriority = None
        self._InstanceExtraName = None

    @property
    def RouteId(self):
        return self._RouteId

    @RouteId.setter
    def RouteId(self, RouteId):
        self._RouteId = RouteId

    @property
    def DestinationCidrBlock(self):
        return self._DestinationCidrBlock

    @DestinationCidrBlock.setter
    def DestinationCidrBlock(self, DestinationCidrBlock):
        self._DestinationCidrBlock = DestinationCidrBlock

    @property
    def InstanceType(self):
        return self._InstanceType

    @InstanceType.setter
    def InstanceType(self, InstanceType):
        self._InstanceType = InstanceType

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def InstanceName(self):
        return self._InstanceName

    @InstanceName.setter
    def InstanceName(self, InstanceName):
        self._InstanceName = InstanceName

    @property
    def InstanceRegion(self):
        return self._InstanceRegion

    @InstanceRegion.setter
    def InstanceRegion(self, InstanceRegion):
        self._InstanceRegion = InstanceRegion

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def Enabled(self):
        return self._Enabled

    @Enabled.setter
    def Enabled(self, Enabled):
        self._Enabled = Enabled

    @property
    def InstanceUin(self):
        return self._InstanceUin

    @InstanceUin.setter
    def InstanceUin(self, InstanceUin):
        self._InstanceUin = InstanceUin

    @property
    def ExtraState(self):
        return self._ExtraState

    @ExtraState.setter
    def ExtraState(self, ExtraState):
        self._ExtraState = ExtraState

    @property
    def IsBgp(self):
        return self._IsBgp

    @IsBgp.setter
    def IsBgp(self, IsBgp):
        self._IsBgp = IsBgp

    @property
    def RoutePriority(self):
        return self._RoutePriority

    @RoutePriority.setter
    def RoutePriority(self, RoutePriority):
        self._RoutePriority = RoutePriority

    @property
    def InstanceExtraName(self):
        return self._InstanceExtraName

    @InstanceExtraName.setter
    def InstanceExtraName(self, InstanceExtraName):
        self._InstanceExtraName = InstanceExtraName


    def _deserialize(self, params):
        self._RouteId = params.get("RouteId")
        self._DestinationCidrBlock = params.get("DestinationCidrBlock")
        self._InstanceType = params.get("InstanceType")
        self._InstanceId = params.get("InstanceId")
        self._InstanceName = params.get("InstanceName")
        self._InstanceRegion = params.get("InstanceRegion")
        self._UpdateTime = params.get("UpdateTime")
        self._Enabled = params.get("Enabled")
        self._InstanceUin = params.get("InstanceUin")
        self._ExtraState = params.get("ExtraState")
        self._IsBgp = params.get("IsBgp")
        self._RoutePriority = params.get("RoutePriority")
        self._InstanceExtraName = params.get("InstanceExtraName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CheckAssistantCidrRequest(AbstractModel):
    """CheckAssistantCidr请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: `VPC`实例`ID`。形如：`vpc-6v2ht8q5`
        :type VpcId: str
        :param _NewCidrBlocks: 待添加的辅助CIDR。CIDR数组，格式如["10.0.0.0/16", "172.16.0.0/16"]。入参NewCidrBlocks和OldCidrBlocks至少需要其一。
        :type NewCidrBlocks: list of str
        :param _OldCidrBlocks: 待删除的辅助CIDR。CIDR数组，格式如["10.0.0.0/16", "172.16.0.0/16"]。入参NewCidrBlocks和OldCidrBlocks至少需要其一。
        :type OldCidrBlocks: list of str
        """
        self._VpcId = None
        self._NewCidrBlocks = None
        self._OldCidrBlocks = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def NewCidrBlocks(self):
        return self._NewCidrBlocks

    @NewCidrBlocks.setter
    def NewCidrBlocks(self, NewCidrBlocks):
        self._NewCidrBlocks = NewCidrBlocks

    @property
    def OldCidrBlocks(self):
        return self._OldCidrBlocks

    @OldCidrBlocks.setter
    def OldCidrBlocks(self, OldCidrBlocks):
        self._OldCidrBlocks = OldCidrBlocks


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._NewCidrBlocks = params.get("NewCidrBlocks")
        self._OldCidrBlocks = params.get("OldCidrBlocks")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CheckAssistantCidrResponse(AbstractModel):
    """CheckAssistantCidr返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ConflictSourceSet: 冲突资源信息数组。
        :type ConflictSourceSet: list of ConflictSource
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ConflictSourceSet = None
        self._RequestId = None

    @property
    def ConflictSourceSet(self):
        return self._ConflictSourceSet

    @ConflictSourceSet.setter
    def ConflictSourceSet(self, ConflictSourceSet):
        self._ConflictSourceSet = ConflictSourceSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("ConflictSourceSet") is not None:
            self._ConflictSourceSet = []
            for item in params.get("ConflictSourceSet"):
                obj = ConflictSource()
                obj._deserialize(item)
                self._ConflictSourceSet.append(obj)
        self._RequestId = params.get("RequestId")


class CheckDefaultSubnetRequest(AbstractModel):
    """CheckDefaultSubnet请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Zone: 子网所在的可用区ID，不同子网选择不同可用区可以做跨可用区灾备。
        :type Zone: str
        """
        self._Zone = None

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone


    def _deserialize(self, params):
        self._Zone = params.get("Zone")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CheckDefaultSubnetResponse(AbstractModel):
    """CheckDefaultSubnet返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 检查结果。true为可以创建默认子网，false为不可以创建默认子网。
        :type Result: bool
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Result = params.get("Result")
        self._RequestId = params.get("RequestId")


class CheckNetDetectStateRequest(AbstractModel):
    """CheckNetDetectState请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DetectDestinationIp: 探测目的IPv4地址数组，最多两个。
        :type DetectDestinationIp: list of str
        :param _NetDetectId: 网络探测实例ID。形如：netd-12345678。该参数与（VpcId，SubnetId，NetDetectName），至少要有一个。当NetDetectId存在时，使用NetDetectId。
        :type NetDetectId: str
        :param _VpcId: `VPC`实例`ID`。形如：`vpc-12345678`。该参数与（SubnetId，NetDetectName）配合使用，与NetDetectId至少要有一个。当NetDetectId存在时，使用NetDetectId。
        :type VpcId: str
        :param _SubnetId: 子网实例ID。形如：subnet-12345678。该参数与（VpcId，NetDetectName）配合使用，与NetDetectId至少要有一个。当NetDetectId存在时，使用NetDetectId。
        :type SubnetId: str
        :param _NetDetectName: 网络探测名称，最大长度不能超过60个字节。该参数与（VpcId，SubnetId）配合使用，与NetDetectId至少要有一个。当NetDetectId存在时，使用NetDetectId。
        :type NetDetectName: str
        :param _NextHopType: 下一跳类型，目前我们支持的类型有：
VPN：VPN网关；
DIRECTCONNECT：专线网关；
PEERCONNECTION：对等连接；
NAT：NAT网关；
NORMAL_CVM：普通云服务器；
CCN：云联网网关；
NONEXTHOP：无下一跳；
        :type NextHopType: str
        :param _NextHopDestination: 下一跳目的网关，取值与“下一跳类型”相关：
下一跳类型为VPN，取值VPN网关ID，形如：vpngw-12345678；
下一跳类型为DIRECTCONNECT，取值专线网关ID，形如：dcg-12345678；
下一跳类型为PEERCONNECTION，取值对等连接ID，形如：pcx-12345678；
下一跳类型为NAT，取值Nat网关，形如：nat-12345678；
下一跳类型为NORMAL_CVM，取值云服务器IPv4地址，形如：10.0.0.12；
下一跳类型为CCN，取值云联网ID，形如：ccn-12345678；
下一跳类型为NONEXTHOP，指定网络探测为无下一跳的网络探测；
        :type NextHopDestination: str
        """
        self._DetectDestinationIp = None
        self._NetDetectId = None
        self._VpcId = None
        self._SubnetId = None
        self._NetDetectName = None
        self._NextHopType = None
        self._NextHopDestination = None

    @property
    def DetectDestinationIp(self):
        return self._DetectDestinationIp

    @DetectDestinationIp.setter
    def DetectDestinationIp(self, DetectDestinationIp):
        self._DetectDestinationIp = DetectDestinationIp

    @property
    def NetDetectId(self):
        return self._NetDetectId

    @NetDetectId.setter
    def NetDetectId(self, NetDetectId):
        self._NetDetectId = NetDetectId

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def NetDetectName(self):
        return self._NetDetectName

    @NetDetectName.setter
    def NetDetectName(self, NetDetectName):
        self._NetDetectName = NetDetectName

    @property
    def NextHopType(self):
        return self._NextHopType

    @NextHopType.setter
    def NextHopType(self, NextHopType):
        self._NextHopType = NextHopType

    @property
    def NextHopDestination(self):
        return self._NextHopDestination

    @NextHopDestination.setter
    def NextHopDestination(self, NextHopDestination):
        self._NextHopDestination = NextHopDestination


    def _deserialize(self, params):
        self._DetectDestinationIp = params.get("DetectDestinationIp")
        self._NetDetectId = params.get("NetDetectId")
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._NetDetectName = params.get("NetDetectName")
        self._NextHopType = params.get("NextHopType")
        self._NextHopDestination = params.get("NextHopDestination")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CheckNetDetectStateResponse(AbstractModel):
    """CheckNetDetectState返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetDetectIpStateSet: 网络探测验证结果对象数组。
        :type NetDetectIpStateSet: list of NetDetectIpState
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetDetectIpStateSet = None
        self._RequestId = None

    @property
    def NetDetectIpStateSet(self):
        return self._NetDetectIpStateSet

    @NetDetectIpStateSet.setter
    def NetDetectIpStateSet(self, NetDetectIpStateSet):
        self._NetDetectIpStateSet = NetDetectIpStateSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NetDetectIpStateSet") is not None:
            self._NetDetectIpStateSet = []
            for item in params.get("NetDetectIpStateSet"):
                obj = NetDetectIpState()
                obj._deserialize(item)
                self._NetDetectIpStateSet.append(obj)
        self._RequestId = params.get("RequestId")


class CidrForCcn(AbstractModel):
    """用于发布云联网的cidr信息

    """

    def __init__(self):
        r"""
        :param _Cidr: local cidr值。
注意：此字段可能返回 null，表示取不到有效值。
        :type Cidr: str
        :param _PublishedToVbc: 是否发布到了云联网。
注意：此字段可能返回 null，表示取不到有效值。
        :type PublishedToVbc: bool
        """
        self._Cidr = None
        self._PublishedToVbc = None

    @property
    def Cidr(self):
        return self._Cidr

    @Cidr.setter
    def Cidr(self, Cidr):
        self._Cidr = Cidr

    @property
    def PublishedToVbc(self):
        return self._PublishedToVbc

    @PublishedToVbc.setter
    def PublishedToVbc(self, PublishedToVbc):
        self._PublishedToVbc = PublishedToVbc


    def _deserialize(self, params):
        self._Cidr = params.get("Cidr")
        self._PublishedToVbc = params.get("PublishedToVbc")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ClassicLinkInstance(AbstractModel):
    """私有网络和基础网络互通设备

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID
        :type VpcId: str
        :param _InstanceId: 云服务器实例唯一ID
        :type InstanceId: str
        """
        self._VpcId = None
        self._InstanceId = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._InstanceId = params.get("InstanceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloneSecurityGroupRequest(AbstractModel):
    """CloneSecurityGroup请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupId: 安全组实例ID，例如sg-33ocnj9n，可通过<a href="https://cloud.tencent.com/document/product/215/15808">DescribeSecurityGroups</a>获取。
        :type SecurityGroupId: str
        :param _GroupName: 安全组名称，可任意命名，但不得超过60个字符。未提供参数时，克隆后的安全组名称和SecurityGroupId对应的安全组名称相同。
        :type GroupName: str
        :param _GroupDescription: 安全组备注，最多100个字符。未提供参数时，克隆后的安全组备注和SecurityGroupId对应的安全组备注相同。
        :type GroupDescription: str
        :param _ProjectId: 项目ID，默认0。可在<a href="https://console.cloud.tencent.com/project">qcloud控制台项目管理页面</a>查询到。
        :type ProjectId: str
        :param _RemoteRegion: 源Region,跨地域克隆安全组时，需要传入源安全组所属地域信息，例如：克隆广州的安全组到上海，则这里需要传入广州安全的地域信息：ap-guangzhou。
        :type RemoteRegion: str
        """
        self._SecurityGroupId = None
        self._GroupName = None
        self._GroupDescription = None
        self._ProjectId = None
        self._RemoteRegion = None

    @property
    def SecurityGroupId(self):
        return self._SecurityGroupId

    @SecurityGroupId.setter
    def SecurityGroupId(self, SecurityGroupId):
        self._SecurityGroupId = SecurityGroupId

    @property
    def GroupName(self):
        return self._GroupName

    @GroupName.setter
    def GroupName(self, GroupName):
        self._GroupName = GroupName

    @property
    def GroupDescription(self):
        return self._GroupDescription

    @GroupDescription.setter
    def GroupDescription(self, GroupDescription):
        self._GroupDescription = GroupDescription

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def RemoteRegion(self):
        return self._RemoteRegion

    @RemoteRegion.setter
    def RemoteRegion(self, RemoteRegion):
        self._RemoteRegion = RemoteRegion


    def _deserialize(self, params):
        self._SecurityGroupId = params.get("SecurityGroupId")
        self._GroupName = params.get("GroupName")
        self._GroupDescription = params.get("GroupDescription")
        self._ProjectId = params.get("ProjectId")
        self._RemoteRegion = params.get("RemoteRegion")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloneSecurityGroupResponse(AbstractModel):
    """CloneSecurityGroup返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroup: 安全组对象。
注意：此字段可能返回 null，表示取不到有效值。
        :type SecurityGroup: :class:`tencentcloud.vpc.v20170312.models.SecurityGroup`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SecurityGroup = None
        self._RequestId = None

    @property
    def SecurityGroup(self):
        return self._SecurityGroup

    @SecurityGroup.setter
    def SecurityGroup(self, SecurityGroup):
        self._SecurityGroup = SecurityGroup

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("SecurityGroup") is not None:
            self._SecurityGroup = SecurityGroup()
            self._SecurityGroup._deserialize(params.get("SecurityGroup"))
        self._RequestId = params.get("RequestId")


class ConflictItem(AbstractModel):
    """冲突资源条目信息。

    """

    def __init__(self):
        r"""
        :param _ConfilctId: 冲突资源的ID
        :type ConfilctId: str
        :param _DestinationItem: 冲突目的资源
        :type DestinationItem: str
        """
        self._ConfilctId = None
        self._DestinationItem = None

    @property
    def ConfilctId(self):
        return self._ConfilctId

    @ConfilctId.setter
    def ConfilctId(self, ConfilctId):
        self._ConfilctId = ConfilctId

    @property
    def DestinationItem(self):
        return self._DestinationItem

    @DestinationItem.setter
    def DestinationItem(self, DestinationItem):
        self._DestinationItem = DestinationItem


    def _deserialize(self, params):
        self._ConfilctId = params.get("ConfilctId")
        self._DestinationItem = params.get("DestinationItem")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ConflictSource(AbstractModel):
    """冲突资源信息。

    """

    def __init__(self):
        r"""
        :param _ConflictSourceId: 冲突资源ID
        :type ConflictSourceId: str
        :param _SourceItem: 冲突资源
        :type SourceItem: str
        :param _ConflictItemSet: 冲突资源条目信息
        :type ConflictItemSet: list of ConflictItem
        """
        self._ConflictSourceId = None
        self._SourceItem = None
        self._ConflictItemSet = None

    @property
    def ConflictSourceId(self):
        return self._ConflictSourceId

    @ConflictSourceId.setter
    def ConflictSourceId(self, ConflictSourceId):
        self._ConflictSourceId = ConflictSourceId

    @property
    def SourceItem(self):
        return self._SourceItem

    @SourceItem.setter
    def SourceItem(self, SourceItem):
        self._SourceItem = SourceItem

    @property
    def ConflictItemSet(self):
        return self._ConflictItemSet

    @ConflictItemSet.setter
    def ConflictItemSet(self, ConflictItemSet):
        self._ConflictItemSet = ConflictItemSet


    def _deserialize(self, params):
        self._ConflictSourceId = params.get("ConflictSourceId")
        self._SourceItem = params.get("SourceItem")
        if params.get("ConflictItemSet") is not None:
            self._ConflictItemSet = []
            for item in params.get("ConflictItemSet"):
                obj = ConflictItem()
                obj._deserialize(item)
                self._ConflictItemSet.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateAddressTemplateGroupRequest(AbstractModel):
    """CreateAddressTemplateGroup请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressTemplateGroupName: IP地址模板集合名称。
        :type AddressTemplateGroupName: str
        :param _AddressTemplateIds: IP地址模板实例ID，例如：ipm-mdunqeb6。
        :type AddressTemplateIds: list of str
        """
        self._AddressTemplateGroupName = None
        self._AddressTemplateIds = None

    @property
    def AddressTemplateGroupName(self):
        return self._AddressTemplateGroupName

    @AddressTemplateGroupName.setter
    def AddressTemplateGroupName(self, AddressTemplateGroupName):
        self._AddressTemplateGroupName = AddressTemplateGroupName

    @property
    def AddressTemplateIds(self):
        return self._AddressTemplateIds

    @AddressTemplateIds.setter
    def AddressTemplateIds(self, AddressTemplateIds):
        self._AddressTemplateIds = AddressTemplateIds


    def _deserialize(self, params):
        self._AddressTemplateGroupName = params.get("AddressTemplateGroupName")
        self._AddressTemplateIds = params.get("AddressTemplateIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateAddressTemplateGroupResponse(AbstractModel):
    """CreateAddressTemplateGroup返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressTemplateGroup: IP地址模板集合对象。
        :type AddressTemplateGroup: :class:`tencentcloud.vpc.v20170312.models.AddressTemplateGroup`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AddressTemplateGroup = None
        self._RequestId = None

    @property
    def AddressTemplateGroup(self):
        return self._AddressTemplateGroup

    @AddressTemplateGroup.setter
    def AddressTemplateGroup(self, AddressTemplateGroup):
        self._AddressTemplateGroup = AddressTemplateGroup

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("AddressTemplateGroup") is not None:
            self._AddressTemplateGroup = AddressTemplateGroup()
            self._AddressTemplateGroup._deserialize(params.get("AddressTemplateGroup"))
        self._RequestId = params.get("RequestId")


class CreateAddressTemplateRequest(AbstractModel):
    """CreateAddressTemplate请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressTemplateName: IP地址模板名称。
        :type AddressTemplateName: str
        :param _Addresses: 地址信息，支持 IP、CIDR、IP 范围。Addresses与AddressesExtra必填其一。
        :type Addresses: list of str
        :param _AddressesExtra: 地址信息，支持携带备注，支持 IP、CIDR、IP 范围。Addresses与AddressesExtra必填其一。
        :type AddressesExtra: list of AddressInfo
        """
        self._AddressTemplateName = None
        self._Addresses = None
        self._AddressesExtra = None

    @property
    def AddressTemplateName(self):
        return self._AddressTemplateName

    @AddressTemplateName.setter
    def AddressTemplateName(self, AddressTemplateName):
        self._AddressTemplateName = AddressTemplateName

    @property
    def Addresses(self):
        return self._Addresses

    @Addresses.setter
    def Addresses(self, Addresses):
        self._Addresses = Addresses

    @property
    def AddressesExtra(self):
        return self._AddressesExtra

    @AddressesExtra.setter
    def AddressesExtra(self, AddressesExtra):
        self._AddressesExtra = AddressesExtra


    def _deserialize(self, params):
        self._AddressTemplateName = params.get("AddressTemplateName")
        self._Addresses = params.get("Addresses")
        if params.get("AddressesExtra") is not None:
            self._AddressesExtra = []
            for item in params.get("AddressesExtra"):
                obj = AddressInfo()
                obj._deserialize(item)
                self._AddressesExtra.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateAddressTemplateResponse(AbstractModel):
    """CreateAddressTemplate返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressTemplate: IP地址模板对象。
        :type AddressTemplate: :class:`tencentcloud.vpc.v20170312.models.AddressTemplate`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AddressTemplate = None
        self._RequestId = None

    @property
    def AddressTemplate(self):
        return self._AddressTemplate

    @AddressTemplate.setter
    def AddressTemplate(self, AddressTemplate):
        self._AddressTemplate = AddressTemplate

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("AddressTemplate") is not None:
            self._AddressTemplate = AddressTemplate()
            self._AddressTemplate._deserialize(params.get("AddressTemplate"))
        self._RequestId = params.get("RequestId")


class CreateAndAttachNetworkInterfaceRequest(AbstractModel):
    """CreateAndAttachNetworkInterface请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。可通过DescribeVpcs接口返回值中的VpcId获取。
        :type VpcId: str
        :param _NetworkInterfaceName: 弹性网卡名称，最大长度不能超过60个字节。
        :type NetworkInterfaceName: str
        :param _SubnetId: 弹性网卡所在的子网实例ID，例如：subnet-0ap8nwca。
        :type SubnetId: str
        :param _InstanceId: 云服务器实例ID。
        :type InstanceId: str
        :param _PrivateIpAddresses: 指定的内网IP信息，单次最多指定10个。
        :type PrivateIpAddresses: list of PrivateIpAddressSpecification
        :param _SecondaryPrivateIpAddressCount: 新申请的内网IP地址个数，内网IP地址个数总和不能超过配额数。
        :type SecondaryPrivateIpAddressCount: int
        :param _QosLevel: IP服务质量等级，和SecondaryPrivateIpAddressCount配合使用，可选值：PT、AU、AG、DEFAULT，分别代表云金、云银、云铜、默认四个等级。
        :type QosLevel: str
        :param _SecurityGroupIds: 指定绑定的安全组，例如：['sg-1dd51d']。
        :type SecurityGroupIds: list of str
        :param _NetworkInterfaceDescription: 弹性网卡描述，可任意命名，但不得超过60个字符。
        :type NetworkInterfaceDescription: str
        :param _Tags: 指定绑定的标签列表，例如：[{"Key": "city", "Value": "shanghai"}]。
        :type Tags: list of Tag
        :param _AttachType: 绑定类型：0 标准型 1 扩展型。
        :type AttachType: int
        :param _ClientToken: 用于保证请求幂等性的字符串。该字符串由客户生成，需保证不同请求之间唯一，最大值不超过64个ASCII字符。若不指定该参数，则无法保证请求的幂等性。	
        :type ClientToken: str
        """
        self._VpcId = None
        self._NetworkInterfaceName = None
        self._SubnetId = None
        self._InstanceId = None
        self._PrivateIpAddresses = None
        self._SecondaryPrivateIpAddressCount = None
        self._QosLevel = None
        self._SecurityGroupIds = None
        self._NetworkInterfaceDescription = None
        self._Tags = None
        self._AttachType = None
        self._ClientToken = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def NetworkInterfaceName(self):
        return self._NetworkInterfaceName

    @NetworkInterfaceName.setter
    def NetworkInterfaceName(self, NetworkInterfaceName):
        self._NetworkInterfaceName = NetworkInterfaceName

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def PrivateIpAddresses(self):
        return self._PrivateIpAddresses

    @PrivateIpAddresses.setter
    def PrivateIpAddresses(self, PrivateIpAddresses):
        self._PrivateIpAddresses = PrivateIpAddresses

    @property
    def SecondaryPrivateIpAddressCount(self):
        return self._SecondaryPrivateIpAddressCount

    @SecondaryPrivateIpAddressCount.setter
    def SecondaryPrivateIpAddressCount(self, SecondaryPrivateIpAddressCount):
        self._SecondaryPrivateIpAddressCount = SecondaryPrivateIpAddressCount

    @property
    def QosLevel(self):
        return self._QosLevel

    @QosLevel.setter
    def QosLevel(self, QosLevel):
        self._QosLevel = QosLevel

    @property
    def SecurityGroupIds(self):
        return self._SecurityGroupIds

    @SecurityGroupIds.setter
    def SecurityGroupIds(self, SecurityGroupIds):
        self._SecurityGroupIds = SecurityGroupIds

    @property
    def NetworkInterfaceDescription(self):
        return self._NetworkInterfaceDescription

    @NetworkInterfaceDescription.setter
    def NetworkInterfaceDescription(self, NetworkInterfaceDescription):
        self._NetworkInterfaceDescription = NetworkInterfaceDescription

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def AttachType(self):
        return self._AttachType

    @AttachType.setter
    def AttachType(self, AttachType):
        self._AttachType = AttachType

    @property
    def ClientToken(self):
        return self._ClientToken

    @ClientToken.setter
    def ClientToken(self, ClientToken):
        self._ClientToken = ClientToken


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._NetworkInterfaceName = params.get("NetworkInterfaceName")
        self._SubnetId = params.get("SubnetId")
        self._InstanceId = params.get("InstanceId")
        if params.get("PrivateIpAddresses") is not None:
            self._PrivateIpAddresses = []
            for item in params.get("PrivateIpAddresses"):
                obj = PrivateIpAddressSpecification()
                obj._deserialize(item)
                self._PrivateIpAddresses.append(obj)
        self._SecondaryPrivateIpAddressCount = params.get("SecondaryPrivateIpAddressCount")
        self._QosLevel = params.get("QosLevel")
        self._SecurityGroupIds = params.get("SecurityGroupIds")
        self._NetworkInterfaceDescription = params.get("NetworkInterfaceDescription")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self._Tags.append(obj)
        self._AttachType = params.get("AttachType")
        self._ClientToken = params.get("ClientToken")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateAndAttachNetworkInterfaceResponse(AbstractModel):
    """CreateAndAttachNetworkInterface返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterface: 弹性网卡实例。
        :type NetworkInterface: :class:`tencentcloud.vpc.v20170312.models.NetworkInterface`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetworkInterface = None
        self._RequestId = None

    @property
    def NetworkInterface(self):
        return self._NetworkInterface

    @NetworkInterface.setter
    def NetworkInterface(self, NetworkInterface):
        self._NetworkInterface = NetworkInterface

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NetworkInterface") is not None:
            self._NetworkInterface = NetworkInterface()
            self._NetworkInterface._deserialize(params.get("NetworkInterface"))
        self._RequestId = params.get("RequestId")


class CreateAssistantCidrRequest(AbstractModel):
    """CreateAssistantCidr请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: `VPC`实例`ID`。形如：`vpc-6v2ht8q5`
        :type VpcId: str
        :param _CidrBlocks: CIDR数组，格式如["10.0.0.0/16", "172.16.0.0/16"]
        :type CidrBlocks: list of str
        """
        self._VpcId = None
        self._CidrBlocks = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def CidrBlocks(self):
        return self._CidrBlocks

    @CidrBlocks.setter
    def CidrBlocks(self, CidrBlocks):
        self._CidrBlocks = CidrBlocks


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._CidrBlocks = params.get("CidrBlocks")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateAssistantCidrResponse(AbstractModel):
    """CreateAssistantCidr返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AssistantCidrSet: 辅助CIDR数组。
注意：此字段可能返回 null，表示取不到有效值。
        :type AssistantCidrSet: list of AssistantCidr
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AssistantCidrSet = None
        self._RequestId = None

    @property
    def AssistantCidrSet(self):
        return self._AssistantCidrSet

    @AssistantCidrSet.setter
    def AssistantCidrSet(self, AssistantCidrSet):
        self._AssistantCidrSet = AssistantCidrSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("AssistantCidrSet") is not None:
            self._AssistantCidrSet = []
            for item in params.get("AssistantCidrSet"):
                obj = AssistantCidr()
                obj._deserialize(item)
                self._AssistantCidrSet.append(obj)
        self._RequestId = params.get("RequestId")


class CreateBandwidthPackageRequest(AbstractModel):
    """CreateBandwidthPackage请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkType: 带宽包类型, 默认值: BGP, 可选值:
<li>BGP: 普通BGP共享带宽包</li>
<li>HIGH_QUALITY_BGP: 精品BGP共享带宽包</li>
<li>SINGLEISP_CMCC: 中国移动共享带宽包</li>
<li>SINGLEISP_CTCC: 中国电信共享带宽包</li>
<li>SINGLEISP_CUCC: 中国联通共享带宽包</li>
        :type NetworkType: str
        :param _ChargeType: 带宽包计费类型, 默认为: ENHANCED95_POSTPAID_BY_MONTH, 可选值:
<li>TOP5_POSTPAID_BY_MONTH: 按月后付费TOP5计费</li>
<li>PERCENT95_POSTPAID_BY_MONTH: 按月后付费月95计费</li>
<li>FIXED_PREPAID_BY_MONTH: 包月预付费计费</li>
<li>ENHANCED95_POSTPAID_BY_MONTH: 按月后付费增强型95计费</li>
<li>PEAK_BANDWIDTH_POSTPAID_BY_DAY: 后付费日结按带宽计费</li>

        :type ChargeType: str
        :param _BandwidthPackageName: 带宽包名称。
        :type BandwidthPackageName: str
        :param _BandwidthPackageCount: 带宽包数量(传统账户类型只能填1), 标准账户类型取值范围为1~20。
        :type BandwidthPackageCount: int
        :param _InternetMaxBandwidth: 带宽包限速大小。单位：Mbps，-1表示不限速。不同计费类型的带宽包对应不同的带宽上下限。
        :type InternetMaxBandwidth: int
        :param _Tags: 需要关联的标签列表。
        :type Tags: list of Tag
        :param _Protocol: 带宽包协议类型。当前支持'ipv4'和'ipv6'协议带宽包，默认值是'ipv4'。
        :type Protocol: str
        :param _TimeSpan: 预付费包月带宽包的购买时长，单位: 月，取值范围: 1~60。
        :type TimeSpan: int
        :param _Egress: 网络出口，默认值：center_egress1
        :type Egress: str
        """
        self._NetworkType = None
        self._ChargeType = None
        self._BandwidthPackageName = None
        self._BandwidthPackageCount = None
        self._InternetMaxBandwidth = None
        self._Tags = None
        self._Protocol = None
        self._TimeSpan = None
        self._Egress = None

    @property
    def NetworkType(self):
        return self._NetworkType

    @NetworkType.setter
    def NetworkType(self, NetworkType):
        self._NetworkType = NetworkType

    @property
    def ChargeType(self):
        return self._ChargeType

    @ChargeType.setter
    def ChargeType(self, ChargeType):
        self._ChargeType = ChargeType

    @property
    def BandwidthPackageName(self):
        return self._BandwidthPackageName

    @BandwidthPackageName.setter
    def BandwidthPackageName(self, BandwidthPackageName):
        self._BandwidthPackageName = BandwidthPackageName

    @property
    def BandwidthPackageCount(self):
        return self._BandwidthPackageCount

    @BandwidthPackageCount.setter
    def BandwidthPackageCount(self, BandwidthPackageCount):
        self._BandwidthPackageCount = BandwidthPackageCount

    @property
    def InternetMaxBandwidth(self):
        return self._InternetMaxBandwidth

    @InternetMaxBandwidth.setter
    def InternetMaxBandwidth(self, InternetMaxBandwidth):
        self._InternetMaxBandwidth = InternetMaxBandwidth

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def Protocol(self):
        return self._Protocol

    @Protocol.setter
    def Protocol(self, Protocol):
        self._Protocol = Protocol

    @property
    def TimeSpan(self):
        return self._TimeSpan

    @TimeSpan.setter
    def TimeSpan(self, TimeSpan):
        self._TimeSpan = TimeSpan

    @property
    def Egress(self):
        return self._Egress

    @Egress.setter
    def Egress(self, Egress):
        self._Egress = Egress


    def _deserialize(self, params):
        self._NetworkType = params.get("NetworkType")
        self._ChargeType = params.get("ChargeType")
        self._BandwidthPackageName = params.get("BandwidthPackageName")
        self._BandwidthPackageCount = params.get("BandwidthPackageCount")
        self._InternetMaxBandwidth = params.get("InternetMaxBandwidth")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self._Tags.append(obj)
        self._Protocol = params.get("Protocol")
        self._TimeSpan = params.get("TimeSpan")
        self._Egress = params.get("Egress")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateBandwidthPackageResponse(AbstractModel):
    """CreateBandwidthPackage返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BandwidthPackageId: 带宽包唯一ID。
        :type BandwidthPackageId: str
        :param _BandwidthPackageIds: 带宽包唯一ID列表(申请数量大于1时有效)。
        :type BandwidthPackageIds: list of str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BandwidthPackageId = None
        self._BandwidthPackageIds = None
        self._RequestId = None

    @property
    def BandwidthPackageId(self):
        return self._BandwidthPackageId

    @BandwidthPackageId.setter
    def BandwidthPackageId(self, BandwidthPackageId):
        self._BandwidthPackageId = BandwidthPackageId

    @property
    def BandwidthPackageIds(self):
        return self._BandwidthPackageIds

    @BandwidthPackageIds.setter
    def BandwidthPackageIds(self, BandwidthPackageIds):
        self._BandwidthPackageIds = BandwidthPackageIds

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._BandwidthPackageId = params.get("BandwidthPackageId")
        self._BandwidthPackageIds = params.get("BandwidthPackageIds")
        self._RequestId = params.get("RequestId")


class CreateCcnRequest(AbstractModel):
    """CreateCcn请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnName: CCN名称，最大长度不能超过60个字节。
        :type CcnName: str
        :param _CcnDescription: CCN描述信息，最大长度不能超过100个字节。
        :type CcnDescription: str
        :param _QosLevel: CCN服务质量，`PT`：白金，`AU`：金，`AG`：银，默认为`AU`。
        :type QosLevel: str
        :param _InstanceChargeType: 计费模式，`PREPAID`：表示预付费，即包年包月，`POSTPAID`：表示后付费，即按量计费。默认：`POSTPAID`。
        :type InstanceChargeType: str
        :param _BandwidthLimitType: 限速类型，`OUTER_REGION_LIMIT`表示地域出口限速，`INTER_REGION_LIMIT`为地域间限速，默认为`OUTER_REGION_LIMIT`。预付费模式仅支持地域间限速，后付费模式支持地域间限速和地域出口限速。
        :type BandwidthLimitType: str
        :param _Tags: 指定绑定的标签列表，例如：[{"Key": "city", "Value": "shanghai"}]
        :type Tags: list of Tag
        """
        self._CcnName = None
        self._CcnDescription = None
        self._QosLevel = None
        self._InstanceChargeType = None
        self._BandwidthLimitType = None
        self._Tags = None

    @property
    def CcnName(self):
        return self._CcnName

    @CcnName.setter
    def CcnName(self, CcnName):
        self._CcnName = CcnName

    @property
    def CcnDescription(self):
        return self._CcnDescription

    @CcnDescription.setter
    def CcnDescription(self, CcnDescription):
        self._CcnDescription = CcnDescription

    @property
    def QosLevel(self):
        return self._QosLevel

    @QosLevel.setter
    def QosLevel(self, QosLevel):
        self._QosLevel = QosLevel

    @property
    def InstanceChargeType(self):
        return self._InstanceChargeType

    @InstanceChargeType.setter
    def InstanceChargeType(self, InstanceChargeType):
        self._InstanceChargeType = InstanceChargeType

    @property
    def BandwidthLimitType(self):
        return self._BandwidthLimitType

    @BandwidthLimitType.setter
    def BandwidthLimitType(self, BandwidthLimitType):
        self._BandwidthLimitType = BandwidthLimitType

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags


    def _deserialize(self, params):
        self._CcnName = params.get("CcnName")
        self._CcnDescription = params.get("CcnDescription")
        self._QosLevel = params.get("QosLevel")
        self._InstanceChargeType = params.get("InstanceChargeType")
        self._BandwidthLimitType = params.get("BandwidthLimitType")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self._Tags.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateCcnResponse(AbstractModel):
    """CreateCcn返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Ccn: 云联网（CCN）对象。
        :type Ccn: :class:`tencentcloud.vpc.v20170312.models.CCN`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Ccn = None
        self._RequestId = None

    @property
    def Ccn(self):
        return self._Ccn

    @Ccn.setter
    def Ccn(self, Ccn):
        self._Ccn = Ccn

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Ccn") is not None:
            self._Ccn = CCN()
            self._Ccn._deserialize(params.get("Ccn"))
        self._RequestId = params.get("RequestId")


class CreateCustomerGatewayRequest(AbstractModel):
    """CreateCustomerGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CustomerGatewayName: 对端网关名称，可任意命名，但不得超过60个字符。
        :type CustomerGatewayName: str
        :param _IpAddress: 对端网关公网IP。
        :type IpAddress: str
        :param _Tags: 指定绑定的标签列表，例如：[{"Key": "city", "Value": "shanghai"}]
        :type Tags: list of Tag
        :param _BgpAsn: BGP ASN。ASN取值范围为1- 4294967295，其中139341、45090和58835不可用。
        :type BgpAsn: int
        """
        self._CustomerGatewayName = None
        self._IpAddress = None
        self._Tags = None
        self._BgpAsn = None

    @property
    def CustomerGatewayName(self):
        return self._CustomerGatewayName

    @CustomerGatewayName.setter
    def CustomerGatewayName(self, CustomerGatewayName):
        self._CustomerGatewayName = CustomerGatewayName

    @property
    def IpAddress(self):
        return self._IpAddress

    @IpAddress.setter
    def IpAddress(self, IpAddress):
        self._IpAddress = IpAddress

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def BgpAsn(self):
        return self._BgpAsn

    @BgpAsn.setter
    def BgpAsn(self, BgpAsn):
        self._BgpAsn = BgpAsn


    def _deserialize(self, params):
        self._CustomerGatewayName = params.get("CustomerGatewayName")
        self._IpAddress = params.get("IpAddress")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self._Tags.append(obj)
        self._BgpAsn = params.get("BgpAsn")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateCustomerGatewayResponse(AbstractModel):
    """CreateCustomerGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _CustomerGateway: 对端网关对象
        :type CustomerGateway: :class:`tencentcloud.vpc.v20170312.models.CustomerGateway`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._CustomerGateway = None
        self._RequestId = None

    @property
    def CustomerGateway(self):
        return self._CustomerGateway

    @CustomerGateway.setter
    def CustomerGateway(self, CustomerGateway):
        self._CustomerGateway = CustomerGateway

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("CustomerGateway") is not None:
            self._CustomerGateway = CustomerGateway()
            self._CustomerGateway._deserialize(params.get("CustomerGateway"))
        self._RequestId = params.get("RequestId")


class CreateDefaultSecurityGroupRequest(AbstractModel):
    """CreateDefaultSecurityGroup请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ProjectId: 项目ID，默认0。可在qcloud控制台项目管理页面查询到。
        :type ProjectId: str
        """
        self._ProjectId = None

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId


    def _deserialize(self, params):
        self._ProjectId = params.get("ProjectId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateDefaultSecurityGroupResponse(AbstractModel):
    """CreateDefaultSecurityGroup返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroup: 安全组对象。
        :type SecurityGroup: :class:`tencentcloud.vpc.v20170312.models.SecurityGroup`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SecurityGroup = None
        self._RequestId = None

    @property
    def SecurityGroup(self):
        return self._SecurityGroup

    @SecurityGroup.setter
    def SecurityGroup(self, SecurityGroup):
        self._SecurityGroup = SecurityGroup

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("SecurityGroup") is not None:
            self._SecurityGroup = SecurityGroup()
            self._SecurityGroup._deserialize(params.get("SecurityGroup"))
        self._RequestId = params.get("RequestId")


class CreateDefaultVpcRequest(AbstractModel):
    """CreateDefaultVpc请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Zone: 子网所在的可用区，该参数可通过[DescribeZones](https://cloud.tencent.com/document/product/213/15707)接口获取，例如ap-guangzhou-1，不指定时将随机选择可用区。
        :type Zone: str
        :param _Force: 是否强制返回默认VPC。
        :type Force: bool
        """
        self._Zone = None
        self._Force = None

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def Force(self):
        return self._Force

    @Force.setter
    def Force(self, Force):
        self._Force = Force


    def _deserialize(self, params):
        self._Zone = params.get("Zone")
        self._Force = params.get("Force")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateDefaultVpcResponse(AbstractModel):
    """CreateDefaultVpc返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Vpc: 默认VPC和子网ID。
        :type Vpc: :class:`tencentcloud.vpc.v20170312.models.DefaultVpcSubnet`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Vpc = None
        self._RequestId = None

    @property
    def Vpc(self):
        return self._Vpc

    @Vpc.setter
    def Vpc(self, Vpc):
        self._Vpc = Vpc

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Vpc") is not None:
            self._Vpc = DefaultVpcSubnet()
            self._Vpc._deserialize(params.get("Vpc"))
        self._RequestId = params.get("RequestId")


class CreateDhcpIpRequest(AbstractModel):
    """CreateDhcpIp请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: 私有网络`ID`。
        :type VpcId: str
        :param _SubnetId: 子网`ID`。
        :type SubnetId: str
        :param _DhcpIpName: `DhcpIp`名称。
        :type DhcpIpName: str
        :param _SecondaryPrivateIpAddressCount: 新申请的内网IP地址个数。总数不能超过64个，为了兼容性，当前参数必填。
        :type SecondaryPrivateIpAddressCount: int
        """
        self._VpcId = None
        self._SubnetId = None
        self._DhcpIpName = None
        self._SecondaryPrivateIpAddressCount = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def DhcpIpName(self):
        return self._DhcpIpName

    @DhcpIpName.setter
    def DhcpIpName(self, DhcpIpName):
        self._DhcpIpName = DhcpIpName

    @property
    def SecondaryPrivateIpAddressCount(self):
        return self._SecondaryPrivateIpAddressCount

    @SecondaryPrivateIpAddressCount.setter
    def SecondaryPrivateIpAddressCount(self, SecondaryPrivateIpAddressCount):
        self._SecondaryPrivateIpAddressCount = SecondaryPrivateIpAddressCount


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._DhcpIpName = params.get("DhcpIpName")
        self._SecondaryPrivateIpAddressCount = params.get("SecondaryPrivateIpAddressCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateDhcpIpResponse(AbstractModel):
    """CreateDhcpIp返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DhcpIpSet: 新创建的`DhcpIp`信息。
        :type DhcpIpSet: list of DhcpIp
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DhcpIpSet = None
        self._RequestId = None

    @property
    def DhcpIpSet(self):
        return self._DhcpIpSet

    @DhcpIpSet.setter
    def DhcpIpSet(self, DhcpIpSet):
        self._DhcpIpSet = DhcpIpSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("DhcpIpSet") is not None:
            self._DhcpIpSet = []
            for item in params.get("DhcpIpSet"):
                obj = DhcpIp()
                obj._deserialize(item)
                self._DhcpIpSet.append(obj)
        self._RequestId = params.get("RequestId")


class CreateDirectConnectGatewayCcnRoutesRequest(AbstractModel):
    """CreateDirectConnectGatewayCcnRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DirectConnectGatewayId: 专线网关ID，形如：dcg-prpqlmg1
        :type DirectConnectGatewayId: str
        :param _Routes: 需要连通的IDC网段列表
        :type Routes: list of DirectConnectGatewayCcnRoute
        """
        self._DirectConnectGatewayId = None
        self._Routes = None

    @property
    def DirectConnectGatewayId(self):
        return self._DirectConnectGatewayId

    @DirectConnectGatewayId.setter
    def DirectConnectGatewayId(self, DirectConnectGatewayId):
        self._DirectConnectGatewayId = DirectConnectGatewayId

    @property
    def Routes(self):
        return self._Routes

    @Routes.setter
    def Routes(self, Routes):
        self._Routes = Routes


    def _deserialize(self, params):
        self._DirectConnectGatewayId = params.get("DirectConnectGatewayId")
        if params.get("Routes") is not None:
            self._Routes = []
            for item in params.get("Routes"):
                obj = DirectConnectGatewayCcnRoute()
                obj._deserialize(item)
                self._Routes.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateDirectConnectGatewayCcnRoutesResponse(AbstractModel):
    """CreateDirectConnectGatewayCcnRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateDirectConnectGatewayRequest(AbstractModel):
    """CreateDirectConnectGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DirectConnectGatewayName: 专线网关名称
        :type DirectConnectGatewayName: str
        :param _NetworkType: 关联网络类型，可选值：
<li>VPC - 私有网络</li>
<li>CCN - 云联网</li>
        :type NetworkType: str
        :param _NetworkInstanceId: <li>NetworkType 为 VPC 时，这里传值为私有网络实例ID</li>
<li>NetworkType 为 CCN 时，这里传值为云联网实例ID</li>
        :type NetworkInstanceId: str
        :param _GatewayType: 网关类型，可选值：
<li>NORMAL - （默认）标准型，注：云联网只支持标准型</li>
<li>NAT - NAT型</li>NAT类型支持网络地址转换配置，类型确定后不能修改；一个私有网络可以创建一个NAT类型的专线网关和一个非NAT类型的专线网关
        :type GatewayType: str
        :param _ModeType: 云联网路由发布模式，可选值：`standard`（标准模式）、`exquisite`（精细模式）。只有云联网类型专线网关才支持`ModeType`。
        :type ModeType: str
        :param _Zone: 专线网关可用区
        :type Zone: str
        :param _HaZoneGroupId: 专线网关高可用区容灾组ID
        :type HaZoneGroupId: str
        """
        self._DirectConnectGatewayName = None
        self._NetworkType = None
        self._NetworkInstanceId = None
        self._GatewayType = None
        self._ModeType = None
        self._Zone = None
        self._HaZoneGroupId = None

    @property
    def DirectConnectGatewayName(self):
        return self._DirectConnectGatewayName

    @DirectConnectGatewayName.setter
    def DirectConnectGatewayName(self, DirectConnectGatewayName):
        self._DirectConnectGatewayName = DirectConnectGatewayName

    @property
    def NetworkType(self):
        return self._NetworkType

    @NetworkType.setter
    def NetworkType(self, NetworkType):
        self._NetworkType = NetworkType

    @property
    def NetworkInstanceId(self):
        return self._NetworkInstanceId

    @NetworkInstanceId.setter
    def NetworkInstanceId(self, NetworkInstanceId):
        self._NetworkInstanceId = NetworkInstanceId

    @property
    def GatewayType(self):
        return self._GatewayType

    @GatewayType.setter
    def GatewayType(self, GatewayType):
        self._GatewayType = GatewayType

    @property
    def ModeType(self):
        return self._ModeType

    @ModeType.setter
    def ModeType(self, ModeType):
        self._ModeType = ModeType

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def HaZoneGroupId(self):
        return self._HaZoneGroupId

    @HaZoneGroupId.setter
    def HaZoneGroupId(self, HaZoneGroupId):
        self._HaZoneGroupId = HaZoneGroupId


    def _deserialize(self, params):
        self._DirectConnectGatewayName = params.get("DirectConnectGatewayName")
        self._NetworkType = params.get("NetworkType")
        self._NetworkInstanceId = params.get("NetworkInstanceId")
        self._GatewayType = params.get("GatewayType")
        self._ModeType = params.get("ModeType")
        self._Zone = params.get("Zone")
        self._HaZoneGroupId = params.get("HaZoneGroupId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateDirectConnectGatewayResponse(AbstractModel):
    """CreateDirectConnectGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DirectConnectGateway: 专线网关对象。
        :type DirectConnectGateway: :class:`tencentcloud.vpc.v20170312.models.DirectConnectGateway`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DirectConnectGateway = None
        self._RequestId = None

    @property
    def DirectConnectGateway(self):
        return self._DirectConnectGateway

    @DirectConnectGateway.setter
    def DirectConnectGateway(self, DirectConnectGateway):
        self._DirectConnectGateway = DirectConnectGateway

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("DirectConnectGateway") is not None:
            self._DirectConnectGateway = DirectConnectGateway()
            self._DirectConnectGateway._deserialize(params.get("DirectConnectGateway"))
        self._RequestId = params.get("RequestId")


class CreateFlowLogRequest(AbstractModel):
    """CreateFlowLog请求参数结构体

    """

    def __init__(self):
        r"""
        :param _FlowLogName: 流日志实例名字。
        :type FlowLogName: str
        :param _ResourceType: 流日志所属资源类型，VPC|SUBNET|NETWORKINTERFACE|CCN|NAT|DCG。
        :type ResourceType: str
        :param _ResourceId: 资源唯一ID。
        :type ResourceId: str
        :param _TrafficType: 流日志采集类型，ACCEPT|REJECT|ALL。
        :type TrafficType: str
        :param _VpcId: 私用网络ID或者统一ID，建议使用统一ID，当ResourceType为CCN时不填，其他类型必填。
        :type VpcId: str
        :param _FlowLogDescription: 流日志实例描述。
        :type FlowLogDescription: str
        :param _CloudLogId: 流日志存储ID。
        :type CloudLogId: str
        :param _Tags: 指定绑定的标签列表，例如：[{"Key": "city", "Value": "shanghai"}]。
        :type Tags: list of Tag
        :param _StorageType: 消费端类型：cls、ckafka。默认值cls。
        :type StorageType: str
        :param _FlowLogStorage: 流日志消费端信息，当消费端类型为ckafka时，必填。
        :type FlowLogStorage: :class:`tencentcloud.vpc.v20170312.models.FlowLogStorage`
        :param _CloudLogRegion: 流日志存储ID对应的地域，不传递默认为本地域。
        :type CloudLogRegion: str
        """
        self._FlowLogName = None
        self._ResourceType = None
        self._ResourceId = None
        self._TrafficType = None
        self._VpcId = None
        self._FlowLogDescription = None
        self._CloudLogId = None
        self._Tags = None
        self._StorageType = None
        self._FlowLogStorage = None
        self._CloudLogRegion = None

    @property
    def FlowLogName(self):
        return self._FlowLogName

    @FlowLogName.setter
    def FlowLogName(self, FlowLogName):
        self._FlowLogName = FlowLogName

    @property
    def ResourceType(self):
        return self._ResourceType

    @ResourceType.setter
    def ResourceType(self, ResourceType):
        self._ResourceType = ResourceType

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def TrafficType(self):
        return self._TrafficType

    @TrafficType.setter
    def TrafficType(self, TrafficType):
        self._TrafficType = TrafficType

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def FlowLogDescription(self):
        return self._FlowLogDescription

    @FlowLogDescription.setter
    def FlowLogDescription(self, FlowLogDescription):
        self._FlowLogDescription = FlowLogDescription

    @property
    def CloudLogId(self):
        return self._CloudLogId

    @CloudLogId.setter
    def CloudLogId(self, CloudLogId):
        self._CloudLogId = CloudLogId

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def StorageType(self):
        return self._StorageType

    @StorageType.setter
    def StorageType(self, StorageType):
        self._StorageType = StorageType

    @property
    def FlowLogStorage(self):
        return self._FlowLogStorage

    @FlowLogStorage.setter
    def FlowLogStorage(self, FlowLogStorage):
        self._FlowLogStorage = FlowLogStorage

    @property
    def CloudLogRegion(self):
        return self._CloudLogRegion

    @CloudLogRegion.setter
    def CloudLogRegion(self, CloudLogRegion):
        self._CloudLogRegion = CloudLogRegion


    def _deserialize(self, params):
        self._FlowLogName = params.get("FlowLogName")
        self._ResourceType = params.get("ResourceType")
        self._ResourceId = params.get("ResourceId")
        self._TrafficType = params.get("TrafficType")
        self._VpcId = params.get("VpcId")
        self._FlowLogDescription = params.get("FlowLogDescription")
        self._CloudLogId = params.get("CloudLogId")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self._Tags.append(obj)
        self._StorageType = params.get("StorageType")
        if params.get("FlowLogStorage") is not None:
            self._FlowLogStorage = FlowLogStorage()
            self._FlowLogStorage._deserialize(params.get("FlowLogStorage"))
        self._CloudLogRegion = params.get("CloudLogRegion")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateFlowLogResponse(AbstractModel):
    """CreateFlowLog返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FlowLog: 创建的流日志信息。
        :type FlowLog: list of FlowLog
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FlowLog = None
        self._RequestId = None

    @property
    def FlowLog(self):
        return self._FlowLog

    @FlowLog.setter
    def FlowLog(self, FlowLog):
        self._FlowLog = FlowLog

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("FlowLog") is not None:
            self._FlowLog = []
            for item in params.get("FlowLog"):
                obj = FlowLog()
                obj._deserialize(item)
                self._FlowLog.append(obj)
        self._RequestId = params.get("RequestId")


class CreateHaVipRequest(AbstractModel):
    """CreateHaVip请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: `HAVIP`所在私有网络`ID`。
        :type VpcId: str
        :param _SubnetId: `HAVIP`所在子网`ID`。
        :type SubnetId: str
        :param _HaVipName: `HAVIP`名称。
        :type HaVipName: str
        :param _Vip: 指定虚拟IP地址，必须在`VPC`网段内且未被占用。不指定则自动分配。
        :type Vip: str
        :param _NetworkInterfaceId: `HAVIP`所在弹性网卡`ID`。
        :type NetworkInterfaceId: str
        """
        self._VpcId = None
        self._SubnetId = None
        self._HaVipName = None
        self._Vip = None
        self._NetworkInterfaceId = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def HaVipName(self):
        return self._HaVipName

    @HaVipName.setter
    def HaVipName(self, HaVipName):
        self._HaVipName = HaVipName

    @property
    def Vip(self):
        return self._Vip

    @Vip.setter
    def Vip(self, Vip):
        self._Vip = Vip

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._HaVipName = params.get("HaVipName")
        self._Vip = params.get("Vip")
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateHaVipResponse(AbstractModel):
    """CreateHaVip返回参数结构体

    """

    def __init__(self):
        r"""
        :param _HaVip: `HAVIP`对象。
        :type HaVip: :class:`tencentcloud.vpc.v20170312.models.HaVip`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._HaVip = None
        self._RequestId = None

    @property
    def HaVip(self):
        return self._HaVip

    @HaVip.setter
    def HaVip(self, HaVip):
        self._HaVip = HaVip

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("HaVip") is not None:
            self._HaVip = HaVip()
            self._HaVip._deserialize(params.get("HaVip"))
        self._RequestId = params.get("RequestId")


class CreateIp6TranslatorsRequest(AbstractModel):
    """CreateIp6Translators请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip6TranslatorName: 转换实例名称
        :type Ip6TranslatorName: str
        :param _Ip6TranslatorCount: 创建转换实例数量，默认是1个
        :type Ip6TranslatorCount: int
        :param _Ip6InternetServiceProvider: 转换实例运营商属性，可取"CMCC","CTCC","CUCC","BGP"
        :type Ip6InternetServiceProvider: str
        """
        self._Ip6TranslatorName = None
        self._Ip6TranslatorCount = None
        self._Ip6InternetServiceProvider = None

    @property
    def Ip6TranslatorName(self):
        return self._Ip6TranslatorName

    @Ip6TranslatorName.setter
    def Ip6TranslatorName(self, Ip6TranslatorName):
        self._Ip6TranslatorName = Ip6TranslatorName

    @property
    def Ip6TranslatorCount(self):
        return self._Ip6TranslatorCount

    @Ip6TranslatorCount.setter
    def Ip6TranslatorCount(self, Ip6TranslatorCount):
        self._Ip6TranslatorCount = Ip6TranslatorCount

    @property
    def Ip6InternetServiceProvider(self):
        return self._Ip6InternetServiceProvider

    @Ip6InternetServiceProvider.setter
    def Ip6InternetServiceProvider(self, Ip6InternetServiceProvider):
        self._Ip6InternetServiceProvider = Ip6InternetServiceProvider


    def _deserialize(self, params):
        self._Ip6TranslatorName = params.get("Ip6TranslatorName")
        self._Ip6TranslatorCount = params.get("Ip6TranslatorCount")
        self._Ip6InternetServiceProvider = params.get("Ip6InternetServiceProvider")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateIp6TranslatorsResponse(AbstractModel):
    """CreateIp6Translators返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip6TranslatorSet: 转换实例的唯一ID数组，形如"ip6-xxxxxxxx"
        :type Ip6TranslatorSet: list of str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Ip6TranslatorSet = None
        self._RequestId = None

    @property
    def Ip6TranslatorSet(self):
        return self._Ip6TranslatorSet

    @Ip6TranslatorSet.setter
    def Ip6TranslatorSet(self, Ip6TranslatorSet):
        self._Ip6TranslatorSet = Ip6TranslatorSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Ip6TranslatorSet = params.get("Ip6TranslatorSet")
        self._RequestId = params.get("RequestId")


class CreateLocalGatewayRequest(AbstractModel):
    """CreateLocalGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _LocalGatewayName: 本地网关名称。
        :type LocalGatewayName: str
        :param _VpcId: VPC实例ID。
        :type VpcId: str
        :param _CdcId: CDC实例ID。
        :type CdcId: str
        """
        self._LocalGatewayName = None
        self._VpcId = None
        self._CdcId = None

    @property
    def LocalGatewayName(self):
        return self._LocalGatewayName

    @LocalGatewayName.setter
    def LocalGatewayName(self, LocalGatewayName):
        self._LocalGatewayName = LocalGatewayName

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def CdcId(self):
        return self._CdcId

    @CdcId.setter
    def CdcId(self, CdcId):
        self._CdcId = CdcId


    def _deserialize(self, params):
        self._LocalGatewayName = params.get("LocalGatewayName")
        self._VpcId = params.get("VpcId")
        self._CdcId = params.get("CdcId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateLocalGatewayResponse(AbstractModel):
    """CreateLocalGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _LocalGateway: 本地网关信息。
        :type LocalGateway: :class:`tencentcloud.vpc.v20170312.models.LocalGateway`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._LocalGateway = None
        self._RequestId = None

    @property
    def LocalGateway(self):
        return self._LocalGateway

    @LocalGateway.setter
    def LocalGateway(self, LocalGateway):
        self._LocalGateway = LocalGateway

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("LocalGateway") is not None:
            self._LocalGateway = LocalGateway()
            self._LocalGateway._deserialize(params.get("LocalGateway"))
        self._RequestId = params.get("RequestId")


class CreateNatGatewayDestinationIpPortTranslationNatRuleRequest(AbstractModel):
    """CreateNatGatewayDestinationIpPortTranslationNatRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayId: NAT网关的ID，形如：`nat-df45454`。
        :type NatGatewayId: str
        :param _DestinationIpPortTranslationNatRules: NAT网关的端口转换规则。
        :type DestinationIpPortTranslationNatRules: list of DestinationIpPortTranslationNatRule
        """
        self._NatGatewayId = None
        self._DestinationIpPortTranslationNatRules = None

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def DestinationIpPortTranslationNatRules(self):
        return self._DestinationIpPortTranslationNatRules

    @DestinationIpPortTranslationNatRules.setter
    def DestinationIpPortTranslationNatRules(self, DestinationIpPortTranslationNatRules):
        self._DestinationIpPortTranslationNatRules = DestinationIpPortTranslationNatRules


    def _deserialize(self, params):
        self._NatGatewayId = params.get("NatGatewayId")
        if params.get("DestinationIpPortTranslationNatRules") is not None:
            self._DestinationIpPortTranslationNatRules = []
            for item in params.get("DestinationIpPortTranslationNatRules"):
                obj = DestinationIpPortTranslationNatRule()
                obj._deserialize(item)
                self._DestinationIpPortTranslationNatRules.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateNatGatewayDestinationIpPortTranslationNatRuleResponse(AbstractModel):
    """CreateNatGatewayDestinationIpPortTranslationNatRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateNatGatewayRequest(AbstractModel):
    """CreateNatGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayName: NAT网关名称
        :type NatGatewayName: str
        :param _VpcId: VPC实例ID。可通过DescribeVpcs接口返回值中的VpcId获取。
        :type VpcId: str
        :param _InternetMaxBandwidthOut: NAT网关最大外网出带宽(单位:Mbps)，支持的参数值：`20, 50, 100, 200, 500, 1000, 2000, 5000`，默认: `100Mbps`。
        :type InternetMaxBandwidthOut: int
        :param _MaxConcurrentConnection: NAT网关并发连接上限，支持参数值：`1000000、3000000、10000000`，默认值为`100000`。
        :type MaxConcurrentConnection: int
        :param _AddressCount: 需要申请的弹性IP个数，系统会按您的要求生产N个弹性IP，其中AddressCount和PublicAddresses至少传递一个。
        :type AddressCount: int
        :param _PublicIpAddresses: 绑定NAT网关的弹性IP数组，其中AddressCount和PublicAddresses至少传递一个。
        :type PublicIpAddresses: list of str
        :param _Zone: 可用区，形如：`ap-guangzhou-1`。
        :type Zone: str
        :param _Tags: 指定绑定的标签列表，例如：[{"Key": "city", "Value": "shanghai"}]
        :type Tags: list of Tag
        :param _SubnetId: NAT网关所属子网
        :type SubnetId: str
        :param _StockPublicIpAddressesBandwidthOut: 绑定NAT网关的弹性IP带宽大小（单位Mbps），默认为当前用户类型所能使用的最大值。
        :type StockPublicIpAddressesBandwidthOut: int
        :param _PublicIpAddressesBandwidthOut: 需要申请公网IP带宽大小（单位Mbps），默认为当前用户类型所能使用的最大值。
        :type PublicIpAddressesBandwidthOut: int
        :param _PublicIpFromSameZone: 公网IP是否强制与NAT网关来自同可用区，true表示需要与NAT网关同可用区；false表示可与NAT网关不是同一个可用区。此参数只有当参数Zone存在时才能生效。
        :type PublicIpFromSameZone: bool
        :param _NatProductVersion: NAT网关大版本号，1是传统型，2是标准型，默认是1
        :type NatProductVersion: int
        """
        self._NatGatewayName = None
        self._VpcId = None
        self._InternetMaxBandwidthOut = None
        self._MaxConcurrentConnection = None
        self._AddressCount = None
        self._PublicIpAddresses = None
        self._Zone = None
        self._Tags = None
        self._SubnetId = None
        self._StockPublicIpAddressesBandwidthOut = None
        self._PublicIpAddressesBandwidthOut = None
        self._PublicIpFromSameZone = None
        self._NatProductVersion = None

    @property
    def NatGatewayName(self):
        return self._NatGatewayName

    @NatGatewayName.setter
    def NatGatewayName(self, NatGatewayName):
        self._NatGatewayName = NatGatewayName

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def InternetMaxBandwidthOut(self):
        return self._InternetMaxBandwidthOut

    @InternetMaxBandwidthOut.setter
    def InternetMaxBandwidthOut(self, InternetMaxBandwidthOut):
        self._InternetMaxBandwidthOut = InternetMaxBandwidthOut

    @property
    def MaxConcurrentConnection(self):
        return self._MaxConcurrentConnection

    @MaxConcurrentConnection.setter
    def MaxConcurrentConnection(self, MaxConcurrentConnection):
        self._MaxConcurrentConnection = MaxConcurrentConnection

    @property
    def AddressCount(self):
        return self._AddressCount

    @AddressCount.setter
    def AddressCount(self, AddressCount):
        self._AddressCount = AddressCount

    @property
    def PublicIpAddresses(self):
        return self._PublicIpAddresses

    @PublicIpAddresses.setter
    def PublicIpAddresses(self, PublicIpAddresses):
        self._PublicIpAddresses = PublicIpAddresses

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def StockPublicIpAddressesBandwidthOut(self):
        return self._StockPublicIpAddressesBandwidthOut

    @StockPublicIpAddressesBandwidthOut.setter
    def StockPublicIpAddressesBandwidthOut(self, StockPublicIpAddressesBandwidthOut):
        self._StockPublicIpAddressesBandwidthOut = StockPublicIpAddressesBandwidthOut

    @property
    def PublicIpAddressesBandwidthOut(self):
        return self._PublicIpAddressesBandwidthOut

    @PublicIpAddressesBandwidthOut.setter
    def PublicIpAddressesBandwidthOut(self, PublicIpAddressesBandwidthOut):
        self._PublicIpAddressesBandwidthOut = PublicIpAddressesBandwidthOut

    @property
    def PublicIpFromSameZone(self):
        return self._PublicIpFromSameZone

    @PublicIpFromSameZone.setter
    def PublicIpFromSameZone(self, PublicIpFromSameZone):
        self._PublicIpFromSameZone = PublicIpFromSameZone

    @property
    def NatProductVersion(self):
        return self._NatProductVersion

    @NatProductVersion.setter
    def NatProductVersion(self, NatProductVersion):
        self._NatProductVersion = NatProductVersion


    def _deserialize(self, params):
        self._NatGatewayName = params.get("NatGatewayName")
        self._VpcId = params.get("VpcId")
        self._InternetMaxBandwidthOut = params.get("InternetMaxBandwidthOut")
        self._MaxConcurrentConnection = params.get("MaxConcurrentConnection")
        self._AddressCount = params.get("AddressCount")
        self._PublicIpAddresses = params.get("PublicIpAddresses")
        self._Zone = params.get("Zone")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self._Tags.append(obj)
        self._SubnetId = params.get("SubnetId")
        self._StockPublicIpAddressesBandwidthOut = params.get("StockPublicIpAddressesBandwidthOut")
        self._PublicIpAddressesBandwidthOut = params.get("PublicIpAddressesBandwidthOut")
        self._PublicIpFromSameZone = params.get("PublicIpFromSameZone")
        self._NatProductVersion = params.get("NatProductVersion")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateNatGatewayResponse(AbstractModel):
    """CreateNatGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewaySet: NAT网关对象数组。
        :type NatGatewaySet: list of NatGateway
        :param _TotalCount: 符合条件的 NAT网关对象数量。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NatGatewaySet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def NatGatewaySet(self):
        return self._NatGatewaySet

    @NatGatewaySet.setter
    def NatGatewaySet(self, NatGatewaySet):
        self._NatGatewaySet = NatGatewaySet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NatGatewaySet") is not None:
            self._NatGatewaySet = []
            for item in params.get("NatGatewaySet"):
                obj = NatGateway()
                obj._deserialize(item)
                self._NatGatewaySet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class CreateNatGatewaySourceIpTranslationNatRuleRequest(AbstractModel):
    """CreateNatGatewaySourceIpTranslationNatRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayId: NAT网关的ID，形如："nat-df45454"
        :type NatGatewayId: str
        :param _SourceIpTranslationNatRules: NAT网关的SNAT转换规则
        :type SourceIpTranslationNatRules: list of SourceIpTranslationNatRule
        """
        self._NatGatewayId = None
        self._SourceIpTranslationNatRules = None

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def SourceIpTranslationNatRules(self):
        return self._SourceIpTranslationNatRules

    @SourceIpTranslationNatRules.setter
    def SourceIpTranslationNatRules(self, SourceIpTranslationNatRules):
        self._SourceIpTranslationNatRules = SourceIpTranslationNatRules


    def _deserialize(self, params):
        self._NatGatewayId = params.get("NatGatewayId")
        if params.get("SourceIpTranslationNatRules") is not None:
            self._SourceIpTranslationNatRules = []
            for item in params.get("SourceIpTranslationNatRules"):
                obj = SourceIpTranslationNatRule()
                obj._deserialize(item)
                self._SourceIpTranslationNatRules.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateNatGatewaySourceIpTranslationNatRuleResponse(AbstractModel):
    """CreateNatGatewaySourceIpTranslationNatRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateNetDetectRequest(AbstractModel):
    """CreateNetDetect请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: `VPC`实例`ID`。形如：`vpc-12345678`。
        :type VpcId: str
        :param _SubnetId: 子网实例ID。形如：subnet-12345678。
        :type SubnetId: str
        :param _NetDetectName: 网络探测名称，最大长度不能超过60个字节。
        :type NetDetectName: str
        :param _DetectDestinationIp: 探测目的IPv4地址数组。最多两个。
        :type DetectDestinationIp: list of str
        :param _NextHopType: 下一跳类型，目前我们支持的类型有：
VPN：VPN网关；
DIRECTCONNECT：专线网关；
PEERCONNECTION：对等连接；
NAT：NAT网关；
NORMAL_CVM：普通云服务器；
CCN：云联网网关；
NONEXTHOP：无下一跳；
        :type NextHopType: str
        :param _NextHopDestination: 下一跳目的网关，取值与“下一跳类型”相关：
下一跳类型为VPN，取值VPN网关ID，形如：vpngw-12345678；
下一跳类型为DIRECTCONNECT，取值专线网关ID，形如：dcg-12345678；
下一跳类型为PEERCONNECTION，取值对等连接ID，形如：pcx-12345678；
下一跳类型为NAT，取值Nat网关，形如：nat-12345678；
下一跳类型为NORMAL_CVM，取值云服务器IPv4地址，形如：10.0.0.12；
下一跳类型为CCN，取值云联网ID，形如：ccn-12345678；
下一跳类型为NONEXTHOP，指定网络探测为无下一跳的网络探测；
        :type NextHopDestination: str
        :param _NetDetectDescription: 网络探测描述。
        :type NetDetectDescription: str
        """
        self._VpcId = None
        self._SubnetId = None
        self._NetDetectName = None
        self._DetectDestinationIp = None
        self._NextHopType = None
        self._NextHopDestination = None
        self._NetDetectDescription = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def NetDetectName(self):
        return self._NetDetectName

    @NetDetectName.setter
    def NetDetectName(self, NetDetectName):
        self._NetDetectName = NetDetectName

    @property
    def DetectDestinationIp(self):
        return self._DetectDestinationIp

    @DetectDestinationIp.setter
    def DetectDestinationIp(self, DetectDestinationIp):
        self._DetectDestinationIp = DetectDestinationIp

    @property
    def NextHopType(self):
        return self._NextHopType

    @NextHopType.setter
    def NextHopType(self, NextHopType):
        self._NextHopType = NextHopType

    @property
    def NextHopDestination(self):
        return self._NextHopDestination

    @NextHopDestination.setter
    def NextHopDestination(self, NextHopDestination):
        self._NextHopDestination = NextHopDestination

    @property
    def NetDetectDescription(self):
        return self._NetDetectDescription

    @NetDetectDescription.setter
    def NetDetectDescription(self, NetDetectDescription):
        self._NetDetectDescription = NetDetectDescription


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._NetDetectName = params.get("NetDetectName")
        self._DetectDestinationIp = params.get("DetectDestinationIp")
        self._NextHopType = params.get("NextHopType")
        self._NextHopDestination = params.get("NextHopDestination")
        self._NetDetectDescription = params.get("NetDetectDescription")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateNetDetectResponse(AbstractModel):
    """CreateNetDetect返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetDetect: 网络探测（NetDetect）对象。
        :type NetDetect: :class:`tencentcloud.vpc.v20170312.models.NetDetect`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetDetect = None
        self._RequestId = None

    @property
    def NetDetect(self):
        return self._NetDetect

    @NetDetect.setter
    def NetDetect(self, NetDetect):
        self._NetDetect = NetDetect

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NetDetect") is not None:
            self._NetDetect = NetDetect()
            self._NetDetect._deserialize(params.get("NetDetect"))
        self._RequestId = params.get("RequestId")


class CreateNetworkAclEntriesRequest(AbstractModel):
    """CreateNetworkAclEntries请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkAclId: 网络ACL实例ID。例如：acl-12345678。
        :type NetworkAclId: str
        :param _NetworkAclEntrySet: 网络三元组ACL规则集。
        :type NetworkAclEntrySet: :class:`tencentcloud.vpc.v20170312.models.NetworkAclEntrySet`
        """
        self._NetworkAclId = None
        self._NetworkAclEntrySet = None

    @property
    def NetworkAclId(self):
        return self._NetworkAclId

    @NetworkAclId.setter
    def NetworkAclId(self, NetworkAclId):
        self._NetworkAclId = NetworkAclId

    @property
    def NetworkAclEntrySet(self):
        return self._NetworkAclEntrySet

    @NetworkAclEntrySet.setter
    def NetworkAclEntrySet(self, NetworkAclEntrySet):
        self._NetworkAclEntrySet = NetworkAclEntrySet


    def _deserialize(self, params):
        self._NetworkAclId = params.get("NetworkAclId")
        if params.get("NetworkAclEntrySet") is not None:
            self._NetworkAclEntrySet = NetworkAclEntrySet()
            self._NetworkAclEntrySet._deserialize(params.get("NetworkAclEntrySet"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateNetworkAclEntriesResponse(AbstractModel):
    """CreateNetworkAclEntries返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateNetworkAclQuintupleEntriesRequest(AbstractModel):
    """CreateNetworkAclQuintupleEntries请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkAclId: 网络ACL实例ID。例如：acl-12345678。
        :type NetworkAclId: str
        :param _NetworkAclQuintupleSet: 网络五元组ACL规则集。
        :type NetworkAclQuintupleSet: :class:`tencentcloud.vpc.v20170312.models.NetworkAclQuintupleEntries`
        """
        self._NetworkAclId = None
        self._NetworkAclQuintupleSet = None

    @property
    def NetworkAclId(self):
        return self._NetworkAclId

    @NetworkAclId.setter
    def NetworkAclId(self, NetworkAclId):
        self._NetworkAclId = NetworkAclId

    @property
    def NetworkAclQuintupleSet(self):
        return self._NetworkAclQuintupleSet

    @NetworkAclQuintupleSet.setter
    def NetworkAclQuintupleSet(self, NetworkAclQuintupleSet):
        self._NetworkAclQuintupleSet = NetworkAclQuintupleSet


    def _deserialize(self, params):
        self._NetworkAclId = params.get("NetworkAclId")
        if params.get("NetworkAclQuintupleSet") is not None:
            self._NetworkAclQuintupleSet = NetworkAclQuintupleEntries()
            self._NetworkAclQuintupleSet._deserialize(params.get("NetworkAclQuintupleSet"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateNetworkAclQuintupleEntriesResponse(AbstractModel):
    """CreateNetworkAclQuintupleEntries返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateNetworkAclRequest(AbstractModel):
    """CreateNetworkAcl请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。可通过<a href="https://cloud.tencent.com/document/product/215/15778">DescribeVpcs</a>接口返回值中的VpcId获取。
        :type VpcId: str
        :param _NetworkAclName: 网络ACL名称，最大长度不能超过60个字节。
        :type NetworkAclName: str
        :param _NetworkAclType: 网络ACL类型，三元组(TRIPLE)或五元组(QUINTUPLE)。默认值三元组(TRIPLE)。
        :type NetworkAclType: str
        :param _Tags: 指定绑定的标签列表，例如：[{"Key": "city", "Value": "shanghai"}]。
        :type Tags: list of Tag
        """
        self._VpcId = None
        self._NetworkAclName = None
        self._NetworkAclType = None
        self._Tags = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def NetworkAclName(self):
        return self._NetworkAclName

    @NetworkAclName.setter
    def NetworkAclName(self, NetworkAclName):
        self._NetworkAclName = NetworkAclName

    @property
    def NetworkAclType(self):
        return self._NetworkAclType

    @NetworkAclType.setter
    def NetworkAclType(self, NetworkAclType):
        self._NetworkAclType = NetworkAclType

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._NetworkAclName = params.get("NetworkAclName")
        self._NetworkAclType = params.get("NetworkAclType")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self._Tags.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateNetworkAclResponse(AbstractModel):
    """CreateNetworkAcl返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkAcl: 网络ACL实例。
        :type NetworkAcl: :class:`tencentcloud.vpc.v20170312.models.NetworkAcl`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetworkAcl = None
        self._RequestId = None

    @property
    def NetworkAcl(self):
        return self._NetworkAcl

    @NetworkAcl.setter
    def NetworkAcl(self, NetworkAcl):
        self._NetworkAcl = NetworkAcl

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NetworkAcl") is not None:
            self._NetworkAcl = NetworkAcl()
            self._NetworkAcl._deserialize(params.get("NetworkAcl"))
        self._RequestId = params.get("RequestId")


class CreateNetworkInterfaceRequest(AbstractModel):
    """CreateNetworkInterface请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。可通过DescribeVpcs接口返回值中的VpcId获取。
        :type VpcId: str
        :param _NetworkInterfaceName: 弹性网卡名称，最大长度不能超过60个字节。
        :type NetworkInterfaceName: str
        :param _SubnetId: 弹性网卡所在的子网实例ID，例如：subnet-0ap8nwca。
        :type SubnetId: str
        :param _NetworkInterfaceDescription: 弹性网卡描述，可任意命名，但不得超过60个字符。
        :type NetworkInterfaceDescription: str
        :param _SecondaryPrivateIpAddressCount: 新申请的内网IP地址个数，内网IP地址个数总和不能超过配额数。
        :type SecondaryPrivateIpAddressCount: int
        :param _QosLevel: IP服务质量等级，和SecondaryPrivateIpAddressCount配合使用，可选值：PT、AU、AG、DEFAULT，分别代表云金、云银、云铜、默认四个等级。
        :type QosLevel: str
        :param _SecurityGroupIds: 指定绑定的安全组，例如：['sg-1dd51d']。
        :type SecurityGroupIds: list of str
        :param _PrivateIpAddresses: 指定的内网IP信息，单次最多指定10个。
        :type PrivateIpAddresses: list of PrivateIpAddressSpecification
        :param _Tags: 指定绑定的标签列表，例如：[{"Key": "city", "Value": "shanghai"}]
        :type Tags: list of Tag
        :param _TrunkingFlag: 网卡trunking模式设置，Enable-开启，Disable--关闭，默认关闭。
        :type TrunkingFlag: str
        :param _ClientToken: 用于保证请求幂等性的字符串。该字符串由客户生成，需保证不同请求之间唯一，最大值不超过64个ASCII字符。若不指定该参数，则无法保证请求的幂等性。	
        :type ClientToken: str
        """
        self._VpcId = None
        self._NetworkInterfaceName = None
        self._SubnetId = None
        self._NetworkInterfaceDescription = None
        self._SecondaryPrivateIpAddressCount = None
        self._QosLevel = None
        self._SecurityGroupIds = None
        self._PrivateIpAddresses = None
        self._Tags = None
        self._TrunkingFlag = None
        self._ClientToken = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def NetworkInterfaceName(self):
        return self._NetworkInterfaceName

    @NetworkInterfaceName.setter
    def NetworkInterfaceName(self, NetworkInterfaceName):
        self._NetworkInterfaceName = NetworkInterfaceName

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def NetworkInterfaceDescription(self):
        return self._NetworkInterfaceDescription

    @NetworkInterfaceDescription.setter
    def NetworkInterfaceDescription(self, NetworkInterfaceDescription):
        self._NetworkInterfaceDescription = NetworkInterfaceDescription

    @property
    def SecondaryPrivateIpAddressCount(self):
        return self._SecondaryPrivateIpAddressCount

    @SecondaryPrivateIpAddressCount.setter
    def SecondaryPrivateIpAddressCount(self, SecondaryPrivateIpAddressCount):
        self._SecondaryPrivateIpAddressCount = SecondaryPrivateIpAddressCount

    @property
    def QosLevel(self):
        return self._QosLevel

    @QosLevel.setter
    def QosLevel(self, QosLevel):
        self._QosLevel = QosLevel

    @property
    def SecurityGroupIds(self):
        return self._SecurityGroupIds

    @SecurityGroupIds.setter
    def SecurityGroupIds(self, SecurityGroupIds):
        self._SecurityGroupIds = SecurityGroupIds

    @property
    def PrivateIpAddresses(self):
        return self._PrivateIpAddresses

    @PrivateIpAddresses.setter
    def PrivateIpAddresses(self, PrivateIpAddresses):
        self._PrivateIpAddresses = PrivateIpAddresses

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def TrunkingFlag(self):
        return self._TrunkingFlag

    @TrunkingFlag.setter
    def TrunkingFlag(self, TrunkingFlag):
        self._TrunkingFlag = TrunkingFlag

    @property
    def ClientToken(self):
        return self._ClientToken

    @ClientToken.setter
    def ClientToken(self, ClientToken):
        self._ClientToken = ClientToken


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._NetworkInterfaceName = params.get("NetworkInterfaceName")
        self._SubnetId = params.get("SubnetId")
        self._NetworkInterfaceDescription = params.get("NetworkInterfaceDescription")
        self._SecondaryPrivateIpAddressCount = params.get("SecondaryPrivateIpAddressCount")
        self._QosLevel = params.get("QosLevel")
        self._SecurityGroupIds = params.get("SecurityGroupIds")
        if params.get("PrivateIpAddresses") is not None:
            self._PrivateIpAddresses = []
            for item in params.get("PrivateIpAddresses"):
                obj = PrivateIpAddressSpecification()
                obj._deserialize(item)
                self._PrivateIpAddresses.append(obj)
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self._Tags.append(obj)
        self._TrunkingFlag = params.get("TrunkingFlag")
        self._ClientToken = params.get("ClientToken")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateNetworkInterfaceResponse(AbstractModel):
    """CreateNetworkInterface返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterface: 弹性网卡实例。
        :type NetworkInterface: :class:`tencentcloud.vpc.v20170312.models.NetworkInterface`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetworkInterface = None
        self._RequestId = None

    @property
    def NetworkInterface(self):
        return self._NetworkInterface

    @NetworkInterface.setter
    def NetworkInterface(self, NetworkInterface):
        self._NetworkInterface = NetworkInterface

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NetworkInterface") is not None:
            self._NetworkInterface = NetworkInterface()
            self._NetworkInterface._deserialize(params.get("NetworkInterface"))
        self._RequestId = params.get("RequestId")


class CreateRouteTableRequest(AbstractModel):
    """CreateRouteTable请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: 待操作的VPC实例ID。可通过DescribeVpcs接口返回值中的VpcId获取。
        :type VpcId: str
        :param _RouteTableName: 路由表名称，最大长度不能超过60个字节。
        :type RouteTableName: str
        :param _Tags: 指定绑定的标签列表，例如：[{"Key": "city", "Value": "shanghai"}]
        :type Tags: list of Tag
        """
        self._VpcId = None
        self._RouteTableName = None
        self._Tags = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def RouteTableName(self):
        return self._RouteTableName

    @RouteTableName.setter
    def RouteTableName(self, RouteTableName):
        self._RouteTableName = RouteTableName

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._RouteTableName = params.get("RouteTableName")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self._Tags.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateRouteTableResponse(AbstractModel):
    """CreateRouteTable返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RouteTable: 路由表对象。
        :type RouteTable: :class:`tencentcloud.vpc.v20170312.models.RouteTable`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RouteTable = None
        self._RequestId = None

    @property
    def RouteTable(self):
        return self._RouteTable

    @RouteTable.setter
    def RouteTable(self, RouteTable):
        self._RouteTable = RouteTable

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("RouteTable") is not None:
            self._RouteTable = RouteTable()
            self._RouteTable._deserialize(params.get("RouteTable"))
        self._RequestId = params.get("RequestId")


class CreateRoutesRequest(AbstractModel):
    """CreateRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RouteTableId: 路由表实例ID。
        :type RouteTableId: str
        :param _Routes: 路由策略对象。
        :type Routes: list of Route
        """
        self._RouteTableId = None
        self._Routes = None

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId

    @property
    def Routes(self):
        return self._Routes

    @Routes.setter
    def Routes(self, Routes):
        self._Routes = Routes


    def _deserialize(self, params):
        self._RouteTableId = params.get("RouteTableId")
        if params.get("Routes") is not None:
            self._Routes = []
            for item in params.get("Routes"):
                obj = Route()
                obj._deserialize(item)
                self._Routes.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateRoutesResponse(AbstractModel):
    """CreateRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 新增的实例个数。
        :type TotalCount: int
        :param _RouteTableSet: 路由表对象。
        :type RouteTableSet: list of RouteTable
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._RouteTableSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RouteTableSet(self):
        return self._RouteTableSet

    @RouteTableSet.setter
    def RouteTableSet(self, RouteTableSet):
        self._RouteTableSet = RouteTableSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("RouteTableSet") is not None:
            self._RouteTableSet = []
            for item in params.get("RouteTableSet"):
                obj = RouteTable()
                obj._deserialize(item)
                self._RouteTableSet.append(obj)
        self._RequestId = params.get("RequestId")


class CreateSecurityGroupPoliciesRequest(AbstractModel):
    """CreateSecurityGroupPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupId: 安全组实例ID，例如sg-33ocnj9n，可通过<a href="https://cloud.tencent.com/document/product/215/15808">DescribeSecurityGroups</a>获取。
        :type SecurityGroupId: str
        :param _SecurityGroupPolicySet: 安全组规则集合。
        :type SecurityGroupPolicySet: :class:`tencentcloud.vpc.v20170312.models.SecurityGroupPolicySet`
        """
        self._SecurityGroupId = None
        self._SecurityGroupPolicySet = None

    @property
    def SecurityGroupId(self):
        return self._SecurityGroupId

    @SecurityGroupId.setter
    def SecurityGroupId(self, SecurityGroupId):
        self._SecurityGroupId = SecurityGroupId

    @property
    def SecurityGroupPolicySet(self):
        return self._SecurityGroupPolicySet

    @SecurityGroupPolicySet.setter
    def SecurityGroupPolicySet(self, SecurityGroupPolicySet):
        self._SecurityGroupPolicySet = SecurityGroupPolicySet


    def _deserialize(self, params):
        self._SecurityGroupId = params.get("SecurityGroupId")
        if params.get("SecurityGroupPolicySet") is not None:
            self._SecurityGroupPolicySet = SecurityGroupPolicySet()
            self._SecurityGroupPolicySet._deserialize(params.get("SecurityGroupPolicySet"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateSecurityGroupPoliciesResponse(AbstractModel):
    """CreateSecurityGroupPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateSecurityGroupRequest(AbstractModel):
    """CreateSecurityGroup请求参数结构体

    """

    def __init__(self):
        r"""
        :param _GroupName: 安全组名称，可任意命名，但不得超过60个字符。
        :type GroupName: str
        :param _GroupDescription: 安全组备注，最多100个字符。
        :type GroupDescription: str
        :param _ProjectId: 项目ID，默认0。可在<a href="https://console.cloud.tencent.com/project">控制台项目管理页面</a>查询到。
        :type ProjectId: str
        :param _Tags: 指定绑定的标签列表，例如：[{"Key": "city", "Value": "shanghai"}]。
        :type Tags: list of Tag
        """
        self._GroupName = None
        self._GroupDescription = None
        self._ProjectId = None
        self._Tags = None

    @property
    def GroupName(self):
        return self._GroupName

    @GroupName.setter
    def GroupName(self, GroupName):
        self._GroupName = GroupName

    @property
    def GroupDescription(self):
        return self._GroupDescription

    @GroupDescription.setter
    def GroupDescription(self, GroupDescription):
        self._GroupDescription = GroupDescription

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags


    def _deserialize(self, params):
        self._GroupName = params.get("GroupName")
        self._GroupDescription = params.get("GroupDescription")
        self._ProjectId = params.get("ProjectId")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self._Tags.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateSecurityGroupResponse(AbstractModel):
    """CreateSecurityGroup返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroup: 安全组对象。
        :type SecurityGroup: :class:`tencentcloud.vpc.v20170312.models.SecurityGroup`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SecurityGroup = None
        self._RequestId = None

    @property
    def SecurityGroup(self):
        return self._SecurityGroup

    @SecurityGroup.setter
    def SecurityGroup(self, SecurityGroup):
        self._SecurityGroup = SecurityGroup

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("SecurityGroup") is not None:
            self._SecurityGroup = SecurityGroup()
            self._SecurityGroup._deserialize(params.get("SecurityGroup"))
        self._RequestId = params.get("RequestId")


class CreateSecurityGroupWithPoliciesRequest(AbstractModel):
    """CreateSecurityGroupWithPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _GroupName: 安全组名称，可任意命名，但不得超过60个字符。
        :type GroupName: str
        :param _GroupDescription: 安全组备注，最多100个字符。
        :type GroupDescription: str
        :param _ProjectId: 项目ID，默认0。可在<a href="https://console.cloud.tencent.com/project">控制台项目管理页面</a>查询到。
        :type ProjectId: str
        :param _SecurityGroupPolicySet: 安全组规则集合。
        :type SecurityGroupPolicySet: :class:`tencentcloud.vpc.v20170312.models.SecurityGroupPolicySet`
        """
        self._GroupName = None
        self._GroupDescription = None
        self._ProjectId = None
        self._SecurityGroupPolicySet = None

    @property
    def GroupName(self):
        return self._GroupName

    @GroupName.setter
    def GroupName(self, GroupName):
        self._GroupName = GroupName

    @property
    def GroupDescription(self):
        return self._GroupDescription

    @GroupDescription.setter
    def GroupDescription(self, GroupDescription):
        self._GroupDescription = GroupDescription

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def SecurityGroupPolicySet(self):
        return self._SecurityGroupPolicySet

    @SecurityGroupPolicySet.setter
    def SecurityGroupPolicySet(self, SecurityGroupPolicySet):
        self._SecurityGroupPolicySet = SecurityGroupPolicySet


    def _deserialize(self, params):
        self._GroupName = params.get("GroupName")
        self._GroupDescription = params.get("GroupDescription")
        self._ProjectId = params.get("ProjectId")
        if params.get("SecurityGroupPolicySet") is not None:
            self._SecurityGroupPolicySet = SecurityGroupPolicySet()
            self._SecurityGroupPolicySet._deserialize(params.get("SecurityGroupPolicySet"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateSecurityGroupWithPoliciesResponse(AbstractModel):
    """CreateSecurityGroupWithPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroup: 安全组对象。
        :type SecurityGroup: :class:`tencentcloud.vpc.v20170312.models.SecurityGroup`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SecurityGroup = None
        self._RequestId = None

    @property
    def SecurityGroup(self):
        return self._SecurityGroup

    @SecurityGroup.setter
    def SecurityGroup(self, SecurityGroup):
        self._SecurityGroup = SecurityGroup

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("SecurityGroup") is not None:
            self._SecurityGroup = SecurityGroup()
            self._SecurityGroup._deserialize(params.get("SecurityGroup"))
        self._RequestId = params.get("RequestId")


class CreateServiceTemplateGroupRequest(AbstractModel):
    """CreateServiceTemplateGroup请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ServiceTemplateGroupName: 协议端口模板集合名称。
        :type ServiceTemplateGroupName: str
        :param _ServiceTemplateIds: 协议端口模板实例ID，例如：ppm-4dw6agho。
        :type ServiceTemplateIds: list of str
        """
        self._ServiceTemplateGroupName = None
        self._ServiceTemplateIds = None

    @property
    def ServiceTemplateGroupName(self):
        return self._ServiceTemplateGroupName

    @ServiceTemplateGroupName.setter
    def ServiceTemplateGroupName(self, ServiceTemplateGroupName):
        self._ServiceTemplateGroupName = ServiceTemplateGroupName

    @property
    def ServiceTemplateIds(self):
        return self._ServiceTemplateIds

    @ServiceTemplateIds.setter
    def ServiceTemplateIds(self, ServiceTemplateIds):
        self._ServiceTemplateIds = ServiceTemplateIds


    def _deserialize(self, params):
        self._ServiceTemplateGroupName = params.get("ServiceTemplateGroupName")
        self._ServiceTemplateIds = params.get("ServiceTemplateIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateServiceTemplateGroupResponse(AbstractModel):
    """CreateServiceTemplateGroup返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ServiceTemplateGroup: 协议端口模板集合对象。
        :type ServiceTemplateGroup: :class:`tencentcloud.vpc.v20170312.models.ServiceTemplateGroup`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ServiceTemplateGroup = None
        self._RequestId = None

    @property
    def ServiceTemplateGroup(self):
        return self._ServiceTemplateGroup

    @ServiceTemplateGroup.setter
    def ServiceTemplateGroup(self, ServiceTemplateGroup):
        self._ServiceTemplateGroup = ServiceTemplateGroup

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("ServiceTemplateGroup") is not None:
            self._ServiceTemplateGroup = ServiceTemplateGroup()
            self._ServiceTemplateGroup._deserialize(params.get("ServiceTemplateGroup"))
        self._RequestId = params.get("RequestId")


class CreateServiceTemplateRequest(AbstractModel):
    """CreateServiceTemplate请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ServiceTemplateName: 协议端口模板名称。
        :type ServiceTemplateName: str
        :param _Services: 支持单个端口、多个端口、连续端口及所有端口，协议支持：TCP、UDP、ICMP、GRE 协议。Services与ServicesExtra必填其一。
        :type Services: list of str
        :param _ServicesExtra: 支持添加备注，单个端口、多个端口、连续端口及所有端口，协议支持：TCP、UDP、ICMP、GRE 协议。Services与ServicesExtra必填其一。
        :type ServicesExtra: list of ServicesInfo
        """
        self._ServiceTemplateName = None
        self._Services = None
        self._ServicesExtra = None

    @property
    def ServiceTemplateName(self):
        return self._ServiceTemplateName

    @ServiceTemplateName.setter
    def ServiceTemplateName(self, ServiceTemplateName):
        self._ServiceTemplateName = ServiceTemplateName

    @property
    def Services(self):
        return self._Services

    @Services.setter
    def Services(self, Services):
        self._Services = Services

    @property
    def ServicesExtra(self):
        return self._ServicesExtra

    @ServicesExtra.setter
    def ServicesExtra(self, ServicesExtra):
        self._ServicesExtra = ServicesExtra


    def _deserialize(self, params):
        self._ServiceTemplateName = params.get("ServiceTemplateName")
        self._Services = params.get("Services")
        if params.get("ServicesExtra") is not None:
            self._ServicesExtra = []
            for item in params.get("ServicesExtra"):
                obj = ServicesInfo()
                obj._deserialize(item)
                self._ServicesExtra.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateServiceTemplateResponse(AbstractModel):
    """CreateServiceTemplate返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ServiceTemplate: 协议端口模板对象。
        :type ServiceTemplate: :class:`tencentcloud.vpc.v20170312.models.ServiceTemplate`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ServiceTemplate = None
        self._RequestId = None

    @property
    def ServiceTemplate(self):
        return self._ServiceTemplate

    @ServiceTemplate.setter
    def ServiceTemplate(self, ServiceTemplate):
        self._ServiceTemplate = ServiceTemplate

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("ServiceTemplate") is not None:
            self._ServiceTemplate = ServiceTemplate()
            self._ServiceTemplate._deserialize(params.get("ServiceTemplate"))
        self._RequestId = params.get("RequestId")


class CreateSnapshotPoliciesRequest(AbstractModel):
    """CreateSnapshotPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SnapshotPolicies: 快照策略详情。
        :type SnapshotPolicies: list of SnapshotPolicy
        """
        self._SnapshotPolicies = None

    @property
    def SnapshotPolicies(self):
        return self._SnapshotPolicies

    @SnapshotPolicies.setter
    def SnapshotPolicies(self, SnapshotPolicies):
        self._SnapshotPolicies = SnapshotPolicies


    def _deserialize(self, params):
        if params.get("SnapshotPolicies") is not None:
            self._SnapshotPolicies = []
            for item in params.get("SnapshotPolicies"):
                obj = SnapshotPolicy()
                obj._deserialize(item)
                self._SnapshotPolicies.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateSnapshotPoliciesResponse(AbstractModel):
    """CreateSnapshotPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SnapshotPolicies: 快照策略。
        :type SnapshotPolicies: list of SnapshotPolicy
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SnapshotPolicies = None
        self._RequestId = None

    @property
    def SnapshotPolicies(self):
        return self._SnapshotPolicies

    @SnapshotPolicies.setter
    def SnapshotPolicies(self, SnapshotPolicies):
        self._SnapshotPolicies = SnapshotPolicies

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("SnapshotPolicies") is not None:
            self._SnapshotPolicies = []
            for item in params.get("SnapshotPolicies"):
                obj = SnapshotPolicy()
                obj._deserialize(item)
                self._SnapshotPolicies.append(obj)
        self._RequestId = params.get("RequestId")


class CreateSubnetRequest(AbstractModel):
    """CreateSubnet请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: 待操作的VPC实例ID。可通过DescribeVpcs接口返回值中的VpcId获取。
        :type VpcId: str
        :param _SubnetName: 子网名称，最大长度不能超过60个字节。
        :type SubnetName: str
        :param _CidrBlock: 子网网段，子网网段必须在VPC网段内，相同VPC内子网网段不能重叠。
        :type CidrBlock: str
        :param _Zone: 子网所在的可用区ID，不同子网选择不同可用区可以做跨可用区灾备。
        :type Zone: str
        :param _Tags: 指定绑定的标签列表，例如：[{"Key": "city", "Value": "shanghai"}]
        :type Tags: list of Tag
        :param _CdcId: CDC实例ID。
        :type CdcId: str
        """
        self._VpcId = None
        self._SubnetName = None
        self._CidrBlock = None
        self._Zone = None
        self._Tags = None
        self._CdcId = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetName(self):
        return self._SubnetName

    @SubnetName.setter
    def SubnetName(self, SubnetName):
        self._SubnetName = SubnetName

    @property
    def CidrBlock(self):
        return self._CidrBlock

    @CidrBlock.setter
    def CidrBlock(self, CidrBlock):
        self._CidrBlock = CidrBlock

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def CdcId(self):
        return self._CdcId

    @CdcId.setter
    def CdcId(self, CdcId):
        self._CdcId = CdcId


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._SubnetName = params.get("SubnetName")
        self._CidrBlock = params.get("CidrBlock")
        self._Zone = params.get("Zone")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self._Tags.append(obj)
        self._CdcId = params.get("CdcId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateSubnetResponse(AbstractModel):
    """CreateSubnet返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Subnet: 子网对象。
        :type Subnet: :class:`tencentcloud.vpc.v20170312.models.Subnet`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Subnet = None
        self._RequestId = None

    @property
    def Subnet(self):
        return self._Subnet

    @Subnet.setter
    def Subnet(self, Subnet):
        self._Subnet = Subnet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Subnet") is not None:
            self._Subnet = Subnet()
            self._Subnet._deserialize(params.get("Subnet"))
        self._RequestId = params.get("RequestId")


class CreateSubnetsRequest(AbstractModel):
    """CreateSubnets请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: `VPC`实例`ID`。形如：`vpc-6v2ht8q5`。
        :type VpcId: str
        :param _Subnets: 子网对象列表。
        :type Subnets: list of SubnetInput
        :param _Tags: 指定绑定的标签列表，注意这里的标签集合为列表中所有子网对象所共享，不能为每个子网对象单独指定标签，例如：[{"Key": "city", "Value": "shanghai"}]。
        :type Tags: list of Tag
        :param _CdcId: 需要增加到的CDC实例ID。
        :type CdcId: str
        """
        self._VpcId = None
        self._Subnets = None
        self._Tags = None
        self._CdcId = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def Subnets(self):
        return self._Subnets

    @Subnets.setter
    def Subnets(self, Subnets):
        self._Subnets = Subnets

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def CdcId(self):
        return self._CdcId

    @CdcId.setter
    def CdcId(self, CdcId):
        self._CdcId = CdcId


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        if params.get("Subnets") is not None:
            self._Subnets = []
            for item in params.get("Subnets"):
                obj = SubnetInput()
                obj._deserialize(item)
                self._Subnets.append(obj)
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self._Tags.append(obj)
        self._CdcId = params.get("CdcId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateSubnetsResponse(AbstractModel):
    """CreateSubnets返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SubnetSet: 新创建的子网列表。
        :type SubnetSet: list of Subnet
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SubnetSet = None
        self._RequestId = None

    @property
    def SubnetSet(self):
        return self._SubnetSet

    @SubnetSet.setter
    def SubnetSet(self, SubnetSet):
        self._SubnetSet = SubnetSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("SubnetSet") is not None:
            self._SubnetSet = []
            for item in params.get("SubnetSet"):
                obj = Subnet()
                obj._deserialize(item)
                self._SubnetSet.append(obj)
        self._RequestId = params.get("RequestId")


class CreateTrafficPackagesRequest(AbstractModel):
    """CreateTrafficPackages请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TrafficAmount: 流量包规格。可选值:
<li>10: 10GB流量，有效期一个月</li>
<li>50: 50GB流量，有效期一个月</li>
<li>512: 512GB流量，有效期一个月</li>
<li>1024: 1TB流量，有效期一个月</li>
<li>5120: 5TB流量，有效期一个月</li>
<li>51200: 50TB流量，有效期一个月</li>
<li>60: 60GB流量，有效期半年</li>
<li>300: 300GB流量，有效期半年</li>
<li>600: 600GB流量，有效期半年</li>
<li>3072: 3TB流量，有效期半年</li>
<li>6144: 6TB流量，有效期半年</li>
<li>30720: 30TB流量，有效期半年</li>
<li>61440: 60TB流量，有效期半年</li>
<li>307200: 300TB流量，有效期半年</li>
        :type TrafficAmount: int
        :param _TrafficPackageCount: 流量包数量，可选范围 1~20。
        :type TrafficPackageCount: int
        """
        self._TrafficAmount = None
        self._TrafficPackageCount = None

    @property
    def TrafficAmount(self):
        return self._TrafficAmount

    @TrafficAmount.setter
    def TrafficAmount(self, TrafficAmount):
        self._TrafficAmount = TrafficAmount

    @property
    def TrafficPackageCount(self):
        return self._TrafficPackageCount

    @TrafficPackageCount.setter
    def TrafficPackageCount(self, TrafficPackageCount):
        self._TrafficPackageCount = TrafficPackageCount


    def _deserialize(self, params):
        self._TrafficAmount = params.get("TrafficAmount")
        self._TrafficPackageCount = params.get("TrafficPackageCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateTrafficPackagesResponse(AbstractModel):
    """CreateTrafficPackages返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TrafficPackageSet: 创建的流量包ID列表。
        :type TrafficPackageSet: list of str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TrafficPackageSet = None
        self._RequestId = None

    @property
    def TrafficPackageSet(self):
        return self._TrafficPackageSet

    @TrafficPackageSet.setter
    def TrafficPackageSet(self, TrafficPackageSet):
        self._TrafficPackageSet = TrafficPackageSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TrafficPackageSet = params.get("TrafficPackageSet")
        self._RequestId = params.get("RequestId")


class CreateVpcEndPointRequest(AbstractModel):
    """CreateVpcEndPoint请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。
        :type VpcId: str
        :param _SubnetId: 子网实例ID。
        :type SubnetId: str
        :param _EndPointName: 终端节点名称。
        :type EndPointName: str
        :param _EndPointServiceId: 终端节点服务ID。
        :type EndPointServiceId: str
        :param _EndPointVip: 终端节点VIP，可以指定IP申请。
        :type EndPointVip: str
        :param _SecurityGroupId: 安全组ID。
        :type SecurityGroupId: str
        """
        self._VpcId = None
        self._SubnetId = None
        self._EndPointName = None
        self._EndPointServiceId = None
        self._EndPointVip = None
        self._SecurityGroupId = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def EndPointName(self):
        return self._EndPointName

    @EndPointName.setter
    def EndPointName(self, EndPointName):
        self._EndPointName = EndPointName

    @property
    def EndPointServiceId(self):
        return self._EndPointServiceId

    @EndPointServiceId.setter
    def EndPointServiceId(self, EndPointServiceId):
        self._EndPointServiceId = EndPointServiceId

    @property
    def EndPointVip(self):
        return self._EndPointVip

    @EndPointVip.setter
    def EndPointVip(self, EndPointVip):
        self._EndPointVip = EndPointVip

    @property
    def SecurityGroupId(self):
        return self._SecurityGroupId

    @SecurityGroupId.setter
    def SecurityGroupId(self, SecurityGroupId):
        self._SecurityGroupId = SecurityGroupId


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._EndPointName = params.get("EndPointName")
        self._EndPointServiceId = params.get("EndPointServiceId")
        self._EndPointVip = params.get("EndPointVip")
        self._SecurityGroupId = params.get("SecurityGroupId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateVpcEndPointResponse(AbstractModel):
    """CreateVpcEndPoint返回参数结构体

    """

    def __init__(self):
        r"""
        :param _EndPoint: 终端节点对象详细信息。
        :type EndPoint: :class:`tencentcloud.vpc.v20170312.models.EndPoint`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._EndPoint = None
        self._RequestId = None

    @property
    def EndPoint(self):
        return self._EndPoint

    @EndPoint.setter
    def EndPoint(self, EndPoint):
        self._EndPoint = EndPoint

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("EndPoint") is not None:
            self._EndPoint = EndPoint()
            self._EndPoint._deserialize(params.get("EndPoint"))
        self._RequestId = params.get("RequestId")


class CreateVpcEndPointServiceRequest(AbstractModel):
    """CreateVpcEndPointService请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。
        :type VpcId: str
        :param _EndPointServiceName: 终端节点服务名称。
        :type EndPointServiceName: str
        :param _AutoAcceptFlag: 是否自动接受。
        :type AutoAcceptFlag: bool
        :param _ServiceInstanceId: 后端服务ID，比如lb-xxx。
        :type ServiceInstanceId: str
        :param _IsPassService: ~~是否是PassService类型。该字段已废弃，请不要使用该字段。~~
        :type IsPassService: bool
        :param _ServiceType: 挂载的PAAS服务类型，CLB,CDB,CRS，不填默认挂载为CLB。
        :type ServiceType: str
        """
        self._VpcId = None
        self._EndPointServiceName = None
        self._AutoAcceptFlag = None
        self._ServiceInstanceId = None
        self._IsPassService = None
        self._ServiceType = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def EndPointServiceName(self):
        return self._EndPointServiceName

    @EndPointServiceName.setter
    def EndPointServiceName(self, EndPointServiceName):
        self._EndPointServiceName = EndPointServiceName

    @property
    def AutoAcceptFlag(self):
        return self._AutoAcceptFlag

    @AutoAcceptFlag.setter
    def AutoAcceptFlag(self, AutoAcceptFlag):
        self._AutoAcceptFlag = AutoAcceptFlag

    @property
    def ServiceInstanceId(self):
        return self._ServiceInstanceId

    @ServiceInstanceId.setter
    def ServiceInstanceId(self, ServiceInstanceId):
        self._ServiceInstanceId = ServiceInstanceId

    @property
    def IsPassService(self):
        return self._IsPassService

    @IsPassService.setter
    def IsPassService(self, IsPassService):
        self._IsPassService = IsPassService

    @property
    def ServiceType(self):
        return self._ServiceType

    @ServiceType.setter
    def ServiceType(self, ServiceType):
        self._ServiceType = ServiceType


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._EndPointServiceName = params.get("EndPointServiceName")
        self._AutoAcceptFlag = params.get("AutoAcceptFlag")
        self._ServiceInstanceId = params.get("ServiceInstanceId")
        self._IsPassService = params.get("IsPassService")
        self._ServiceType = params.get("ServiceType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateVpcEndPointServiceResponse(AbstractModel):
    """CreateVpcEndPointService返回参数结构体

    """

    def __init__(self):
        r"""
        :param _EndPointService: 终端节点服务对象详细信息。
        :type EndPointService: :class:`tencentcloud.vpc.v20170312.models.EndPointService`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._EndPointService = None
        self._RequestId = None

    @property
    def EndPointService(self):
        return self._EndPointService

    @EndPointService.setter
    def EndPointService(self, EndPointService):
        self._EndPointService = EndPointService

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("EndPointService") is not None:
            self._EndPointService = EndPointService()
            self._EndPointService._deserialize(params.get("EndPointService"))
        self._RequestId = params.get("RequestId")


class CreateVpcEndPointServiceWhiteListRequest(AbstractModel):
    """CreateVpcEndPointServiceWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _UserUin: UIN。
        :type UserUin: str
        :param _EndPointServiceId: 终端节点服务ID。
        :type EndPointServiceId: str
        :param _Description: 白名单描述。
        :type Description: str
        """
        self._UserUin = None
        self._EndPointServiceId = None
        self._Description = None

    @property
    def UserUin(self):
        return self._UserUin

    @UserUin.setter
    def UserUin(self, UserUin):
        self._UserUin = UserUin

    @property
    def EndPointServiceId(self):
        return self._EndPointServiceId

    @EndPointServiceId.setter
    def EndPointServiceId(self, EndPointServiceId):
        self._EndPointServiceId = EndPointServiceId

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description


    def _deserialize(self, params):
        self._UserUin = params.get("UserUin")
        self._EndPointServiceId = params.get("EndPointServiceId")
        self._Description = params.get("Description")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateVpcEndPointServiceWhiteListResponse(AbstractModel):
    """CreateVpcEndPointServiceWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateVpcPeeringConnectionRequest(AbstractModel):
    """CreateVpcPeeringConnection请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SourceVpcId: 本端VPC唯一ID。
        :type SourceVpcId: str
        :param _PeeringConnectionName: 对等连接名称。
        :type PeeringConnectionName: str
        :param _DestinationVpcId: 对端VPC唯一ID。
        :type DestinationVpcId: str
        :param _DestinationUin: 对端用户UIN。
        :type DestinationUin: str
        :param _DestinationRegion: 对端地域。
        :type DestinationRegion: str
        :param _Bandwidth: 带宽上限，单位Mbps。
        :type Bandwidth: int
        :param _Type: 互通类型，VPC_PEER：VPC间互通；VPC_BM_PEER：VPC与黑石网络互通。
        :type Type: str
        :param _ChargeType: 计费模式，日峰值POSTPAID_BY_DAY_MAX，月95POSTPAID_BY_MONTH_95。
        :type ChargeType: str
        :param _QosLevel: 服务分级：PT、AU、AG。
        :type QosLevel: str
        """
        self._SourceVpcId = None
        self._PeeringConnectionName = None
        self._DestinationVpcId = None
        self._DestinationUin = None
        self._DestinationRegion = None
        self._Bandwidth = None
        self._Type = None
        self._ChargeType = None
        self._QosLevel = None

    @property
    def SourceVpcId(self):
        return self._SourceVpcId

    @SourceVpcId.setter
    def SourceVpcId(self, SourceVpcId):
        self._SourceVpcId = SourceVpcId

    @property
    def PeeringConnectionName(self):
        return self._PeeringConnectionName

    @PeeringConnectionName.setter
    def PeeringConnectionName(self, PeeringConnectionName):
        self._PeeringConnectionName = PeeringConnectionName

    @property
    def DestinationVpcId(self):
        return self._DestinationVpcId

    @DestinationVpcId.setter
    def DestinationVpcId(self, DestinationVpcId):
        self._DestinationVpcId = DestinationVpcId

    @property
    def DestinationUin(self):
        return self._DestinationUin

    @DestinationUin.setter
    def DestinationUin(self, DestinationUin):
        self._DestinationUin = DestinationUin

    @property
    def DestinationRegion(self):
        return self._DestinationRegion

    @DestinationRegion.setter
    def DestinationRegion(self, DestinationRegion):
        self._DestinationRegion = DestinationRegion

    @property
    def Bandwidth(self):
        return self._Bandwidth

    @Bandwidth.setter
    def Bandwidth(self, Bandwidth):
        self._Bandwidth = Bandwidth

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def ChargeType(self):
        return self._ChargeType

    @ChargeType.setter
    def ChargeType(self, ChargeType):
        self._ChargeType = ChargeType

    @property
    def QosLevel(self):
        return self._QosLevel

    @QosLevel.setter
    def QosLevel(self, QosLevel):
        self._QosLevel = QosLevel


    def _deserialize(self, params):
        self._SourceVpcId = params.get("SourceVpcId")
        self._PeeringConnectionName = params.get("PeeringConnectionName")
        self._DestinationVpcId = params.get("DestinationVpcId")
        self._DestinationUin = params.get("DestinationUin")
        self._DestinationRegion = params.get("DestinationRegion")
        self._Bandwidth = params.get("Bandwidth")
        self._Type = params.get("Type")
        self._ChargeType = params.get("ChargeType")
        self._QosLevel = params.get("QosLevel")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateVpcPeeringConnectionResponse(AbstractModel):
    """CreateVpcPeeringConnection返回参数结构体

    """

    def __init__(self):
        r"""
        :param _PeeringConnectionId: 对等连接ID
注意：此字段可能返回 null，表示取不到有效值。
        :type PeeringConnectionId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._PeeringConnectionId = None
        self._RequestId = None

    @property
    def PeeringConnectionId(self):
        return self._PeeringConnectionId

    @PeeringConnectionId.setter
    def PeeringConnectionId(self, PeeringConnectionId):
        self._PeeringConnectionId = PeeringConnectionId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._PeeringConnectionId = params.get("PeeringConnectionId")
        self._RequestId = params.get("RequestId")


class CreateVpcRequest(AbstractModel):
    """CreateVpc请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcName: vpc名称，最大长度不能超过60个字节。
        :type VpcName: str
        :param _CidrBlock: vpc的cidr，仅能在10.0.0.0/12，172.16.0.0/12，192.168.0.0/16这三个内网网段内。
        :type CidrBlock: str
        :param _EnableMulticast: 是否开启组播。true: 开启, false: 不开启。
        :type EnableMulticast: str
        :param _DnsServers: DNS地址，最多支持4个。
        :type DnsServers: list of str
        :param _DomainName: DHCP使用的域名。
        :type DomainName: str
        :param _Tags: 指定绑定的标签列表，例如：[{"Key": "city", "Value": "shanghai"}]。
        :type Tags: list of Tag
        """
        self._VpcName = None
        self._CidrBlock = None
        self._EnableMulticast = None
        self._DnsServers = None
        self._DomainName = None
        self._Tags = None

    @property
    def VpcName(self):
        return self._VpcName

    @VpcName.setter
    def VpcName(self, VpcName):
        self._VpcName = VpcName

    @property
    def CidrBlock(self):
        return self._CidrBlock

    @CidrBlock.setter
    def CidrBlock(self, CidrBlock):
        self._CidrBlock = CidrBlock

    @property
    def EnableMulticast(self):
        return self._EnableMulticast

    @EnableMulticast.setter
    def EnableMulticast(self, EnableMulticast):
        self._EnableMulticast = EnableMulticast

    @property
    def DnsServers(self):
        return self._DnsServers

    @DnsServers.setter
    def DnsServers(self, DnsServers):
        self._DnsServers = DnsServers

    @property
    def DomainName(self):
        return self._DomainName

    @DomainName.setter
    def DomainName(self, DomainName):
        self._DomainName = DomainName

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags


    def _deserialize(self, params):
        self._VpcName = params.get("VpcName")
        self._CidrBlock = params.get("CidrBlock")
        self._EnableMulticast = params.get("EnableMulticast")
        self._DnsServers = params.get("DnsServers")
        self._DomainName = params.get("DomainName")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self._Tags.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateVpcResponse(AbstractModel):
    """CreateVpc返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Vpc: Vpc对象。
        :type Vpc: :class:`tencentcloud.vpc.v20170312.models.Vpc`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Vpc = None
        self._RequestId = None

    @property
    def Vpc(self):
        return self._Vpc

    @Vpc.setter
    def Vpc(self, Vpc):
        self._Vpc = Vpc

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Vpc") is not None:
            self._Vpc = Vpc()
            self._Vpc._deserialize(params.get("Vpc"))
        self._RequestId = params.get("RequestId")


class CreateVpnConnRoute(AbstractModel):
    """创建路由添加的指向此通道的路由

    """

    def __init__(self):
        r"""
        :param _DestinationCidrBlock: 目的端IDC网段
        :type DestinationCidrBlock: str
        :param _Priority: 优先级；可选值0，100。
        :type Priority: int
        """
        self._DestinationCidrBlock = None
        self._Priority = None

    @property
    def DestinationCidrBlock(self):
        return self._DestinationCidrBlock

    @DestinationCidrBlock.setter
    def DestinationCidrBlock(self, DestinationCidrBlock):
        self._DestinationCidrBlock = DestinationCidrBlock

    @property
    def Priority(self):
        return self._Priority

    @Priority.setter
    def Priority(self, Priority):
        self._Priority = Priority


    def _deserialize(self, params):
        self._DestinationCidrBlock = params.get("DestinationCidrBlock")
        self._Priority = params.get("Priority")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateVpnConnectionRequest(AbstractModel):
    """CreateVpnConnection请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关实例ID。
        :type VpnGatewayId: str
        :param _CustomerGatewayId: 对端网关ID。例如：cgw-2wqq41m9，可通过[DescribeCustomerGateways](https://cloud.tencent.com/document/product/215/17516)接口查询对端网关。
        :type CustomerGatewayId: str
        :param _VpnConnectionName: 通道名称，可任意命名，但不得超过60个字符。
        :type VpnConnectionName: str
        :param _PreShareKey: 预共享密钥。
        :type PreShareKey: str
        :param _VpcId: VPC实例ID。可通过[DescribeVpcs](https://cloud.tencent.com/document/product/215/15778)接口返回值中的VpcId获取。
CCN VPN 形的通道 可以不传VPCID
        :type VpcId: str
        :param _SecurityPolicyDatabases: SPD策略组，例如：{"10.0.0.5/24":["172.123.10.5/16"]}，10.0.0.5/24是vpc内网段172.123.10.5/16是IDC网段。用户指定VPC内哪些网段可以和您IDC中哪些网段通信。
        :type SecurityPolicyDatabases: list of SecurityPolicyDatabase
        :param _IKEOptionsSpecification: IKE配置（Internet Key Exchange，因特网密钥交换），IKE具有一套自我保护机制，用户配置网络安全协议
        :type IKEOptionsSpecification: :class:`tencentcloud.vpc.v20170312.models.IKEOptionsSpecification`
        :param _IPSECOptionsSpecification: IPSec配置，腾讯云提供IPSec安全会话设置
        :type IPSECOptionsSpecification: :class:`tencentcloud.vpc.v20170312.models.IPSECOptionsSpecification`
        :param _Tags: 指定绑定的标签列表，例如：[{"Key": "city", "Value": "shanghai"}]
        :type Tags: list of Tag
        :param _EnableHealthCheck: 是否支持隧道内健康检查，默认为False。
        :type EnableHealthCheck: bool
        :param _HealthCheckLocalIp: 健康检查本端地址，默认值为随机在169.254.128.0/17分配一个IP。
        :type HealthCheckLocalIp: str
        :param _HealthCheckRemoteIp: 健康检查对端地址，默认值为随机在169.254.128.0/17分配一个IP。
        :type HealthCheckRemoteIp: str
        :param _RouteType: 通道类型, 例如:["STATIC", "StaticRoute", "Policy"]
        :type RouteType: str
        :param _NegotiationType: 协商类型，默认为active（主动协商）。可选值：active（主动协商），passive（被动协商），flowTrigger（流量协商）
        :type NegotiationType: str
        :param _DpdEnable: DPD探测开关。默认为0，表示关闭DPD探测。可选值：0（关闭），1（开启）
        :type DpdEnable: int
        :param _DpdTimeout: DPD超时时间。即探测确认对端不存在需要的时间。dpdEnable为1（开启）时有效。默认30，单位为秒
        :type DpdTimeout: str
        :param _DpdAction: DPD超时后的动作。默认为clear。dpdEnable为1（开启）时有效。可取值为clear（断开）和restart（重试）
        :type DpdAction: str
        :param _Route: 创建通道路由信息。
        :type Route: :class:`tencentcloud.vpc.v20170312.models.CreateVpnConnRoute`
        :param _BgpConfig: BGP配置。
        :type BgpConfig: :class:`tencentcloud.vpc.v20170312.models.BgpConfig`
        """
        self._VpnGatewayId = None
        self._CustomerGatewayId = None
        self._VpnConnectionName = None
        self._PreShareKey = None
        self._VpcId = None
        self._SecurityPolicyDatabases = None
        self._IKEOptionsSpecification = None
        self._IPSECOptionsSpecification = None
        self._Tags = None
        self._EnableHealthCheck = None
        self._HealthCheckLocalIp = None
        self._HealthCheckRemoteIp = None
        self._RouteType = None
        self._NegotiationType = None
        self._DpdEnable = None
        self._DpdTimeout = None
        self._DpdAction = None
        self._Route = None
        self._BgpConfig = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def CustomerGatewayId(self):
        return self._CustomerGatewayId

    @CustomerGatewayId.setter
    def CustomerGatewayId(self, CustomerGatewayId):
        self._CustomerGatewayId = CustomerGatewayId

    @property
    def VpnConnectionName(self):
        return self._VpnConnectionName

    @VpnConnectionName.setter
    def VpnConnectionName(self, VpnConnectionName):
        self._VpnConnectionName = VpnConnectionName

    @property
    def PreShareKey(self):
        return self._PreShareKey

    @PreShareKey.setter
    def PreShareKey(self, PreShareKey):
        self._PreShareKey = PreShareKey

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SecurityPolicyDatabases(self):
        return self._SecurityPolicyDatabases

    @SecurityPolicyDatabases.setter
    def SecurityPolicyDatabases(self, SecurityPolicyDatabases):
        self._SecurityPolicyDatabases = SecurityPolicyDatabases

    @property
    def IKEOptionsSpecification(self):
        return self._IKEOptionsSpecification

    @IKEOptionsSpecification.setter
    def IKEOptionsSpecification(self, IKEOptionsSpecification):
        self._IKEOptionsSpecification = IKEOptionsSpecification

    @property
    def IPSECOptionsSpecification(self):
        return self._IPSECOptionsSpecification

    @IPSECOptionsSpecification.setter
    def IPSECOptionsSpecification(self, IPSECOptionsSpecification):
        self._IPSECOptionsSpecification = IPSECOptionsSpecification

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def EnableHealthCheck(self):
        return self._EnableHealthCheck

    @EnableHealthCheck.setter
    def EnableHealthCheck(self, EnableHealthCheck):
        self._EnableHealthCheck = EnableHealthCheck

    @property
    def HealthCheckLocalIp(self):
        return self._HealthCheckLocalIp

    @HealthCheckLocalIp.setter
    def HealthCheckLocalIp(self, HealthCheckLocalIp):
        self._HealthCheckLocalIp = HealthCheckLocalIp

    @property
    def HealthCheckRemoteIp(self):
        return self._HealthCheckRemoteIp

    @HealthCheckRemoteIp.setter
    def HealthCheckRemoteIp(self, HealthCheckRemoteIp):
        self._HealthCheckRemoteIp = HealthCheckRemoteIp

    @property
    def RouteType(self):
        return self._RouteType

    @RouteType.setter
    def RouteType(self, RouteType):
        self._RouteType = RouteType

    @property
    def NegotiationType(self):
        return self._NegotiationType

    @NegotiationType.setter
    def NegotiationType(self, NegotiationType):
        self._NegotiationType = NegotiationType

    @property
    def DpdEnable(self):
        return self._DpdEnable

    @DpdEnable.setter
    def DpdEnable(self, DpdEnable):
        self._DpdEnable = DpdEnable

    @property
    def DpdTimeout(self):
        return self._DpdTimeout

    @DpdTimeout.setter
    def DpdTimeout(self, DpdTimeout):
        self._DpdTimeout = DpdTimeout

    @property
    def DpdAction(self):
        return self._DpdAction

    @DpdAction.setter
    def DpdAction(self, DpdAction):
        self._DpdAction = DpdAction

    @property
    def Route(self):
        return self._Route

    @Route.setter
    def Route(self, Route):
        self._Route = Route

    @property
    def BgpConfig(self):
        return self._BgpConfig

    @BgpConfig.setter
    def BgpConfig(self, BgpConfig):
        self._BgpConfig = BgpConfig


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        self._CustomerGatewayId = params.get("CustomerGatewayId")
        self._VpnConnectionName = params.get("VpnConnectionName")
        self._PreShareKey = params.get("PreShareKey")
        self._VpcId = params.get("VpcId")
        if params.get("SecurityPolicyDatabases") is not None:
            self._SecurityPolicyDatabases = []
            for item in params.get("SecurityPolicyDatabases"):
                obj = SecurityPolicyDatabase()
                obj._deserialize(item)
                self._SecurityPolicyDatabases.append(obj)
        if params.get("IKEOptionsSpecification") is not None:
            self._IKEOptionsSpecification = IKEOptionsSpecification()
            self._IKEOptionsSpecification._deserialize(params.get("IKEOptionsSpecification"))
        if params.get("IPSECOptionsSpecification") is not None:
            self._IPSECOptionsSpecification = IPSECOptionsSpecification()
            self._IPSECOptionsSpecification._deserialize(params.get("IPSECOptionsSpecification"))
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self._Tags.append(obj)
        self._EnableHealthCheck = params.get("EnableHealthCheck")
        self._HealthCheckLocalIp = params.get("HealthCheckLocalIp")
        self._HealthCheckRemoteIp = params.get("HealthCheckRemoteIp")
        self._RouteType = params.get("RouteType")
        self._NegotiationType = params.get("NegotiationType")
        self._DpdEnable = params.get("DpdEnable")
        self._DpdTimeout = params.get("DpdTimeout")
        self._DpdAction = params.get("DpdAction")
        if params.get("Route") is not None:
            self._Route = CreateVpnConnRoute()
            self._Route._deserialize(params.get("Route"))
        if params.get("BgpConfig") is not None:
            self._BgpConfig = BgpConfig()
            self._BgpConfig._deserialize(params.get("BgpConfig"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateVpnConnectionResponse(AbstractModel):
    """CreateVpnConnection返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnConnection: 通道实例对象。
        :type VpnConnection: :class:`tencentcloud.vpc.v20170312.models.VpnConnection`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VpnConnection = None
        self._RequestId = None

    @property
    def VpnConnection(self):
        return self._VpnConnection

    @VpnConnection.setter
    def VpnConnection(self, VpnConnection):
        self._VpnConnection = VpnConnection

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("VpnConnection") is not None:
            self._VpnConnection = VpnConnection()
            self._VpnConnection._deserialize(params.get("VpnConnection"))
        self._RequestId = params.get("RequestId")


class CreateVpnGatewayRequest(AbstractModel):
    """CreateVpnGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。可通过[DescribeVpcs](https://cloud.tencent.com/document/product/215/15778)接口返回值中的VpcId获取。
        :type VpcId: str
        :param _VpnGatewayName: VPN网关名称，最大长度不能超过60个字节。
        :type VpnGatewayName: str
        :param _InternetMaxBandwidthOut: 公网带宽设置。可选带宽规格：5, 10, 20, 50, 100, 200, 500, 1000, 3000；单位：Mbps。
        :type InternetMaxBandwidthOut: int
        :param _InstanceChargeType: VPN网关计费模式，PREPAID：表示预付费，即包年包月，POSTPAID_BY_HOUR：表示后付费，即按量计费。默认：POSTPAID_BY_HOUR，如果指定预付费模式，参数InstanceChargePrepaid必填。
        :type InstanceChargeType: str
        :param _InstanceChargePrepaid: 预付费模式，即包年包月相关参数设置。通过该参数可以指定包年包月实例的购买时长、是否设置自动续费等属性。若指定实例的付费模式为预付费则该参数必传。
        :type InstanceChargePrepaid: :class:`tencentcloud.vpc.v20170312.models.InstanceChargePrepaid`
        :param _Zone: 可用区，如：ap-guangzhou-2。
        :type Zone: str
        :param _Type: VPN网关类型，默认为IPSEC。值“IPSEC”为VPC型IPSEC VPN网关，值“SSL”为VPC型SSL VPN网关，值“CCN”为云联网型IPSEC VPN网关，值“SSL_CCN”为云联网型SSL VPN网关。
        :type Type: str
        :param _Tags: 指定绑定的标签列表，例如：[{"Key": "city", "Value": "shanghai"}]。
        :type Tags: list of Tag
        :param _CdcId: CDC实例ID。
        :type CdcId: str
        :param _MaxConnection: SSL VPN连接数设置，可选规格：5, 10, 20, 50, 100, 200, 500, 1000；单位：个。仅 SSL / SSL_CCN 类型需要选这个参数。
        :type MaxConnection: int
        """
        self._VpcId = None
        self._VpnGatewayName = None
        self._InternetMaxBandwidthOut = None
        self._InstanceChargeType = None
        self._InstanceChargePrepaid = None
        self._Zone = None
        self._Type = None
        self._Tags = None
        self._CdcId = None
        self._MaxConnection = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def VpnGatewayName(self):
        return self._VpnGatewayName

    @VpnGatewayName.setter
    def VpnGatewayName(self, VpnGatewayName):
        self._VpnGatewayName = VpnGatewayName

    @property
    def InternetMaxBandwidthOut(self):
        return self._InternetMaxBandwidthOut

    @InternetMaxBandwidthOut.setter
    def InternetMaxBandwidthOut(self, InternetMaxBandwidthOut):
        self._InternetMaxBandwidthOut = InternetMaxBandwidthOut

    @property
    def InstanceChargeType(self):
        return self._InstanceChargeType

    @InstanceChargeType.setter
    def InstanceChargeType(self, InstanceChargeType):
        self._InstanceChargeType = InstanceChargeType

    @property
    def InstanceChargePrepaid(self):
        return self._InstanceChargePrepaid

    @InstanceChargePrepaid.setter
    def InstanceChargePrepaid(self, InstanceChargePrepaid):
        self._InstanceChargePrepaid = InstanceChargePrepaid

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def CdcId(self):
        return self._CdcId

    @CdcId.setter
    def CdcId(self, CdcId):
        self._CdcId = CdcId

    @property
    def MaxConnection(self):
        return self._MaxConnection

    @MaxConnection.setter
    def MaxConnection(self, MaxConnection):
        self._MaxConnection = MaxConnection


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._VpnGatewayName = params.get("VpnGatewayName")
        self._InternetMaxBandwidthOut = params.get("InternetMaxBandwidthOut")
        self._InstanceChargeType = params.get("InstanceChargeType")
        if params.get("InstanceChargePrepaid") is not None:
            self._InstanceChargePrepaid = InstanceChargePrepaid()
            self._InstanceChargePrepaid._deserialize(params.get("InstanceChargePrepaid"))
        self._Zone = params.get("Zone")
        self._Type = params.get("Type")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tag()
                obj._deserialize(item)
                self._Tags.append(obj)
        self._CdcId = params.get("CdcId")
        self._MaxConnection = params.get("MaxConnection")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateVpnGatewayResponse(AbstractModel):
    """CreateVpnGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGateway: VPN网关对象
        :type VpnGateway: :class:`tencentcloud.vpc.v20170312.models.VpnGateway`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VpnGateway = None
        self._RequestId = None

    @property
    def VpnGateway(self):
        return self._VpnGateway

    @VpnGateway.setter
    def VpnGateway(self, VpnGateway):
        self._VpnGateway = VpnGateway

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("VpnGateway") is not None:
            self._VpnGateway = VpnGateway()
            self._VpnGateway._deserialize(params.get("VpnGateway"))
        self._RequestId = params.get("RequestId")


class CreateVpnGatewayRoutesRequest(AbstractModel):
    """CreateVpnGatewayRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关的ID
        :type VpnGatewayId: str
        :param _Routes: VPN网关目的路由列表
        :type Routes: list of VpnGatewayRoute
        """
        self._VpnGatewayId = None
        self._Routes = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def Routes(self):
        return self._Routes

    @Routes.setter
    def Routes(self, Routes):
        self._Routes = Routes


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        if params.get("Routes") is not None:
            self._Routes = []
            for item in params.get("Routes"):
                obj = VpnGatewayRoute()
                obj._deserialize(item)
                self._Routes.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateVpnGatewayRoutesResponse(AbstractModel):
    """CreateVpnGatewayRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Routes: VPN网关目的路由
        :type Routes: list of VpnGatewayRoute
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Routes = None
        self._RequestId = None

    @property
    def Routes(self):
        return self._Routes

    @Routes.setter
    def Routes(self, Routes):
        self._Routes = Routes

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Routes") is not None:
            self._Routes = []
            for item in params.get("Routes"):
                obj = VpnGatewayRoute()
                obj._deserialize(item)
                self._Routes.append(obj)
        self._RequestId = params.get("RequestId")


class CreateVpnGatewaySslClientRequest(AbstractModel):
    """CreateVpnGatewaySslClient请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SslVpnServerId: SSL-VPN-SERVER 实例ID。
        :type SslVpnServerId: str
        :param _SslVpnClientName: SSL-VPN-CLIENT实例Name。不可和SslVpnClientNames同时使用。
        :type SslVpnClientName: str
        :param _SslVpnClientNames: SSL-VPN-CLIENT实例Name数字。批量创建时使用。不可和SslVpnClientName同时使用。
        :type SslVpnClientNames: list of str
        """
        self._SslVpnServerId = None
        self._SslVpnClientName = None
        self._SslVpnClientNames = None

    @property
    def SslVpnServerId(self):
        return self._SslVpnServerId

    @SslVpnServerId.setter
    def SslVpnServerId(self, SslVpnServerId):
        self._SslVpnServerId = SslVpnServerId

    @property
    def SslVpnClientName(self):
        return self._SslVpnClientName

    @SslVpnClientName.setter
    def SslVpnClientName(self, SslVpnClientName):
        self._SslVpnClientName = SslVpnClientName

    @property
    def SslVpnClientNames(self):
        return self._SslVpnClientNames

    @SslVpnClientNames.setter
    def SslVpnClientNames(self, SslVpnClientNames):
        self._SslVpnClientNames = SslVpnClientNames


    def _deserialize(self, params):
        self._SslVpnServerId = params.get("SslVpnServerId")
        self._SslVpnClientName = params.get("SslVpnClientName")
        self._SslVpnClientNames = params.get("SslVpnClientNames")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateVpnGatewaySslClientResponse(AbstractModel):
    """CreateVpnGatewaySslClient返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步任务ID。
        :type TaskId: int
        :param _SslVpnClientId: SSL-VPN client 唯一ID
        :type SslVpnClientId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._SslVpnClientId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def SslVpnClientId(self):
        return self._SslVpnClientId

    @SslVpnClientId.setter
    def SslVpnClientId(self, SslVpnClientId):
        self._SslVpnClientId = SslVpnClientId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._SslVpnClientId = params.get("SslVpnClientId")
        self._RequestId = params.get("RequestId")


class CreateVpnGatewaySslServerRequest(AbstractModel):
    """CreateVpnGatewaySslServer请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关实例ID。
        :type VpnGatewayId: str
        :param _SslVpnServerName: SSL-VPN-SERVER 实例名称，长度不超过60个字节。
        :type SslVpnServerName: str
        :param _LocalAddress: 云端地址（CIDR）列表。
        :type LocalAddress: list of str
        :param _RemoteAddress: 客户端地址网段。
        :type RemoteAddress: str
        :param _SslVpnProtocol: SSL VPN服务端监听协议。当前仅支持 UDP，默认UDP。
        :type SslVpnProtocol: str
        :param _SslVpnPort: SSL VPN服务端监听协议端口，默认1194。
        :type SslVpnPort: int
        :param _IntegrityAlgorithm: 认证算法。可选 'SHA1', 'MD5', 'NONE'，默认NONE。
        :type IntegrityAlgorithm: str
        :param _EncryptAlgorithm: 加密算法。可选 'AES-128-CBC','AES-192-CBC', 'AES-256-CBC', 'NONE'，默认NONE。
        :type EncryptAlgorithm: str
        :param _Compress: 是否支持压缩。当前仅支持不支持压缩，默认False。
        :type Compress: bool
        :param _SsoEnabled: 是否开启SSO认证。默认为False
        :type SsoEnabled: bool
        :param _AccessPolicyEnabled: 是否开启策略访问控制。默认为False
        :type AccessPolicyEnabled: bool
        :param _SamlData: SAML-DATA，开启SSO时传。
        :type SamlData: str
        """
        self._VpnGatewayId = None
        self._SslVpnServerName = None
        self._LocalAddress = None
        self._RemoteAddress = None
        self._SslVpnProtocol = None
        self._SslVpnPort = None
        self._IntegrityAlgorithm = None
        self._EncryptAlgorithm = None
        self._Compress = None
        self._SsoEnabled = None
        self._AccessPolicyEnabled = None
        self._SamlData = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def SslVpnServerName(self):
        return self._SslVpnServerName

    @SslVpnServerName.setter
    def SslVpnServerName(self, SslVpnServerName):
        self._SslVpnServerName = SslVpnServerName

    @property
    def LocalAddress(self):
        return self._LocalAddress

    @LocalAddress.setter
    def LocalAddress(self, LocalAddress):
        self._LocalAddress = LocalAddress

    @property
    def RemoteAddress(self):
        return self._RemoteAddress

    @RemoteAddress.setter
    def RemoteAddress(self, RemoteAddress):
        self._RemoteAddress = RemoteAddress

    @property
    def SslVpnProtocol(self):
        return self._SslVpnProtocol

    @SslVpnProtocol.setter
    def SslVpnProtocol(self, SslVpnProtocol):
        self._SslVpnProtocol = SslVpnProtocol

    @property
    def SslVpnPort(self):
        return self._SslVpnPort

    @SslVpnPort.setter
    def SslVpnPort(self, SslVpnPort):
        self._SslVpnPort = SslVpnPort

    @property
    def IntegrityAlgorithm(self):
        return self._IntegrityAlgorithm

    @IntegrityAlgorithm.setter
    def IntegrityAlgorithm(self, IntegrityAlgorithm):
        self._IntegrityAlgorithm = IntegrityAlgorithm

    @property
    def EncryptAlgorithm(self):
        return self._EncryptAlgorithm

    @EncryptAlgorithm.setter
    def EncryptAlgorithm(self, EncryptAlgorithm):
        self._EncryptAlgorithm = EncryptAlgorithm

    @property
    def Compress(self):
        return self._Compress

    @Compress.setter
    def Compress(self, Compress):
        self._Compress = Compress

    @property
    def SsoEnabled(self):
        return self._SsoEnabled

    @SsoEnabled.setter
    def SsoEnabled(self, SsoEnabled):
        self._SsoEnabled = SsoEnabled

    @property
    def AccessPolicyEnabled(self):
        return self._AccessPolicyEnabled

    @AccessPolicyEnabled.setter
    def AccessPolicyEnabled(self, AccessPolicyEnabled):
        self._AccessPolicyEnabled = AccessPolicyEnabled

    @property
    def SamlData(self):
        return self._SamlData

    @SamlData.setter
    def SamlData(self, SamlData):
        self._SamlData = SamlData


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        self._SslVpnServerName = params.get("SslVpnServerName")
        self._LocalAddress = params.get("LocalAddress")
        self._RemoteAddress = params.get("RemoteAddress")
        self._SslVpnProtocol = params.get("SslVpnProtocol")
        self._SslVpnPort = params.get("SslVpnPort")
        self._IntegrityAlgorithm = params.get("IntegrityAlgorithm")
        self._EncryptAlgorithm = params.get("EncryptAlgorithm")
        self._Compress = params.get("Compress")
        self._SsoEnabled = params.get("SsoEnabled")
        self._AccessPolicyEnabled = params.get("AccessPolicyEnabled")
        self._SamlData = params.get("SamlData")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateVpnGatewaySslServerResponse(AbstractModel):
    """CreateVpnGatewaySslServer返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 创建SSL-VPN server 异步任务ID。
        :type TaskId: int
        :param _SslVpnServerId: SSL-VPN-SERVER 唯一ID。
        :type SslVpnServerId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._SslVpnServerId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def SslVpnServerId(self):
        return self._SslVpnServerId

    @SslVpnServerId.setter
    def SslVpnServerId(self, SslVpnServerId):
        self._SslVpnServerId = SslVpnServerId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._SslVpnServerId = params.get("SslVpnServerId")
        self._RequestId = params.get("RequestId")


class CrossBorderCompliance(AbstractModel):
    """合规化审批单

    """

    def __init__(self):
        r"""
        :param _ServiceProvider: 服务商，可选值：`UNICOM`。
        :type ServiceProvider: str
        :param _ComplianceId: 合规化审批单`ID`。
        :type ComplianceId: int
        :param _Company: 公司全称。
        :type Company: str
        :param _UniformSocialCreditCode: 统一社会信用代码。
        :type UniformSocialCreditCode: str
        :param _LegalPerson: 法定代表人。
        :type LegalPerson: str
        :param _IssuingAuthority: 发证机关。
        :type IssuingAuthority: str
        :param _BusinessLicense: 营业执照。
        :type BusinessLicense: str
        :param _BusinessAddress: 营业执照住所。
        :type BusinessAddress: str
        :param _PostCode: 邮编。
        :type PostCode: int
        :param _Manager: 经办人。
        :type Manager: str
        :param _ManagerId: 经办人身份证号。
        :type ManagerId: str
        :param _ManagerIdCard: 经办人身份证。
        :type ManagerIdCard: str
        :param _ManagerAddress: 经办人身份证地址。
        :type ManagerAddress: str
        :param _ManagerTelephone: 经办人联系电话。
        :type ManagerTelephone: str
        :param _Email: 电子邮箱。
        :type Email: str
        :param _ServiceHandlingForm: 服务受理单。
        :type ServiceHandlingForm: str
        :param _AuthorizationLetter: 授权函。
        :type AuthorizationLetter: str
        :param _SafetyCommitment: 信息安全承诺书。
        :type SafetyCommitment: str
        :param _ServiceStartDate: 服务开始时间。
        :type ServiceStartDate: str
        :param _ServiceEndDate: 服务截止时间。
        :type ServiceEndDate: str
        :param _State: 状态。待审批：`PENDING`，已通过：`APPROVED`，已拒绝：`DENY`。
        :type State: str
        :param _CreatedTime: 审批单创建时间。
        :type CreatedTime: str
        """
        self._ServiceProvider = None
        self._ComplianceId = None
        self._Company = None
        self._UniformSocialCreditCode = None
        self._LegalPerson = None
        self._IssuingAuthority = None
        self._BusinessLicense = None
        self._BusinessAddress = None
        self._PostCode = None
        self._Manager = None
        self._ManagerId = None
        self._ManagerIdCard = None
        self._ManagerAddress = None
        self._ManagerTelephone = None
        self._Email = None
        self._ServiceHandlingForm = None
        self._AuthorizationLetter = None
        self._SafetyCommitment = None
        self._ServiceStartDate = None
        self._ServiceEndDate = None
        self._State = None
        self._CreatedTime = None

    @property
    def ServiceProvider(self):
        return self._ServiceProvider

    @ServiceProvider.setter
    def ServiceProvider(self, ServiceProvider):
        self._ServiceProvider = ServiceProvider

    @property
    def ComplianceId(self):
        return self._ComplianceId

    @ComplianceId.setter
    def ComplianceId(self, ComplianceId):
        self._ComplianceId = ComplianceId

    @property
    def Company(self):
        return self._Company

    @Company.setter
    def Company(self, Company):
        self._Company = Company

    @property
    def UniformSocialCreditCode(self):
        return self._UniformSocialCreditCode

    @UniformSocialCreditCode.setter
    def UniformSocialCreditCode(self, UniformSocialCreditCode):
        self._UniformSocialCreditCode = UniformSocialCreditCode

    @property
    def LegalPerson(self):
        return self._LegalPerson

    @LegalPerson.setter
    def LegalPerson(self, LegalPerson):
        self._LegalPerson = LegalPerson

    @property
    def IssuingAuthority(self):
        return self._IssuingAuthority

    @IssuingAuthority.setter
    def IssuingAuthority(self, IssuingAuthority):
        self._IssuingAuthority = IssuingAuthority

    @property
    def BusinessLicense(self):
        return self._BusinessLicense

    @BusinessLicense.setter
    def BusinessLicense(self, BusinessLicense):
        self._BusinessLicense = BusinessLicense

    @property
    def BusinessAddress(self):
        return self._BusinessAddress

    @BusinessAddress.setter
    def BusinessAddress(self, BusinessAddress):
        self._BusinessAddress = BusinessAddress

    @property
    def PostCode(self):
        return self._PostCode

    @PostCode.setter
    def PostCode(self, PostCode):
        self._PostCode = PostCode

    @property
    def Manager(self):
        return self._Manager

    @Manager.setter
    def Manager(self, Manager):
        self._Manager = Manager

    @property
    def ManagerId(self):
        return self._ManagerId

    @ManagerId.setter
    def ManagerId(self, ManagerId):
        self._ManagerId = ManagerId

    @property
    def ManagerIdCard(self):
        return self._ManagerIdCard

    @ManagerIdCard.setter
    def ManagerIdCard(self, ManagerIdCard):
        self._ManagerIdCard = ManagerIdCard

    @property
    def ManagerAddress(self):
        return self._ManagerAddress

    @ManagerAddress.setter
    def ManagerAddress(self, ManagerAddress):
        self._ManagerAddress = ManagerAddress

    @property
    def ManagerTelephone(self):
        return self._ManagerTelephone

    @ManagerTelephone.setter
    def ManagerTelephone(self, ManagerTelephone):
        self._ManagerTelephone = ManagerTelephone

    @property
    def Email(self):
        return self._Email

    @Email.setter
    def Email(self, Email):
        self._Email = Email

    @property
    def ServiceHandlingForm(self):
        return self._ServiceHandlingForm

    @ServiceHandlingForm.setter
    def ServiceHandlingForm(self, ServiceHandlingForm):
        self._ServiceHandlingForm = ServiceHandlingForm

    @property
    def AuthorizationLetter(self):
        return self._AuthorizationLetter

    @AuthorizationLetter.setter
    def AuthorizationLetter(self, AuthorizationLetter):
        self._AuthorizationLetter = AuthorizationLetter

    @property
    def SafetyCommitment(self):
        return self._SafetyCommitment

    @SafetyCommitment.setter
    def SafetyCommitment(self, SafetyCommitment):
        self._SafetyCommitment = SafetyCommitment

    @property
    def ServiceStartDate(self):
        return self._ServiceStartDate

    @ServiceStartDate.setter
    def ServiceStartDate(self, ServiceStartDate):
        self._ServiceStartDate = ServiceStartDate

    @property
    def ServiceEndDate(self):
        return self._ServiceEndDate

    @ServiceEndDate.setter
    def ServiceEndDate(self, ServiceEndDate):
        self._ServiceEndDate = ServiceEndDate

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime


    def _deserialize(self, params):
        self._ServiceProvider = params.get("ServiceProvider")
        self._ComplianceId = params.get("ComplianceId")
        self._Company = params.get("Company")
        self._UniformSocialCreditCode = params.get("UniformSocialCreditCode")
        self._LegalPerson = params.get("LegalPerson")
        self._IssuingAuthority = params.get("IssuingAuthority")
        self._BusinessLicense = params.get("BusinessLicense")
        self._BusinessAddress = params.get("BusinessAddress")
        self._PostCode = params.get("PostCode")
        self._Manager = params.get("Manager")
        self._ManagerId = params.get("ManagerId")
        self._ManagerIdCard = params.get("ManagerIdCard")
        self._ManagerAddress = params.get("ManagerAddress")
        self._ManagerTelephone = params.get("ManagerTelephone")
        self._Email = params.get("Email")
        self._ServiceHandlingForm = params.get("ServiceHandlingForm")
        self._AuthorizationLetter = params.get("AuthorizationLetter")
        self._SafetyCommitment = params.get("SafetyCommitment")
        self._ServiceStartDate = params.get("ServiceStartDate")
        self._ServiceEndDate = params.get("ServiceEndDate")
        self._State = params.get("State")
        self._CreatedTime = params.get("CreatedTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CrossBorderFlowMonitorData(AbstractModel):
    """跨境带宽监控数据

    """

    def __init__(self):
        r"""
        :param _InBandwidth: 入带宽，单位：`bps`。
        :type InBandwidth: list of int
        :param _OutBandwidth: 出带宽，单位：`bps`。
        :type OutBandwidth: list of int
        :param _InPkg: 入包，单位：`pps`。
        :type InPkg: list of int
        :param _OutPkg: 出包，单位：`pps`。
        :type OutPkg: list of int
        """
        self._InBandwidth = None
        self._OutBandwidth = None
        self._InPkg = None
        self._OutPkg = None

    @property
    def InBandwidth(self):
        return self._InBandwidth

    @InBandwidth.setter
    def InBandwidth(self, InBandwidth):
        self._InBandwidth = InBandwidth

    @property
    def OutBandwidth(self):
        return self._OutBandwidth

    @OutBandwidth.setter
    def OutBandwidth(self, OutBandwidth):
        self._OutBandwidth = OutBandwidth

    @property
    def InPkg(self):
        return self._InPkg

    @InPkg.setter
    def InPkg(self, InPkg):
        self._InPkg = InPkg

    @property
    def OutPkg(self):
        return self._OutPkg

    @OutPkg.setter
    def OutPkg(self, OutPkg):
        self._OutPkg = OutPkg


    def _deserialize(self, params):
        self._InBandwidth = params.get("InBandwidth")
        self._OutBandwidth = params.get("OutBandwidth")
        self._InPkg = params.get("InPkg")
        self._OutPkg = params.get("OutPkg")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CustomerGateway(AbstractModel):
    """对端网关

    """

    def __init__(self):
        r"""
        :param _CustomerGatewayId: 用户网关唯一ID
        :type CustomerGatewayId: str
        :param _CustomerGatewayName: 网关名称
        :type CustomerGatewayName: str
        :param _IpAddress: 公网地址
        :type IpAddress: str
        :param _CreatedTime: 创建时间
        :type CreatedTime: str
        :param _BgpAsn: BGP ASN。
        :type BgpAsn: int
        """
        self._CustomerGatewayId = None
        self._CustomerGatewayName = None
        self._IpAddress = None
        self._CreatedTime = None
        self._BgpAsn = None

    @property
    def CustomerGatewayId(self):
        return self._CustomerGatewayId

    @CustomerGatewayId.setter
    def CustomerGatewayId(self, CustomerGatewayId):
        self._CustomerGatewayId = CustomerGatewayId

    @property
    def CustomerGatewayName(self):
        return self._CustomerGatewayName

    @CustomerGatewayName.setter
    def CustomerGatewayName(self, CustomerGatewayName):
        self._CustomerGatewayName = CustomerGatewayName

    @property
    def IpAddress(self):
        return self._IpAddress

    @IpAddress.setter
    def IpAddress(self, IpAddress):
        self._IpAddress = IpAddress

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def BgpAsn(self):
        return self._BgpAsn

    @BgpAsn.setter
    def BgpAsn(self, BgpAsn):
        self._BgpAsn = BgpAsn


    def _deserialize(self, params):
        self._CustomerGatewayId = params.get("CustomerGatewayId")
        self._CustomerGatewayName = params.get("CustomerGatewayName")
        self._IpAddress = params.get("IpAddress")
        self._CreatedTime = params.get("CreatedTime")
        self._BgpAsn = params.get("BgpAsn")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CustomerGatewayVendor(AbstractModel):
    """对端网关厂商信息对象。

    """

    def __init__(self):
        r"""
        :param _Platform: 平台。
        :type Platform: str
        :param _SoftwareVersion: 软件版本。
        :type SoftwareVersion: str
        :param _VendorName: 供应商名称。
        :type VendorName: str
        """
        self._Platform = None
        self._SoftwareVersion = None
        self._VendorName = None

    @property
    def Platform(self):
        return self._Platform

    @Platform.setter
    def Platform(self, Platform):
        self._Platform = Platform

    @property
    def SoftwareVersion(self):
        return self._SoftwareVersion

    @SoftwareVersion.setter
    def SoftwareVersion(self, SoftwareVersion):
        self._SoftwareVersion = SoftwareVersion

    @property
    def VendorName(self):
        return self._VendorName

    @VendorName.setter
    def VendorName(self, VendorName):
        self._VendorName = VendorName


    def _deserialize(self, params):
        self._Platform = params.get("Platform")
        self._SoftwareVersion = params.get("SoftwareVersion")
        self._VendorName = params.get("VendorName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CvmInstance(AbstractModel):
    """云主机实例信息。

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。
        :type VpcId: str
        :param _SubnetId: 子网实例ID。
        :type SubnetId: str
        :param _InstanceId: 云主机实例ID
        :type InstanceId: str
        :param _InstanceName: 云主机名称。
        :type InstanceName: str
        :param _InstanceState: 云主机状态。
        :type InstanceState: str
        :param _CPU: 实例的CPU核数，单位：核。
        :type CPU: int
        :param _Memory: 实例内存容量，单位：GB。
        :type Memory: int
        :param _CreatedTime: 创建时间。
        :type CreatedTime: str
        :param _InstanceType: 实例机型。
        :type InstanceType: str
        :param _EniLimit: 实例弹性网卡配额（包含主网卡）。
        :type EniLimit: int
        :param _EniIpLimit: 实例弹性网卡内网IP配额（包含主网卡）。
        :type EniIpLimit: int
        :param _InstanceEniCount: 实例已绑定弹性网卡的个数（包含主网卡）。
        :type InstanceEniCount: int
        """
        self._VpcId = None
        self._SubnetId = None
        self._InstanceId = None
        self._InstanceName = None
        self._InstanceState = None
        self._CPU = None
        self._Memory = None
        self._CreatedTime = None
        self._InstanceType = None
        self._EniLimit = None
        self._EniIpLimit = None
        self._InstanceEniCount = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def InstanceName(self):
        return self._InstanceName

    @InstanceName.setter
    def InstanceName(self, InstanceName):
        self._InstanceName = InstanceName

    @property
    def InstanceState(self):
        return self._InstanceState

    @InstanceState.setter
    def InstanceState(self, InstanceState):
        self._InstanceState = InstanceState

    @property
    def CPU(self):
        return self._CPU

    @CPU.setter
    def CPU(self, CPU):
        self._CPU = CPU

    @property
    def Memory(self):
        return self._Memory

    @Memory.setter
    def Memory(self, Memory):
        self._Memory = Memory

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def InstanceType(self):
        return self._InstanceType

    @InstanceType.setter
    def InstanceType(self, InstanceType):
        self._InstanceType = InstanceType

    @property
    def EniLimit(self):
        return self._EniLimit

    @EniLimit.setter
    def EniLimit(self, EniLimit):
        self._EniLimit = EniLimit

    @property
    def EniIpLimit(self):
        return self._EniIpLimit

    @EniIpLimit.setter
    def EniIpLimit(self, EniIpLimit):
        self._EniIpLimit = EniIpLimit

    @property
    def InstanceEniCount(self):
        return self._InstanceEniCount

    @InstanceEniCount.setter
    def InstanceEniCount(self, InstanceEniCount):
        self._InstanceEniCount = InstanceEniCount


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._InstanceId = params.get("InstanceId")
        self._InstanceName = params.get("InstanceName")
        self._InstanceState = params.get("InstanceState")
        self._CPU = params.get("CPU")
        self._Memory = params.get("Memory")
        self._CreatedTime = params.get("CreatedTime")
        self._InstanceType = params.get("InstanceType")
        self._EniLimit = params.get("EniLimit")
        self._EniIpLimit = params.get("EniIpLimit")
        self._InstanceEniCount = params.get("InstanceEniCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DefaultVpcSubnet(AbstractModel):
    """默认VPC和子网

    """

    def __init__(self):
        r"""
        :param _VpcId: 默认VpcId。
        :type VpcId: str
        :param _SubnetId: 默认SubnetId。
        :type SubnetId: str
        :param _VpcName: 默认Vpc名字。
        :type VpcName: str
        :param _SubnetName: 默认Subnet名字。
        :type SubnetName: str
        :param _CidrBlock: 默认子网网段。
        :type CidrBlock: str
        """
        self._VpcId = None
        self._SubnetId = None
        self._VpcName = None
        self._SubnetName = None
        self._CidrBlock = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def VpcName(self):
        return self._VpcName

    @VpcName.setter
    def VpcName(self, VpcName):
        self._VpcName = VpcName

    @property
    def SubnetName(self):
        return self._SubnetName

    @SubnetName.setter
    def SubnetName(self, SubnetName):
        self._SubnetName = SubnetName

    @property
    def CidrBlock(self):
        return self._CidrBlock

    @CidrBlock.setter
    def CidrBlock(self, CidrBlock):
        self._CidrBlock = CidrBlock


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._VpcName = params.get("VpcName")
        self._SubnetName = params.get("SubnetName")
        self._CidrBlock = params.get("CidrBlock")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteAddressTemplateGroupRequest(AbstractModel):
    """DeleteAddressTemplateGroup请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressTemplateGroupId: IP地址模板集合实例ID，例如：ipmg-90cex8mq。
        :type AddressTemplateGroupId: str
        """
        self._AddressTemplateGroupId = None

    @property
    def AddressTemplateGroupId(self):
        return self._AddressTemplateGroupId

    @AddressTemplateGroupId.setter
    def AddressTemplateGroupId(self, AddressTemplateGroupId):
        self._AddressTemplateGroupId = AddressTemplateGroupId


    def _deserialize(self, params):
        self._AddressTemplateGroupId = params.get("AddressTemplateGroupId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteAddressTemplateGroupResponse(AbstractModel):
    """DeleteAddressTemplateGroup返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteAddressTemplateRequest(AbstractModel):
    """DeleteAddressTemplate请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressTemplateId: IP地址模板实例ID，例如：ipm-09o5m8kc。
        :type AddressTemplateId: str
        """
        self._AddressTemplateId = None

    @property
    def AddressTemplateId(self):
        return self._AddressTemplateId

    @AddressTemplateId.setter
    def AddressTemplateId(self, AddressTemplateId):
        self._AddressTemplateId = AddressTemplateId


    def _deserialize(self, params):
        self._AddressTemplateId = params.get("AddressTemplateId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteAddressTemplateResponse(AbstractModel):
    """DeleteAddressTemplate返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteAssistantCidrRequest(AbstractModel):
    """DeleteAssistantCidr请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: `VPC`实例`ID`。形如：`vpc-6v2ht8q5`。
        :type VpcId: str
        :param _CidrBlocks: CIDR数组，格式如["10.0.0.0/16", "172.16.0.0/16"]。
        :type CidrBlocks: list of str
        """
        self._VpcId = None
        self._CidrBlocks = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def CidrBlocks(self):
        return self._CidrBlocks

    @CidrBlocks.setter
    def CidrBlocks(self, CidrBlocks):
        self._CidrBlocks = CidrBlocks


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._CidrBlocks = params.get("CidrBlocks")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteAssistantCidrResponse(AbstractModel):
    """DeleteAssistantCidr返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBandwidthPackageRequest(AbstractModel):
    """DeleteBandwidthPackage请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BandwidthPackageId: 待删除带宽包唯一ID
        :type BandwidthPackageId: str
        """
        self._BandwidthPackageId = None

    @property
    def BandwidthPackageId(self):
        return self._BandwidthPackageId

    @BandwidthPackageId.setter
    def BandwidthPackageId(self, BandwidthPackageId):
        self._BandwidthPackageId = BandwidthPackageId


    def _deserialize(self, params):
        self._BandwidthPackageId = params.get("BandwidthPackageId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteBandwidthPackageResponse(AbstractModel):
    """DeleteBandwidthPackage返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteCcnRequest(AbstractModel):
    """DeleteCcn请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnId: CCN实例ID。形如：ccn-f49l6u0z。
        :type CcnId: str
        """
        self._CcnId = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteCcnResponse(AbstractModel):
    """DeleteCcn返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteCustomerGatewayRequest(AbstractModel):
    """DeleteCustomerGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CustomerGatewayId: 对端网关ID，例如：cgw-2wqq41m9，可通过[DescribeCustomerGateways](https://cloud.tencent.com/document/api/215/17516)接口查询对端网关。
        :type CustomerGatewayId: str
        """
        self._CustomerGatewayId = None

    @property
    def CustomerGatewayId(self):
        return self._CustomerGatewayId

    @CustomerGatewayId.setter
    def CustomerGatewayId(self, CustomerGatewayId):
        self._CustomerGatewayId = CustomerGatewayId


    def _deserialize(self, params):
        self._CustomerGatewayId = params.get("CustomerGatewayId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteCustomerGatewayResponse(AbstractModel):
    """DeleteCustomerGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteDhcpIpRequest(AbstractModel):
    """DeleteDhcpIp请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DhcpIpId: `DhcpIp`的`ID`，是`DhcpIp`的唯一标识。
        :type DhcpIpId: str
        """
        self._DhcpIpId = None

    @property
    def DhcpIpId(self):
        return self._DhcpIpId

    @DhcpIpId.setter
    def DhcpIpId(self, DhcpIpId):
        self._DhcpIpId = DhcpIpId


    def _deserialize(self, params):
        self._DhcpIpId = params.get("DhcpIpId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteDhcpIpResponse(AbstractModel):
    """DeleteDhcpIp返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteDirectConnectGatewayCcnRoutesRequest(AbstractModel):
    """DeleteDirectConnectGatewayCcnRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DirectConnectGatewayId: 专线网关ID，形如：dcg-prpqlmg1
        :type DirectConnectGatewayId: str
        :param _RouteIds: 路由ID。形如：ccnr-f49l6u0z。
        :type RouteIds: list of str
        """
        self._DirectConnectGatewayId = None
        self._RouteIds = None

    @property
    def DirectConnectGatewayId(self):
        return self._DirectConnectGatewayId

    @DirectConnectGatewayId.setter
    def DirectConnectGatewayId(self, DirectConnectGatewayId):
        self._DirectConnectGatewayId = DirectConnectGatewayId

    @property
    def RouteIds(self):
        return self._RouteIds

    @RouteIds.setter
    def RouteIds(self, RouteIds):
        self._RouteIds = RouteIds


    def _deserialize(self, params):
        self._DirectConnectGatewayId = params.get("DirectConnectGatewayId")
        self._RouteIds = params.get("RouteIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteDirectConnectGatewayCcnRoutesResponse(AbstractModel):
    """DeleteDirectConnectGatewayCcnRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteDirectConnectGatewayRequest(AbstractModel):
    """DeleteDirectConnectGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DirectConnectGatewayId: 专线网关唯一`ID`，形如：`dcg-9o233uri`。
        :type DirectConnectGatewayId: str
        """
        self._DirectConnectGatewayId = None

    @property
    def DirectConnectGatewayId(self):
        return self._DirectConnectGatewayId

    @DirectConnectGatewayId.setter
    def DirectConnectGatewayId(self, DirectConnectGatewayId):
        self._DirectConnectGatewayId = DirectConnectGatewayId


    def _deserialize(self, params):
        self._DirectConnectGatewayId = params.get("DirectConnectGatewayId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteDirectConnectGatewayResponse(AbstractModel):
    """DeleteDirectConnectGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteFlowLogRequest(AbstractModel):
    """DeleteFlowLog请求参数结构体

    """

    def __init__(self):
        r"""
        :param _FlowLogId: 流日志唯一ID。
        :type FlowLogId: str
        :param _VpcId: 私用网络ID或者统一ID，建议使用统一ID，删除云联网流日志时，可不填，其他流日志类型必填。
        :type VpcId: str
        """
        self._FlowLogId = None
        self._VpcId = None

    @property
    def FlowLogId(self):
        return self._FlowLogId

    @FlowLogId.setter
    def FlowLogId(self, FlowLogId):
        self._FlowLogId = FlowLogId

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId


    def _deserialize(self, params):
        self._FlowLogId = params.get("FlowLogId")
        self._VpcId = params.get("VpcId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteFlowLogResponse(AbstractModel):
    """DeleteFlowLog返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteHaVipRequest(AbstractModel):
    """DeleteHaVip请求参数结构体

    """

    def __init__(self):
        r"""
        :param _HaVipId: `HAVIP`唯一`ID`，形如：`havip-9o233uri`。
        :type HaVipId: str
        """
        self._HaVipId = None

    @property
    def HaVipId(self):
        return self._HaVipId

    @HaVipId.setter
    def HaVipId(self, HaVipId):
        self._HaVipId = HaVipId


    def _deserialize(self, params):
        self._HaVipId = params.get("HaVipId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteHaVipResponse(AbstractModel):
    """DeleteHaVip返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteIp6TranslatorsRequest(AbstractModel):
    """DeleteIp6Translators请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip6TranslatorIds: 待释放的IPV6转换实例的唯一ID，形如‘ip6-xxxxxxxx’
        :type Ip6TranslatorIds: list of str
        """
        self._Ip6TranslatorIds = None

    @property
    def Ip6TranslatorIds(self):
        return self._Ip6TranslatorIds

    @Ip6TranslatorIds.setter
    def Ip6TranslatorIds(self, Ip6TranslatorIds):
        self._Ip6TranslatorIds = Ip6TranslatorIds


    def _deserialize(self, params):
        self._Ip6TranslatorIds = params.get("Ip6TranslatorIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteIp6TranslatorsResponse(AbstractModel):
    """DeleteIp6Translators返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteLocalGatewayRequest(AbstractModel):
    """DeleteLocalGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _LocalGatewayId: 本地网关实例ID。
        :type LocalGatewayId: str
        :param _CdcId: CDC实例ID。
        :type CdcId: str
        :param _VpcId: VPC实例ID。
        :type VpcId: str
        """
        self._LocalGatewayId = None
        self._CdcId = None
        self._VpcId = None

    @property
    def LocalGatewayId(self):
        return self._LocalGatewayId

    @LocalGatewayId.setter
    def LocalGatewayId(self, LocalGatewayId):
        self._LocalGatewayId = LocalGatewayId

    @property
    def CdcId(self):
        return self._CdcId

    @CdcId.setter
    def CdcId(self, CdcId):
        self._CdcId = CdcId

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId


    def _deserialize(self, params):
        self._LocalGatewayId = params.get("LocalGatewayId")
        self._CdcId = params.get("CdcId")
        self._VpcId = params.get("VpcId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteLocalGatewayResponse(AbstractModel):
    """DeleteLocalGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteNatGatewayDestinationIpPortTranslationNatRuleRequest(AbstractModel):
    """DeleteNatGatewayDestinationIpPortTranslationNatRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayId: NAT网关的ID，形如：`nat-df45454`。
        :type NatGatewayId: str
        :param _DestinationIpPortTranslationNatRules: NAT网关的端口转换规则。
        :type DestinationIpPortTranslationNatRules: list of DestinationIpPortTranslationNatRule
        """
        self._NatGatewayId = None
        self._DestinationIpPortTranslationNatRules = None

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def DestinationIpPortTranslationNatRules(self):
        return self._DestinationIpPortTranslationNatRules

    @DestinationIpPortTranslationNatRules.setter
    def DestinationIpPortTranslationNatRules(self, DestinationIpPortTranslationNatRules):
        self._DestinationIpPortTranslationNatRules = DestinationIpPortTranslationNatRules


    def _deserialize(self, params):
        self._NatGatewayId = params.get("NatGatewayId")
        if params.get("DestinationIpPortTranslationNatRules") is not None:
            self._DestinationIpPortTranslationNatRules = []
            for item in params.get("DestinationIpPortTranslationNatRules"):
                obj = DestinationIpPortTranslationNatRule()
                obj._deserialize(item)
                self._DestinationIpPortTranslationNatRules.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteNatGatewayDestinationIpPortTranslationNatRuleResponse(AbstractModel):
    """DeleteNatGatewayDestinationIpPortTranslationNatRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteNatGatewayRequest(AbstractModel):
    """DeleteNatGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayId: NAT网关的ID，形如：`nat-df45454`。
        :type NatGatewayId: str
        """
        self._NatGatewayId = None

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId


    def _deserialize(self, params):
        self._NatGatewayId = params.get("NatGatewayId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteNatGatewayResponse(AbstractModel):
    """DeleteNatGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteNatGatewaySourceIpTranslationNatRuleRequest(AbstractModel):
    """DeleteNatGatewaySourceIpTranslationNatRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayId: NAT网关的ID，形如：`nat-df45454`。
        :type NatGatewayId: str
        :param _NatGatewaySnatIds: NAT网关的SNAT ID列表，形如：`snat-df43254`。
        :type NatGatewaySnatIds: list of str
        """
        self._NatGatewayId = None
        self._NatGatewaySnatIds = None

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def NatGatewaySnatIds(self):
        return self._NatGatewaySnatIds

    @NatGatewaySnatIds.setter
    def NatGatewaySnatIds(self, NatGatewaySnatIds):
        self._NatGatewaySnatIds = NatGatewaySnatIds


    def _deserialize(self, params):
        self._NatGatewayId = params.get("NatGatewayId")
        self._NatGatewaySnatIds = params.get("NatGatewaySnatIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteNatGatewaySourceIpTranslationNatRuleResponse(AbstractModel):
    """DeleteNatGatewaySourceIpTranslationNatRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteNetDetectRequest(AbstractModel):
    """DeleteNetDetect请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetDetectId: 网络探测实例`ID`。形如：`netd-12345678`。
        :type NetDetectId: str
        """
        self._NetDetectId = None

    @property
    def NetDetectId(self):
        return self._NetDetectId

    @NetDetectId.setter
    def NetDetectId(self, NetDetectId):
        self._NetDetectId = NetDetectId


    def _deserialize(self, params):
        self._NetDetectId = params.get("NetDetectId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteNetDetectResponse(AbstractModel):
    """DeleteNetDetect返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteNetworkAclEntriesRequest(AbstractModel):
    """DeleteNetworkAclEntries请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkAclId: 三元组网络ACL实例ID。例如：acl-12345678。
        :type NetworkAclId: str
        :param _NetworkAclEntrySet: 三元组网络ACL规则集。
        :type NetworkAclEntrySet: :class:`tencentcloud.vpc.v20170312.models.NetworkAclEntrySet`
        """
        self._NetworkAclId = None
        self._NetworkAclEntrySet = None

    @property
    def NetworkAclId(self):
        return self._NetworkAclId

    @NetworkAclId.setter
    def NetworkAclId(self, NetworkAclId):
        self._NetworkAclId = NetworkAclId

    @property
    def NetworkAclEntrySet(self):
        return self._NetworkAclEntrySet

    @NetworkAclEntrySet.setter
    def NetworkAclEntrySet(self, NetworkAclEntrySet):
        self._NetworkAclEntrySet = NetworkAclEntrySet


    def _deserialize(self, params):
        self._NetworkAclId = params.get("NetworkAclId")
        if params.get("NetworkAclEntrySet") is not None:
            self._NetworkAclEntrySet = NetworkAclEntrySet()
            self._NetworkAclEntrySet._deserialize(params.get("NetworkAclEntrySet"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteNetworkAclEntriesResponse(AbstractModel):
    """DeleteNetworkAclEntries返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteNetworkAclQuintupleEntriesRequest(AbstractModel):
    """DeleteNetworkAclQuintupleEntries请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkAclId: 网络ACL实例ID。例如：acl-12345678。
        :type NetworkAclId: str
        :param _NetworkAclQuintupleSet: 网络五元组ACL规则集。
        :type NetworkAclQuintupleSet: :class:`tencentcloud.vpc.v20170312.models.NetworkAclQuintupleEntries`
        """
        self._NetworkAclId = None
        self._NetworkAclQuintupleSet = None

    @property
    def NetworkAclId(self):
        return self._NetworkAclId

    @NetworkAclId.setter
    def NetworkAclId(self, NetworkAclId):
        self._NetworkAclId = NetworkAclId

    @property
    def NetworkAclQuintupleSet(self):
        return self._NetworkAclQuintupleSet

    @NetworkAclQuintupleSet.setter
    def NetworkAclQuintupleSet(self, NetworkAclQuintupleSet):
        self._NetworkAclQuintupleSet = NetworkAclQuintupleSet


    def _deserialize(self, params):
        self._NetworkAclId = params.get("NetworkAclId")
        if params.get("NetworkAclQuintupleSet") is not None:
            self._NetworkAclQuintupleSet = NetworkAclQuintupleEntries()
            self._NetworkAclQuintupleSet._deserialize(params.get("NetworkAclQuintupleSet"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteNetworkAclQuintupleEntriesResponse(AbstractModel):
    """DeleteNetworkAclQuintupleEntries返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteNetworkAclRequest(AbstractModel):
    """DeleteNetworkAcl请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkAclId: 网络ACL实例ID。例如：acl-12345678。
        :type NetworkAclId: str
        """
        self._NetworkAclId = None

    @property
    def NetworkAclId(self):
        return self._NetworkAclId

    @NetworkAclId.setter
    def NetworkAclId(self, NetworkAclId):
        self._NetworkAclId = NetworkAclId


    def _deserialize(self, params):
        self._NetworkAclId = params.get("NetworkAclId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteNetworkAclResponse(AbstractModel):
    """DeleteNetworkAcl返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteNetworkInterfaceRequest(AbstractModel):
    """DeleteNetworkInterface请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceId: 弹性网卡实例ID，例如：eni-m6dyj72l。
        :type NetworkInterfaceId: str
        """
        self._NetworkInterfaceId = None

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId


    def _deserialize(self, params):
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteNetworkInterfaceResponse(AbstractModel):
    """DeleteNetworkInterface返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteRouteTableRequest(AbstractModel):
    """DeleteRouteTable请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RouteTableId: 路由表实例ID，例如：rtb-azd4dt1c。
        :type RouteTableId: str
        """
        self._RouteTableId = None

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId


    def _deserialize(self, params):
        self._RouteTableId = params.get("RouteTableId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteRouteTableResponse(AbstractModel):
    """DeleteRouteTable返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteRoutesRequest(AbstractModel):
    """DeleteRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RouteTableId: 路由表实例ID。
        :type RouteTableId: str
        :param _Routes: 路由策略对象，删除路由策略时，仅需使用Route的RouteId字段。
        :type Routes: list of Route
        """
        self._RouteTableId = None
        self._Routes = None

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId

    @property
    def Routes(self):
        return self._Routes

    @Routes.setter
    def Routes(self, Routes):
        self._Routes = Routes


    def _deserialize(self, params):
        self._RouteTableId = params.get("RouteTableId")
        if params.get("Routes") is not None:
            self._Routes = []
            for item in params.get("Routes"):
                obj = Route()
                obj._deserialize(item)
                self._Routes.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteRoutesResponse(AbstractModel):
    """DeleteRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RouteSet: 已删除的路由策略详情。
        :type RouteSet: list of Route
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RouteSet = None
        self._RequestId = None

    @property
    def RouteSet(self):
        return self._RouteSet

    @RouteSet.setter
    def RouteSet(self, RouteSet):
        self._RouteSet = RouteSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("RouteSet") is not None:
            self._RouteSet = []
            for item in params.get("RouteSet"):
                obj = Route()
                obj._deserialize(item)
                self._RouteSet.append(obj)
        self._RequestId = params.get("RequestId")


class DeleteSecurityGroupPoliciesRequest(AbstractModel):
    """DeleteSecurityGroupPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupId: 安全组实例ID，例如sg-33ocnj9n，可通过<a href="https://cloud.tencent.com/document/product/215/15808">DescribeSecurityGroups</a>获取。
        :type SecurityGroupId: str
        :param _SecurityGroupPolicySet: 安全组规则集合。一个请求中只能删除单个方向的一条或多条规则。支持指定索引（PolicyIndex） 匹配删除和安全组规则匹配删除两种方式，一个请求中只能使用一种匹配方式。
        :type SecurityGroupPolicySet: :class:`tencentcloud.vpc.v20170312.models.SecurityGroupPolicySet`
        """
        self._SecurityGroupId = None
        self._SecurityGroupPolicySet = None

    @property
    def SecurityGroupId(self):
        return self._SecurityGroupId

    @SecurityGroupId.setter
    def SecurityGroupId(self, SecurityGroupId):
        self._SecurityGroupId = SecurityGroupId

    @property
    def SecurityGroupPolicySet(self):
        return self._SecurityGroupPolicySet

    @SecurityGroupPolicySet.setter
    def SecurityGroupPolicySet(self, SecurityGroupPolicySet):
        self._SecurityGroupPolicySet = SecurityGroupPolicySet


    def _deserialize(self, params):
        self._SecurityGroupId = params.get("SecurityGroupId")
        if params.get("SecurityGroupPolicySet") is not None:
            self._SecurityGroupPolicySet = SecurityGroupPolicySet()
            self._SecurityGroupPolicySet._deserialize(params.get("SecurityGroupPolicySet"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteSecurityGroupPoliciesResponse(AbstractModel):
    """DeleteSecurityGroupPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteSecurityGroupRequest(AbstractModel):
    """DeleteSecurityGroup请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupId: 安全组实例ID，例如sg-33ocnj9n，可通过<a href="https://cloud.tencent.com/document/product/215/15808">DescribeSecurityGroups</a>获取。
        :type SecurityGroupId: str
        """
        self._SecurityGroupId = None

    @property
    def SecurityGroupId(self):
        return self._SecurityGroupId

    @SecurityGroupId.setter
    def SecurityGroupId(self, SecurityGroupId):
        self._SecurityGroupId = SecurityGroupId


    def _deserialize(self, params):
        self._SecurityGroupId = params.get("SecurityGroupId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteSecurityGroupResponse(AbstractModel):
    """DeleteSecurityGroup返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteServiceTemplateGroupRequest(AbstractModel):
    """DeleteServiceTemplateGroup请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ServiceTemplateGroupId: 协议端口模板集合实例ID，例如：ppmg-n17uxvve。
        :type ServiceTemplateGroupId: str
        """
        self._ServiceTemplateGroupId = None

    @property
    def ServiceTemplateGroupId(self):
        return self._ServiceTemplateGroupId

    @ServiceTemplateGroupId.setter
    def ServiceTemplateGroupId(self, ServiceTemplateGroupId):
        self._ServiceTemplateGroupId = ServiceTemplateGroupId


    def _deserialize(self, params):
        self._ServiceTemplateGroupId = params.get("ServiceTemplateGroupId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteServiceTemplateGroupResponse(AbstractModel):
    """DeleteServiceTemplateGroup返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteServiceTemplateRequest(AbstractModel):
    """DeleteServiceTemplate请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ServiceTemplateId: 协议端口模板实例ID，例如：ppm-e6dy460g。
        :type ServiceTemplateId: str
        """
        self._ServiceTemplateId = None

    @property
    def ServiceTemplateId(self):
        return self._ServiceTemplateId

    @ServiceTemplateId.setter
    def ServiceTemplateId(self, ServiceTemplateId):
        self._ServiceTemplateId = ServiceTemplateId


    def _deserialize(self, params):
        self._ServiceTemplateId = params.get("ServiceTemplateId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteServiceTemplateResponse(AbstractModel):
    """DeleteServiceTemplate返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteSnapshotPoliciesRequest(AbstractModel):
    """DeleteSnapshotPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SnapshotPolicyIds: 快照策略Id。
        :type SnapshotPolicyIds: list of str
        """
        self._SnapshotPolicyIds = None

    @property
    def SnapshotPolicyIds(self):
        return self._SnapshotPolicyIds

    @SnapshotPolicyIds.setter
    def SnapshotPolicyIds(self, SnapshotPolicyIds):
        self._SnapshotPolicyIds = SnapshotPolicyIds


    def _deserialize(self, params):
        self._SnapshotPolicyIds = params.get("SnapshotPolicyIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteSnapshotPoliciesResponse(AbstractModel):
    """DeleteSnapshotPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteSubnetRequest(AbstractModel):
    """DeleteSubnet请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SubnetId: 子网实例ID。可通过DescribeSubnets接口返回值中的SubnetId获取。
        :type SubnetId: str
        """
        self._SubnetId = None

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId


    def _deserialize(self, params):
        self._SubnetId = params.get("SubnetId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteSubnetResponse(AbstractModel):
    """DeleteSubnet返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteTemplateMemberRequest(AbstractModel):
    """DeleteTemplateMember请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TemplateId: 参数模板实例ID，支持IP地址、协议端口、IP地址组、协议端口组四种参数模板的实例ID。
        :type TemplateId: str
        :param _TemplateMember: 需要添加的参数模板成员信息，支持IP地址、协议端口、IP地址组、协议端口组四种类型，类型需要与TemplateId参数类型一致。
        :type TemplateMember: list of MemberInfo
        """
        self._TemplateId = None
        self._TemplateMember = None

    @property
    def TemplateId(self):
        return self._TemplateId

    @TemplateId.setter
    def TemplateId(self, TemplateId):
        self._TemplateId = TemplateId

    @property
    def TemplateMember(self):
        return self._TemplateMember

    @TemplateMember.setter
    def TemplateMember(self, TemplateMember):
        self._TemplateMember = TemplateMember


    def _deserialize(self, params):
        self._TemplateId = params.get("TemplateId")
        if params.get("TemplateMember") is not None:
            self._TemplateMember = []
            for item in params.get("TemplateMember"):
                obj = MemberInfo()
                obj._deserialize(item)
                self._TemplateMember.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteTemplateMemberResponse(AbstractModel):
    """DeleteTemplateMember返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteTrafficPackagesRequest(AbstractModel):
    """DeleteTrafficPackages请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TrafficPackageIds: 待删除的流量包唯一ID数组
        :type TrafficPackageIds: list of str
        """
        self._TrafficPackageIds = None

    @property
    def TrafficPackageIds(self):
        return self._TrafficPackageIds

    @TrafficPackageIds.setter
    def TrafficPackageIds(self, TrafficPackageIds):
        self._TrafficPackageIds = TrafficPackageIds


    def _deserialize(self, params):
        self._TrafficPackageIds = params.get("TrafficPackageIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteTrafficPackagesResponse(AbstractModel):
    """DeleteTrafficPackages返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteVpcEndPointRequest(AbstractModel):
    """DeleteVpcEndPoint请求参数结构体

    """

    def __init__(self):
        r"""
        :param _EndPointId: 终端节点ID。
        :type EndPointId: str
        """
        self._EndPointId = None

    @property
    def EndPointId(self):
        return self._EndPointId

    @EndPointId.setter
    def EndPointId(self, EndPointId):
        self._EndPointId = EndPointId


    def _deserialize(self, params):
        self._EndPointId = params.get("EndPointId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteVpcEndPointResponse(AbstractModel):
    """DeleteVpcEndPoint返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteVpcEndPointServiceRequest(AbstractModel):
    """DeleteVpcEndPointService请求参数结构体

    """

    def __init__(self):
        r"""
        :param _EndPointServiceId: 终端节点ID。
        :type EndPointServiceId: str
        """
        self._EndPointServiceId = None

    @property
    def EndPointServiceId(self):
        return self._EndPointServiceId

    @EndPointServiceId.setter
    def EndPointServiceId(self, EndPointServiceId):
        self._EndPointServiceId = EndPointServiceId


    def _deserialize(self, params):
        self._EndPointServiceId = params.get("EndPointServiceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteVpcEndPointServiceResponse(AbstractModel):
    """DeleteVpcEndPointService返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteVpcEndPointServiceWhiteListRequest(AbstractModel):
    """DeleteVpcEndPointServiceWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _UserUin: 用户UIN数组。
        :type UserUin: list of str
        :param _EndPointServiceId: 终端节点服务ID。
        :type EndPointServiceId: str
        """
        self._UserUin = None
        self._EndPointServiceId = None

    @property
    def UserUin(self):
        return self._UserUin

    @UserUin.setter
    def UserUin(self, UserUin):
        self._UserUin = UserUin

    @property
    def EndPointServiceId(self):
        return self._EndPointServiceId

    @EndPointServiceId.setter
    def EndPointServiceId(self, EndPointServiceId):
        self._EndPointServiceId = EndPointServiceId


    def _deserialize(self, params):
        self._UserUin = params.get("UserUin")
        self._EndPointServiceId = params.get("EndPointServiceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteVpcEndPointServiceWhiteListResponse(AbstractModel):
    """DeleteVpcEndPointServiceWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteVpcPeeringConnectionRequest(AbstractModel):
    """DeleteVpcPeeringConnection请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PeeringConnectionId: 对等连接唯一ID。
        :type PeeringConnectionId: str
        """
        self._PeeringConnectionId = None

    @property
    def PeeringConnectionId(self):
        return self._PeeringConnectionId

    @PeeringConnectionId.setter
    def PeeringConnectionId(self, PeeringConnectionId):
        self._PeeringConnectionId = PeeringConnectionId


    def _deserialize(self, params):
        self._PeeringConnectionId = params.get("PeeringConnectionId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteVpcPeeringConnectionResponse(AbstractModel):
    """DeleteVpcPeeringConnection返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteVpcRequest(AbstractModel):
    """DeleteVpc请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。可通过DescribeVpcs接口返回值中的VpcId获取。
        :type VpcId: str
        """
        self._VpcId = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteVpcResponse(AbstractModel):
    """DeleteVpc返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteVpnConnectionRequest(AbstractModel):
    """DeleteVpnConnection请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关实例ID。
        :type VpnGatewayId: str
        :param _VpnConnectionId: VPN通道实例ID。形如：vpnx-f49l6u0z。
        :type VpnConnectionId: str
        """
        self._VpnGatewayId = None
        self._VpnConnectionId = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def VpnConnectionId(self):
        return self._VpnConnectionId

    @VpnConnectionId.setter
    def VpnConnectionId(self, VpnConnectionId):
        self._VpnConnectionId = VpnConnectionId


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        self._VpnConnectionId = params.get("VpnConnectionId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteVpnConnectionResponse(AbstractModel):
    """DeleteVpnConnection返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteVpnGatewayRequest(AbstractModel):
    """DeleteVpnGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关实例ID。
        :type VpnGatewayId: str
        """
        self._VpnGatewayId = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteVpnGatewayResponse(AbstractModel):
    """DeleteVpnGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteVpnGatewayRoutesRequest(AbstractModel):
    """DeleteVpnGatewayRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关实例ID
        :type VpnGatewayId: str
        :param _RouteIds: 路由ID信息列表，可以通过[DescribeVpnGatewayRoutes](https://cloud.tencent.com/document/api/215/57676)接口查询。
        :type RouteIds: list of str
        """
        self._VpnGatewayId = None
        self._RouteIds = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def RouteIds(self):
        return self._RouteIds

    @RouteIds.setter
    def RouteIds(self, RouteIds):
        self._RouteIds = RouteIds


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        self._RouteIds = params.get("RouteIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteVpnGatewayRoutesResponse(AbstractModel):
    """DeleteVpnGatewayRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteVpnGatewaySslClientRequest(AbstractModel):
    """DeleteVpnGatewaySslClient请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SslVpnClientId: SSL-VPN-CLIENT 实例ID。不可和SslVpnClientIds同时使用。
        :type SslVpnClientId: str
        :param _SslVpnClientIds: SSL-VPN-CLIENT 实例ID列表。批量删除时使用。不可和SslVpnClientId同时使用。
        :type SslVpnClientIds: list of str
        """
        self._SslVpnClientId = None
        self._SslVpnClientIds = None

    @property
    def SslVpnClientId(self):
        return self._SslVpnClientId

    @SslVpnClientId.setter
    def SslVpnClientId(self, SslVpnClientId):
        self._SslVpnClientId = SslVpnClientId

    @property
    def SslVpnClientIds(self):
        return self._SslVpnClientIds

    @SslVpnClientIds.setter
    def SslVpnClientIds(self, SslVpnClientIds):
        self._SslVpnClientIds = SslVpnClientIds


    def _deserialize(self, params):
        self._SslVpnClientId = params.get("SslVpnClientId")
        self._SslVpnClientIds = params.get("SslVpnClientIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteVpnGatewaySslClientResponse(AbstractModel):
    """DeleteVpnGatewaySslClient返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步任务ID。
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class DeleteVpnGatewaySslServerRequest(AbstractModel):
    """DeleteVpnGatewaySslServer请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SslVpnServerId: SSL-VPN-SERVER 实例ID。
        :type SslVpnServerId: str
        """
        self._SslVpnServerId = None

    @property
    def SslVpnServerId(self):
        return self._SslVpnServerId

    @SslVpnServerId.setter
    def SslVpnServerId(self, SslVpnServerId):
        self._SslVpnServerId = SslVpnServerId


    def _deserialize(self, params):
        self._SslVpnServerId = params.get("SslVpnServerId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteVpnGatewaySslServerResponse(AbstractModel):
    """DeleteVpnGatewaySslServer返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步任务ID。
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class DescribeAccountAttributesRequest(AbstractModel):
    """DescribeAccountAttributes请求参数结构体

    """


class DescribeAccountAttributesResponse(AbstractModel):
    """DescribeAccountAttributes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AccountAttributeSet: 用户账号属性对象。
        :type AccountAttributeSet: list of AccountAttribute
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AccountAttributeSet = None
        self._RequestId = None

    @property
    def AccountAttributeSet(self):
        return self._AccountAttributeSet

    @AccountAttributeSet.setter
    def AccountAttributeSet(self, AccountAttributeSet):
        self._AccountAttributeSet = AccountAttributeSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("AccountAttributeSet") is not None:
            self._AccountAttributeSet = []
            for item in params.get("AccountAttributeSet"):
                obj = AccountAttribute()
                obj._deserialize(item)
                self._AccountAttributeSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAddressQuotaRequest(AbstractModel):
    """DescribeAddressQuota请求参数结构体

    """


class DescribeAddressQuotaResponse(AbstractModel):
    """DescribeAddressQuota返回参数结构体

    """

    def __init__(self):
        r"""
        :param _QuotaSet: 账户 EIP 配额信息。
        :type QuotaSet: list of Quota
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._QuotaSet = None
        self._RequestId = None

    @property
    def QuotaSet(self):
        return self._QuotaSet

    @QuotaSet.setter
    def QuotaSet(self, QuotaSet):
        self._QuotaSet = QuotaSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("QuotaSet") is not None:
            self._QuotaSet = []
            for item in params.get("QuotaSet"):
                obj = Quota()
                obj._deserialize(item)
                self._QuotaSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAddressTemplateGroupsRequest(AbstractModel):
    """DescribeAddressTemplateGroups请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>address-template-group-name - String - （过滤条件）IP地址模板集合名称。</li>
<li>address-template-group-id - String - （过滤条件）IP地址模板实集合例ID，例如：ipmg-mdunqeb6。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: str
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: str
        :param _NeedMemberInfo: 是否查询IP地址模板成员标识。
        :type NeedMemberInfo: bool
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._NeedMemberInfo = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def NeedMemberInfo(self):
        return self._NeedMemberInfo

    @NeedMemberInfo.setter
    def NeedMemberInfo(self, NeedMemberInfo):
        self._NeedMemberInfo = NeedMemberInfo


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._NeedMemberInfo = params.get("NeedMemberInfo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAddressTemplateGroupsResponse(AbstractModel):
    """DescribeAddressTemplateGroups返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _AddressTemplateGroupSet: IP地址模板。
        :type AddressTemplateGroupSet: list of AddressTemplateGroup
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._AddressTemplateGroupSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def AddressTemplateGroupSet(self):
        return self._AddressTemplateGroupSet

    @AddressTemplateGroupSet.setter
    def AddressTemplateGroupSet(self, AddressTemplateGroupSet):
        self._AddressTemplateGroupSet = AddressTemplateGroupSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("AddressTemplateGroupSet") is not None:
            self._AddressTemplateGroupSet = []
            for item in params.get("AddressTemplateGroupSet"):
                obj = AddressTemplateGroup()
                obj._deserialize(item)
                self._AddressTemplateGroupSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAddressTemplatesRequest(AbstractModel):
    """DescribeAddressTemplates请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>address-template-name - IP地址模板名称。</li>
<li>address-template-id - IP地址模板实例ID，例如：ipm-mdunqeb6。</li>
<li>address-ip - IP地址。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: str
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: str
        :param _NeedMemberInfo: 是否获取IP地址模板成员标识。
        :type NeedMemberInfo: bool
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._NeedMemberInfo = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def NeedMemberInfo(self):
        return self._NeedMemberInfo

    @NeedMemberInfo.setter
    def NeedMemberInfo(self, NeedMemberInfo):
        self._NeedMemberInfo = NeedMemberInfo


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._NeedMemberInfo = params.get("NeedMemberInfo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAddressTemplatesResponse(AbstractModel):
    """DescribeAddressTemplates返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _AddressTemplateSet: IP地址模板。
        :type AddressTemplateSet: list of AddressTemplate
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._AddressTemplateSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def AddressTemplateSet(self):
        return self._AddressTemplateSet

    @AddressTemplateSet.setter
    def AddressTemplateSet(self, AddressTemplateSet):
        self._AddressTemplateSet = AddressTemplateSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("AddressTemplateSet") is not None:
            self._AddressTemplateSet = []
            for item in params.get("AddressTemplateSet"):
                obj = AddressTemplate()
                obj._deserialize(item)
                self._AddressTemplateSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAddressesRequest(AbstractModel):
    """DescribeAddresses请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressIds: 标识 EIP 的唯一 ID 列表。EIP 唯一 ID 形如：`eip-11112222`。参数不支持同时指定`AddressIds`和`Filters.address-id`。
        :type AddressIds: list of str
        :param _Filters: 每次请求的`Filters`的上限为10，`Filter.Values`的上限为100。详细的过滤条件如下：
<li> address-id - String - 是否必填：否 - （过滤条件）按照 EIP 的唯一 ID 过滤。EIP 唯一 ID 形如：eip-11112222。</li>
<li> address-name - String - 是否必填：否 - （过滤条件）按照 EIP 名称过滤。不支持模糊过滤。</li>
<li> address-ip - String - 是否必填：否 - （过滤条件）按照 EIP 的 IP 地址过滤。</li>
<li> address-status - String - 是否必填：否 - （过滤条件）按照 EIP 的状态过滤。状态包含：'CREATING'，'BINDING'，'BIND'，'UNBINDING'，'UNBIND'，'OFFLINING'，'BIND_ENI'。</li>
<li> instance-id - String - 是否必填：否 - （过滤条件）按照 EIP 绑定的实例 ID 过滤。实例 ID 形如：ins-11112222。</li>
<li> private-ip-address - String - 是否必填：否 - （过滤条件）按照 EIP 绑定的内网 IP 过滤。</li>
<li> network-interface-id - String - 是否必填：否 - （过滤条件）按照 EIP 绑定的弹性网卡 ID 过滤。弹性网卡 ID 形如：eni-11112222。</li>
<li> is-arrears - String - 是否必填：否 - （过滤条件）按照 EIP 是否欠费进行过滤。（TRUE：EIP 处于欠费状态|FALSE：EIP 费用状态正常）</li>
<li> address-type - String - 是否必填：否 - （过滤条件）按照 IP类型 进行过滤。可选值：'WanIP', 'EIP'，'AnycastEIP'，'HighQualityEIP'。默认值是'EIP'。</li>
<li> address-isp - String - 是否必填：否 - （过滤条件）按照 运营商类型 进行过滤。可选值：'BGP'，'CMCC'，'CUCC', 'CTCC'</li>
<li> dedicated-cluster-id - String - 是否必填：否 - （过滤条件）按照 CDC 的唯一 ID 过滤。CDC 唯一 ID 形如：cluster-11112222。</li>
<li> tag-key - String - 是否必填：否 - （过滤条件）按照标签键进行过滤。</li>
<li> tag-value - String - 是否必填：否 - （过滤条件）按照标签值进行过滤。</li>
<li> tag:tag-key - String - 是否必填：否 - （过滤条件）按照标签键值对进行过滤。tag-key使用具体的标签键进行替换。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。关于`Offset`的更进一步介绍请参考 API 中的相关小节。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。关于`Limit`的更进一步介绍请参考 API 中的相关小节。
        :type Limit: int
        """
        self._AddressIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def AddressIds(self):
        return self._AddressIds

    @AddressIds.setter
    def AddressIds(self, AddressIds):
        self._AddressIds = AddressIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._AddressIds = params.get("AddressIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAddressesResponse(AbstractModel):
    """DescribeAddresses返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的 EIP 数量。
        :type TotalCount: int
        :param _AddressSet: EIP 详细信息列表。
        :type AddressSet: list of Address
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._AddressSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def AddressSet(self):
        return self._AddressSet

    @AddressSet.setter
    def AddressSet(self, AddressSet):
        self._AddressSet = AddressSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("AddressSet") is not None:
            self._AddressSet = []
            for item in params.get("AddressSet"):
                obj = Address()
                obj._deserialize(item)
                self._AddressSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssistantCidrRequest(AbstractModel):
    """DescribeAssistantCidr请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcIds: `VPC`实例`ID`数组。形如：[`vpc-6v2ht8q5`]
        :type VpcIds: list of str
        :param _Filters: 过滤条件，参数不支持同时指定VpcIds和Filters。
<li>vpc-id - String - （过滤条件）VPC实例ID，形如：vpc-f49l6u0z。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: int
        """
        self._VpcIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def VpcIds(self):
        return self._VpcIds

    @VpcIds.setter
    def VpcIds(self, VpcIds):
        self._VpcIds = VpcIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._VpcIds = params.get("VpcIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssistantCidrResponse(AbstractModel):
    """DescribeAssistantCidr返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AssistantCidrSet: 符合条件的辅助CIDR数组。
注意：此字段可能返回 null，表示取不到有效值。
        :type AssistantCidrSet: list of AssistantCidr
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AssistantCidrSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def AssistantCidrSet(self):
        return self._AssistantCidrSet

    @AssistantCidrSet.setter
    def AssistantCidrSet(self, AssistantCidrSet):
        self._AssistantCidrSet = AssistantCidrSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("AssistantCidrSet") is not None:
            self._AssistantCidrSet = []
            for item in params.get("AssistantCidrSet"):
                obj = AssistantCidr()
                obj._deserialize(item)
                self._AssistantCidrSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeBandwidthPackageBillUsageRequest(AbstractModel):
    """DescribeBandwidthPackageBillUsage请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BandwidthPackageId: 后付费共享带宽包的唯一ID
        :type BandwidthPackageId: str
        """
        self._BandwidthPackageId = None

    @property
    def BandwidthPackageId(self):
        return self._BandwidthPackageId

    @BandwidthPackageId.setter
    def BandwidthPackageId(self, BandwidthPackageId):
        self._BandwidthPackageId = BandwidthPackageId


    def _deserialize(self, params):
        self._BandwidthPackageId = params.get("BandwidthPackageId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBandwidthPackageBillUsageResponse(AbstractModel):
    """DescribeBandwidthPackageBillUsage返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BandwidthPackageBillBandwidthSet: 当前计费用量
        :type BandwidthPackageBillBandwidthSet: list of BandwidthPackageBillBandwidth
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BandwidthPackageBillBandwidthSet = None
        self._RequestId = None

    @property
    def BandwidthPackageBillBandwidthSet(self):
        return self._BandwidthPackageBillBandwidthSet

    @BandwidthPackageBillBandwidthSet.setter
    def BandwidthPackageBillBandwidthSet(self, BandwidthPackageBillBandwidthSet):
        self._BandwidthPackageBillBandwidthSet = BandwidthPackageBillBandwidthSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("BandwidthPackageBillBandwidthSet") is not None:
            self._BandwidthPackageBillBandwidthSet = []
            for item in params.get("BandwidthPackageBillBandwidthSet"):
                obj = BandwidthPackageBillBandwidth()
                obj._deserialize(item)
                self._BandwidthPackageBillBandwidthSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBandwidthPackageQuotaRequest(AbstractModel):
    """DescribeBandwidthPackageQuota请求参数结构体

    """


class DescribeBandwidthPackageQuotaResponse(AbstractModel):
    """DescribeBandwidthPackageQuota返回参数结构体

    """

    def __init__(self):
        r"""
        :param _QuotaSet: 带宽包配额详细信息
        :type QuotaSet: list of Quota
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._QuotaSet = None
        self._RequestId = None

    @property
    def QuotaSet(self):
        return self._QuotaSet

    @QuotaSet.setter
    def QuotaSet(self, QuotaSet):
        self._QuotaSet = QuotaSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("QuotaSet") is not None:
            self._QuotaSet = []
            for item in params.get("QuotaSet"):
                obj = Quota()
                obj._deserialize(item)
                self._QuotaSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBandwidthPackageResourcesRequest(AbstractModel):
    """DescribeBandwidthPackageResources请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BandwidthPackageId: 标识 共享带宽包 的唯一 ID 列表。共享带宽包 唯一 ID 形如：`bwp-11112222`。
        :type BandwidthPackageId: str
        :param _Filters: 每次请求的`Filters`的上限为10，`Filter.Values`的上限为5。参数不支持同时指定`AddressIds`和`Filters`。详细的过滤条件如下：
<li> resource-id - String - 是否必填：否 - （过滤条件）按照 共享带宽包内资源 的唯一 ID 过滤。共享带宽包内资源 唯一 ID 形如：eip-11112222。</li>
<li> resource-type - String - 是否必填：否 - （过滤条件）按照 共享带宽包内资源 类型过滤，目前仅支持 弹性IP 和 负载均衡 两种类型，可选值为 Address 和 LoadBalance。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。关于`Offset`的更进一步介绍请参考 API [简介](https://cloud.tencent.com/document/api/213/11646)中的相关小节。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。关于`Limit`的更进一步介绍请参考 API [简介](https://cloud.tencent.com/document/api/213/11646)中的相关小节。
        :type Limit: int
        """
        self._BandwidthPackageId = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def BandwidthPackageId(self):
        return self._BandwidthPackageId

    @BandwidthPackageId.setter
    def BandwidthPackageId(self, BandwidthPackageId):
        self._BandwidthPackageId = BandwidthPackageId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._BandwidthPackageId = params.get("BandwidthPackageId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBandwidthPackageResourcesResponse(AbstractModel):
    """DescribeBandwidthPackageResources返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的 共享带宽包内资源 数量。
        :type TotalCount: int
        :param _ResourceSet: 共享带宽包内资源 详细信息列表。
        :type ResourceSet: list of Resource
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._ResourceSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def ResourceSet(self):
        return self._ResourceSet

    @ResourceSet.setter
    def ResourceSet(self, ResourceSet):
        self._ResourceSet = ResourceSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("ResourceSet") is not None:
            self._ResourceSet = []
            for item in params.get("ResourceSet"):
                obj = Resource()
                obj._deserialize(item)
                self._ResourceSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBandwidthPackagesRequest(AbstractModel):
    """DescribeBandwidthPackages请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BandwidthPackageIds: 带宽包唯一ID列表
        :type BandwidthPackageIds: list of str
        :param _Filters: 每次请求的`Filters`的上限为10。参数不支持同时指定`BandwidthPackageIds`和`Filters`。详细的过滤条件如下：
<li> bandwidth-package-id - String - 是否必填：否 - （过滤条件）按照带宽包的唯一标识ID过滤。</li>
<li> bandwidth-package-name - String - 是否必填：否 - （过滤条件）按照 带宽包名称过滤。不支持模糊过滤。</li>
<li> network-type - String - 是否必填：否 - （过滤条件）按照带宽包的类型过滤。类型包括'HIGH_QUALITY_BGP','BGP','SINGLEISP'和'ANYCAST'。</li>
<li> charge-type - String - 是否必填：否 - （过滤条件）按照带宽包的计费类型过滤。计费类型包括: <li>'TOP5_POSTPAID_BY_MONTH':按月后付费TOP5计费</li><li> 'PERCENT95_POSTPAID_BY_MONTH':按月后付费月95计费</li><li>'ENHANCED95_POSTPAID_BY_MONTH':按月后付费增强型95计费</li><li>'FIXED_PREPAID_BY_MONTH':包月预付费计费</li><li>‘PEAK_BANDWIDTH_POSTPAID_BY_DAY’: 后付费日结按带宽计费</li>
<li> resource.resource-type - String - 是否必填：否 - （过滤条件）按照带宽包资源类型过滤。资源类型包括'Address'和'LoadBalance'</li>
<li> resource.resource-id - String - 是否必填：否 - （过滤条件）按照带宽包资源Id过滤。资源Id形如'eip-xxxx','lb-xxxx'</li>
<li> resource.address-ip - String - 是否必填：否 - （过滤条件）按照带宽包资源Ip过滤。</li>
<li> tag-key - String - 是否必填：否 - （过滤条件）按照标签键进行过滤。</li>
<li> tag-value - String - 是否必填：否 - （过滤条件）按照标签值进行过滤。</li>
<li> tag:tag-key - String - 是否必填：否 - （过滤条件）按照标签键值对进行过滤。tag-key使用具体的标签键进行替换。</li>
        :type Filters: list of Filter
        :param _Offset: 查询带宽包偏移量，默认为0。关于Offset的更进一步介绍请参考 API [简介](https://cloud.tencent.com/document/api/213/15688)中的相关小结。
        :type Offset: int
        :param _Limit: 查询带宽包返回数量，默认为20，最大值为100。关于Limit的更进一步介绍请参考 API [简介](https://cloud.tencent.com/document/api/213/15688)中的相关小结。
        :type Limit: int
        """
        self._BandwidthPackageIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def BandwidthPackageIds(self):
        return self._BandwidthPackageIds

    @BandwidthPackageIds.setter
    def BandwidthPackageIds(self, BandwidthPackageIds):
        self._BandwidthPackageIds = BandwidthPackageIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._BandwidthPackageIds = params.get("BandwidthPackageIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBandwidthPackagesResponse(AbstractModel):
    """DescribeBandwidthPackages返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的带宽包数量
        :type TotalCount: int
        :param _BandwidthPackageSet: 描述带宽包详细信息
        :type BandwidthPackageSet: list of BandwidthPackage
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._BandwidthPackageSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def BandwidthPackageSet(self):
        return self._BandwidthPackageSet

    @BandwidthPackageSet.setter
    def BandwidthPackageSet(self, BandwidthPackageSet):
        self._BandwidthPackageSet = BandwidthPackageSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("BandwidthPackageSet") is not None:
            self._BandwidthPackageSet = []
            for item in params.get("BandwidthPackageSet"):
                obj = BandwidthPackage()
                obj._deserialize(item)
                self._BandwidthPackageSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeCcnAttachedInstancesRequest(AbstractModel):
    """DescribeCcnAttachedInstances请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Offset: 偏移量
        :type Offset: int
        :param _Limit: 返回数量
        :type Limit: int
        :param _Filters: 过滤条件：
<li>ccn-id - String -（过滤条件）CCN实例ID。</li>
<li>instance-type - String -（过滤条件）关联实例类型。</li>
<li>instance-region - String -（过滤条件）关联实例所属地域。</li>
<li>instance-id - String -（过滤条件）关联实例ID。</li>
        :type Filters: list of Filter
        :param _CcnId: 云联网实例ID
        :type CcnId: str
        :param _OrderField: 排序字段。支持：`CcnId` `InstanceType` `InstanceId` `InstanceName` `InstanceRegion` `AttachedTime` `State`。默认值：`AttachedTime`
        :type OrderField: str
        :param _OrderDirection: 排序方法。升序：`ASC`，倒序：`DESC`。默认值：`ASC`
        :type OrderDirection: str
        """
        self._Offset = None
        self._Limit = None
        self._Filters = None
        self._CcnId = None
        self._OrderField = None
        self._OrderDirection = None

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def OrderField(self):
        return self._OrderField

    @OrderField.setter
    def OrderField(self, OrderField):
        self._OrderField = OrderField

    @property
    def OrderDirection(self):
        return self._OrderDirection

    @OrderDirection.setter
    def OrderDirection(self, OrderDirection):
        self._OrderDirection = OrderDirection


    def _deserialize(self, params):
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._CcnId = params.get("CcnId")
        self._OrderField = params.get("OrderField")
        self._OrderDirection = params.get("OrderDirection")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeCcnAttachedInstancesResponse(AbstractModel):
    """DescribeCcnAttachedInstances返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的对象数。
        :type TotalCount: int
        :param _InstanceSet: 关联实例列表。
        :type InstanceSet: list of CcnAttachedInstance
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._InstanceSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def InstanceSet(self):
        return self._InstanceSet

    @InstanceSet.setter
    def InstanceSet(self, InstanceSet):
        self._InstanceSet = InstanceSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("InstanceSet") is not None:
            self._InstanceSet = []
            for item in params.get("InstanceSet"):
                obj = CcnAttachedInstance()
                obj._deserialize(item)
                self._InstanceSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeCcnRegionBandwidthLimitsRequest(AbstractModel):
    """DescribeCcnRegionBandwidthLimits请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnId: CCN实例ID，形如：ccn-f49l6u0z。
        :type CcnId: str
        """
        self._CcnId = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeCcnRegionBandwidthLimitsResponse(AbstractModel):
    """DescribeCcnRegionBandwidthLimits返回参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnRegionBandwidthLimitSet: 云联网（CCN）各地域出带宽上限
        :type CcnRegionBandwidthLimitSet: list of CcnRegionBandwidthLimit
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._CcnRegionBandwidthLimitSet = None
        self._RequestId = None

    @property
    def CcnRegionBandwidthLimitSet(self):
        return self._CcnRegionBandwidthLimitSet

    @CcnRegionBandwidthLimitSet.setter
    def CcnRegionBandwidthLimitSet(self, CcnRegionBandwidthLimitSet):
        self._CcnRegionBandwidthLimitSet = CcnRegionBandwidthLimitSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("CcnRegionBandwidthLimitSet") is not None:
            self._CcnRegionBandwidthLimitSet = []
            for item in params.get("CcnRegionBandwidthLimitSet"):
                obj = CcnRegionBandwidthLimit()
                obj._deserialize(item)
                self._CcnRegionBandwidthLimitSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeCcnRoutesRequest(AbstractModel):
    """DescribeCcnRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnId: CCN实例ID，形如：`ccn-gree226l`。
        :type CcnId: str
        :param _RouteIds: CCN路由策略唯一ID，形如：`ccnr-f49l6u0z`。
        :type RouteIds: list of str
        :param _Filters: 过滤条件，参数不支持同时指定RouteIds和Filters。
<li>route-id - String -（过滤条件）路由策略ID。</li>
<li>cidr-block - String -（过滤条件）目的端。</li>
<li>instance-type - String -（过滤条件）下一跳类型。</li>
<li>instance-region - String -（过滤条件）下一跳所属地域。</li>
<li>instance-id - String -（过滤条件）下一跳实例ID。</li>
<li>route-table-id - String -（过滤条件）路由表ID列表，形如ccntr-1234edfr，可以根据路由表ID 过滤。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量
        :type Offset: int
        :param _Limit: 返回数量
        :type Limit: int
        """
        self._CcnId = None
        self._RouteIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def RouteIds(self):
        return self._RouteIds

    @RouteIds.setter
    def RouteIds(self, RouteIds):
        self._RouteIds = RouteIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        self._RouteIds = params.get("RouteIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeCcnRoutesResponse(AbstractModel):
    """DescribeCcnRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的对象数。
        :type TotalCount: int
        :param _RouteSet: CCN路由策略对象。
        :type RouteSet: list of CcnRoute
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._RouteSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RouteSet(self):
        return self._RouteSet

    @RouteSet.setter
    def RouteSet(self, RouteSet):
        self._RouteSet = RouteSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("RouteSet") is not None:
            self._RouteSet = []
            for item in params.get("RouteSet"):
                obj = CcnRoute()
                obj._deserialize(item)
                self._RouteSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeCcnsRequest(AbstractModel):
    """DescribeCcns请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnIds: CCN实例ID。形如：ccn-f49l6u0z。每次请求的实例的上限为100。参数不支持同时指定CcnIds和Filters。
        :type CcnIds: list of str
        :param _Filters: 过滤条件，参数不支持同时指定CcnIds和Filters。
<li>ccn-id - String - （过滤条件）CCN唯一ID，形如：`ccn-f49l6u0z`。</li>
<li>ccn-name - String - （过滤条件）CCN名称。</li>
<li>ccn-description - String - （过滤条件）CCN描述。</li>
<li>state - String - （过滤条件）实例状态， 'ISOLATED': 隔离中（欠费停服），'AVAILABLE'：运行中。</li>
<li>tag-key - String -是否必填：否- （过滤条件）按照标签键进行过滤。</li>
<li>tag:tag-key - String - 是否必填：否 - （过滤条件）按照标签键值对进行过滤。 tag-key使用具体的标签键进行替换。使用请参考示例：查询绑定了标签的CCN列表。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量
        :type Offset: int
        :param _Limit: 返回数量
        :type Limit: int
        :param _OrderField: 排序字段。支持：`CcnId` `CcnName` `CreateTime` `State` `QosLevel`。默认值: `CreateTime`
        :type OrderField: str
        :param _OrderDirection: 排序方法。升序：`ASC`，倒序：`DESC`。默认值：`ASC`
        :type OrderDirection: str
        """
        self._CcnIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._OrderField = None
        self._OrderDirection = None

    @property
    def CcnIds(self):
        return self._CcnIds

    @CcnIds.setter
    def CcnIds(self, CcnIds):
        self._CcnIds = CcnIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def OrderField(self):
        return self._OrderField

    @OrderField.setter
    def OrderField(self, OrderField):
        self._OrderField = OrderField

    @property
    def OrderDirection(self):
        return self._OrderDirection

    @OrderDirection.setter
    def OrderDirection(self, OrderDirection):
        self._OrderDirection = OrderDirection


    def _deserialize(self, params):
        self._CcnIds = params.get("CcnIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._OrderField = params.get("OrderField")
        self._OrderDirection = params.get("OrderDirection")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeCcnsResponse(AbstractModel):
    """DescribeCcns返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的对象数。
        :type TotalCount: int
        :param _CcnSet: CCN对象。
        :type CcnSet: list of CCN
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._CcnSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def CcnSet(self):
        return self._CcnSet

    @CcnSet.setter
    def CcnSet(self, CcnSet):
        self._CcnSet = CcnSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("CcnSet") is not None:
            self._CcnSet = []
            for item in params.get("CcnSet"):
                obj = CCN()
                obj._deserialize(item)
                self._CcnSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeClassicLinkInstancesRequest(AbstractModel):
    """DescribeClassicLinkInstances请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>vpc-id - String - （过滤条件）VPC实例ID。</li>
<li>vm-ip - String - （过滤条件）基础网络云服务器IP。</li>
        :type Filters: list of FilterObject
        :param _Offset: 偏移量，默认值0。
        :type Offset: str
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: str
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = FilterObject()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeClassicLinkInstancesResponse(AbstractModel):
    """DescribeClassicLinkInstances返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _ClassicLinkInstanceSet: 私有网络和基础网络互通设备。
        :type ClassicLinkInstanceSet: list of ClassicLinkInstance
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._ClassicLinkInstanceSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def ClassicLinkInstanceSet(self):
        return self._ClassicLinkInstanceSet

    @ClassicLinkInstanceSet.setter
    def ClassicLinkInstanceSet(self, ClassicLinkInstanceSet):
        self._ClassicLinkInstanceSet = ClassicLinkInstanceSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("ClassicLinkInstanceSet") is not None:
            self._ClassicLinkInstanceSet = []
            for item in params.get("ClassicLinkInstanceSet"):
                obj = ClassicLinkInstance()
                obj._deserialize(item)
                self._ClassicLinkInstanceSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeCrossBorderCcnRegionBandwidthLimitsRequest(AbstractModel):
    """DescribeCrossBorderCcnRegionBandwidthLimits请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件，目前`value`值个数只支持一个，可支持的字段有：
<li>`source-region` 源地域，值形如：`["ap-guangzhou"]`</li> <li>`destination-region` 目的地域，值形如：`["ap-shanghai"]`</li> <li>`ccn-ids` 云联网ID数组，值形如：`["ccn-12345678"]`</li> <li>`user-account-id` 用户账号ID，值形如`["12345678"]`</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认0。
        :type Offset: int
        :param _Limit: 单页返回数据量可选值0到100之间的整数，默认20。
        :type Limit: int
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeCrossBorderCcnRegionBandwidthLimitsResponse(AbstractModel):
    """DescribeCrossBorderCcnRegionBandwidthLimits返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的对象总数。
        :type TotalCount: int
        :param _CcnBandwidthSet: 云联网地域间限速带宽实例的信息。
        :type CcnBandwidthSet: list of CcnBandwidth
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._CcnBandwidthSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def CcnBandwidthSet(self):
        return self._CcnBandwidthSet

    @CcnBandwidthSet.setter
    def CcnBandwidthSet(self, CcnBandwidthSet):
        self._CcnBandwidthSet = CcnBandwidthSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("CcnBandwidthSet") is not None:
            self._CcnBandwidthSet = []
            for item in params.get("CcnBandwidthSet"):
                obj = CcnBandwidth()
                obj._deserialize(item)
                self._CcnBandwidthSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeCrossBorderComplianceRequest(AbstractModel):
    """DescribeCrossBorderCompliance请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ServiceProvider: （精确匹配）服务商，可选值：`UNICOM`。
        :type ServiceProvider: str
        :param _ComplianceId: （精确匹配）合规化审批单`ID`。
        :type ComplianceId: int
        :param _Company: （模糊查询）公司名称。
        :type Company: str
        :param _UniformSocialCreditCode: （精确匹配）统一社会信用代码。
        :type UniformSocialCreditCode: str
        :param _LegalPerson: （模糊查询）法定代表人。
        :type LegalPerson: str
        :param _IssuingAuthority: （模糊查询）发证机关。
        :type IssuingAuthority: str
        :param _BusinessAddress: （模糊查询）营业执照住所。
        :type BusinessAddress: str
        :param _PostCode: （精确匹配）邮编。
        :type PostCode: int
        :param _Manager: （模糊查询）经办人。
        :type Manager: str
        :param _ManagerId: （精确查询）经办人身份证号。
        :type ManagerId: str
        :param _ManagerAddress: （模糊查询）经办人身份证地址。
        :type ManagerAddress: str
        :param _ManagerTelephone: （精确匹配）经办人联系电话。
        :type ManagerTelephone: str
        :param _Email: （精确匹配）电子邮箱。
        :type Email: str
        :param _ServiceStartDate: （精确匹配）服务开始日期，如：`2020-07-28`。
        :type ServiceStartDate: str
        :param _ServiceEndDate: （精确匹配）服务结束日期，如：`2021-07-28`。
        :type ServiceEndDate: str
        :param _State: （精确匹配）状态。待审批：`PENDING`，通过：`APPROVED `，拒绝：`DENY`。
        :type State: str
        :param _Offset: 偏移量
        :type Offset: int
        :param _Limit: 返回数量
        :type Limit: int
        """
        self._ServiceProvider = None
        self._ComplianceId = None
        self._Company = None
        self._UniformSocialCreditCode = None
        self._LegalPerson = None
        self._IssuingAuthority = None
        self._BusinessAddress = None
        self._PostCode = None
        self._Manager = None
        self._ManagerId = None
        self._ManagerAddress = None
        self._ManagerTelephone = None
        self._Email = None
        self._ServiceStartDate = None
        self._ServiceEndDate = None
        self._State = None
        self._Offset = None
        self._Limit = None

    @property
    def ServiceProvider(self):
        return self._ServiceProvider

    @ServiceProvider.setter
    def ServiceProvider(self, ServiceProvider):
        self._ServiceProvider = ServiceProvider

    @property
    def ComplianceId(self):
        return self._ComplianceId

    @ComplianceId.setter
    def ComplianceId(self, ComplianceId):
        self._ComplianceId = ComplianceId

    @property
    def Company(self):
        return self._Company

    @Company.setter
    def Company(self, Company):
        self._Company = Company

    @property
    def UniformSocialCreditCode(self):
        return self._UniformSocialCreditCode

    @UniformSocialCreditCode.setter
    def UniformSocialCreditCode(self, UniformSocialCreditCode):
        self._UniformSocialCreditCode = UniformSocialCreditCode

    @property
    def LegalPerson(self):
        return self._LegalPerson

    @LegalPerson.setter
    def LegalPerson(self, LegalPerson):
        self._LegalPerson = LegalPerson

    @property
    def IssuingAuthority(self):
        return self._IssuingAuthority

    @IssuingAuthority.setter
    def IssuingAuthority(self, IssuingAuthority):
        self._IssuingAuthority = IssuingAuthority

    @property
    def BusinessAddress(self):
        return self._BusinessAddress

    @BusinessAddress.setter
    def BusinessAddress(self, BusinessAddress):
        self._BusinessAddress = BusinessAddress

    @property
    def PostCode(self):
        return self._PostCode

    @PostCode.setter
    def PostCode(self, PostCode):
        self._PostCode = PostCode

    @property
    def Manager(self):
        return self._Manager

    @Manager.setter
    def Manager(self, Manager):
        self._Manager = Manager

    @property
    def ManagerId(self):
        return self._ManagerId

    @ManagerId.setter
    def ManagerId(self, ManagerId):
        self._ManagerId = ManagerId

    @property
    def ManagerAddress(self):
        return self._ManagerAddress

    @ManagerAddress.setter
    def ManagerAddress(self, ManagerAddress):
        self._ManagerAddress = ManagerAddress

    @property
    def ManagerTelephone(self):
        return self._ManagerTelephone

    @ManagerTelephone.setter
    def ManagerTelephone(self, ManagerTelephone):
        self._ManagerTelephone = ManagerTelephone

    @property
    def Email(self):
        return self._Email

    @Email.setter
    def Email(self, Email):
        self._Email = Email

    @property
    def ServiceStartDate(self):
        return self._ServiceStartDate

    @ServiceStartDate.setter
    def ServiceStartDate(self, ServiceStartDate):
        self._ServiceStartDate = ServiceStartDate

    @property
    def ServiceEndDate(self):
        return self._ServiceEndDate

    @ServiceEndDate.setter
    def ServiceEndDate(self, ServiceEndDate):
        self._ServiceEndDate = ServiceEndDate

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._ServiceProvider = params.get("ServiceProvider")
        self._ComplianceId = params.get("ComplianceId")
        self._Company = params.get("Company")
        self._UniformSocialCreditCode = params.get("UniformSocialCreditCode")
        self._LegalPerson = params.get("LegalPerson")
        self._IssuingAuthority = params.get("IssuingAuthority")
        self._BusinessAddress = params.get("BusinessAddress")
        self._PostCode = params.get("PostCode")
        self._Manager = params.get("Manager")
        self._ManagerId = params.get("ManagerId")
        self._ManagerAddress = params.get("ManagerAddress")
        self._ManagerTelephone = params.get("ManagerTelephone")
        self._Email = params.get("Email")
        self._ServiceStartDate = params.get("ServiceStartDate")
        self._ServiceEndDate = params.get("ServiceEndDate")
        self._State = params.get("State")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeCrossBorderComplianceResponse(AbstractModel):
    """DescribeCrossBorderCompliance返回参数结构体

    """

    def __init__(self):
        r"""
        :param _CrossBorderComplianceSet: 合规化审批单列表。
        :type CrossBorderComplianceSet: list of CrossBorderCompliance
        :param _TotalCount: 合规化审批单总数。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._CrossBorderComplianceSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def CrossBorderComplianceSet(self):
        return self._CrossBorderComplianceSet

    @CrossBorderComplianceSet.setter
    def CrossBorderComplianceSet(self, CrossBorderComplianceSet):
        self._CrossBorderComplianceSet = CrossBorderComplianceSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("CrossBorderComplianceSet") is not None:
            self._CrossBorderComplianceSet = []
            for item in params.get("CrossBorderComplianceSet"):
                obj = CrossBorderCompliance()
                obj._deserialize(item)
                self._CrossBorderComplianceSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeCrossBorderFlowMonitorRequest(AbstractModel):
    """DescribeCrossBorderFlowMonitor请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SourceRegion: 源地域。
        :type SourceRegion: str
        :param _DestinationRegion: 目的地域。
        :type DestinationRegion: str
        :param _CcnId: 云联网ID。
        :type CcnId: str
        :param _CcnUin: 云联网所属账号。
        :type CcnUin: str
        :param _Period: 时间粒度。单位为:秒，如60为60s的时间粒度
        :type Period: int
        :param _StartTime: 开始时间。
        :type StartTime: str
        :param _EndTime: 结束时间。
        :type EndTime: str
        """
        self._SourceRegion = None
        self._DestinationRegion = None
        self._CcnId = None
        self._CcnUin = None
        self._Period = None
        self._StartTime = None
        self._EndTime = None

    @property
    def SourceRegion(self):
        return self._SourceRegion

    @SourceRegion.setter
    def SourceRegion(self, SourceRegion):
        self._SourceRegion = SourceRegion

    @property
    def DestinationRegion(self):
        return self._DestinationRegion

    @DestinationRegion.setter
    def DestinationRegion(self, DestinationRegion):
        self._DestinationRegion = DestinationRegion

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def CcnUin(self):
        return self._CcnUin

    @CcnUin.setter
    def CcnUin(self, CcnUin):
        self._CcnUin = CcnUin

    @property
    def Period(self):
        return self._Period

    @Period.setter
    def Period(self, Period):
        self._Period = Period

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime


    def _deserialize(self, params):
        self._SourceRegion = params.get("SourceRegion")
        self._DestinationRegion = params.get("DestinationRegion")
        self._CcnId = params.get("CcnId")
        self._CcnUin = params.get("CcnUin")
        self._Period = params.get("Period")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeCrossBorderFlowMonitorResponse(AbstractModel):
    """DescribeCrossBorderFlowMonitor返回参数结构体

    """

    def __init__(self):
        r"""
        :param _CrossBorderFlowMonitorData: 云联网跨境带宽监控数据
注意：此字段可能返回 null，表示取不到有效值。
        :type CrossBorderFlowMonitorData: list of CrossBorderFlowMonitorData
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._CrossBorderFlowMonitorData = None
        self._RequestId = None

    @property
    def CrossBorderFlowMonitorData(self):
        return self._CrossBorderFlowMonitorData

    @CrossBorderFlowMonitorData.setter
    def CrossBorderFlowMonitorData(self, CrossBorderFlowMonitorData):
        self._CrossBorderFlowMonitorData = CrossBorderFlowMonitorData

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("CrossBorderFlowMonitorData") is not None:
            self._CrossBorderFlowMonitorData = []
            for item in params.get("CrossBorderFlowMonitorData"):
                obj = CrossBorderFlowMonitorData()
                obj._deserialize(item)
                self._CrossBorderFlowMonitorData.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeCustomerGatewayVendorsRequest(AbstractModel):
    """DescribeCustomerGatewayVendors请求参数结构体

    """


class DescribeCustomerGatewayVendorsResponse(AbstractModel):
    """DescribeCustomerGatewayVendors返回参数结构体

    """

    def __init__(self):
        r"""
        :param _CustomerGatewayVendorSet: 对端网关厂商信息对象。
        :type CustomerGatewayVendorSet: list of CustomerGatewayVendor
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._CustomerGatewayVendorSet = None
        self._RequestId = None

    @property
    def CustomerGatewayVendorSet(self):
        return self._CustomerGatewayVendorSet

    @CustomerGatewayVendorSet.setter
    def CustomerGatewayVendorSet(self, CustomerGatewayVendorSet):
        self._CustomerGatewayVendorSet = CustomerGatewayVendorSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("CustomerGatewayVendorSet") is not None:
            self._CustomerGatewayVendorSet = []
            for item in params.get("CustomerGatewayVendorSet"):
                obj = CustomerGatewayVendor()
                obj._deserialize(item)
                self._CustomerGatewayVendorSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeCustomerGatewaysRequest(AbstractModel):
    """DescribeCustomerGateways请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CustomerGatewayIds: 对端网关ID，例如：cgw-2wqq41m9。每次请求的实例的上限为100。参数不支持同时指定CustomerGatewayIds和Filters。
        :type CustomerGatewayIds: list of str
        :param _Filters: 过滤条件，详见下表：实例过滤条件表。每次请求的Filters的上限为10，Filter.Values的上限为5。参数不支持同时指定CustomerGatewayIds和Filters。
<li>customer-gateway-id - String - （过滤条件）用户网关唯一ID形如：`cgw-mgp33pll`。</li>
<li>customer-gateway-name - String - （过滤条件）用户网关名称形如：`test-cgw`。</li>
<li>ip-address - String - （过滤条件）公网地址形如：`58.211.1.12`。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。关于Offset的更进一步介绍请参考 API [简介](https://cloud.tencent.com/document/api/213/11646)中的相关小节。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: int
        """
        self._CustomerGatewayIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def CustomerGatewayIds(self):
        return self._CustomerGatewayIds

    @CustomerGatewayIds.setter
    def CustomerGatewayIds(self, CustomerGatewayIds):
        self._CustomerGatewayIds = CustomerGatewayIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._CustomerGatewayIds = params.get("CustomerGatewayIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeCustomerGatewaysResponse(AbstractModel):
    """DescribeCustomerGateways返回参数结构体

    """

    def __init__(self):
        r"""
        :param _CustomerGatewaySet: 对端网关对象列表。
        :type CustomerGatewaySet: list of CustomerGateway
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._CustomerGatewaySet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def CustomerGatewaySet(self):
        return self._CustomerGatewaySet

    @CustomerGatewaySet.setter
    def CustomerGatewaySet(self, CustomerGatewaySet):
        self._CustomerGatewaySet = CustomerGatewaySet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("CustomerGatewaySet") is not None:
            self._CustomerGatewaySet = []
            for item in params.get("CustomerGatewaySet"):
                obj = CustomerGateway()
                obj._deserialize(item)
                self._CustomerGatewaySet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeDhcpIpsRequest(AbstractModel):
    """DescribeDhcpIps请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DhcpIpIds: DhcpIp实例ID。形如：dhcpip-pxir56ns。每次请求的实例的上限为100。参数不支持同时指定DhcpIpIds和Filters。
        :type DhcpIpIds: list of str
        :param _Filters: 过滤条件，参数不支持同时指定DhcpIpIds和Filters。
<li>vpc-id - String - （过滤条件）VPC实例ID，形如：vpc-f49l6u0z。</li>
<li>subnet-id - String - （过滤条件）所属子网实例ID，形如：subnet-f49l6u0z。</li>
<li>dhcpip-id - String - （过滤条件）DhcpIp实例ID，形如：dhcpip-pxir56ns。</li>
<li>dhcpip-name - String - （过滤条件）DhcpIp实例名称。</li>
<li>address-ip - String - （过滤条件）DhcpIp实例的IP，根据IP精确查找。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: int
        """
        self._DhcpIpIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def DhcpIpIds(self):
        return self._DhcpIpIds

    @DhcpIpIds.setter
    def DhcpIpIds(self, DhcpIpIds):
        self._DhcpIpIds = DhcpIpIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._DhcpIpIds = params.get("DhcpIpIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeDhcpIpsResponse(AbstractModel):
    """DescribeDhcpIps返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DhcpIpSet: 实例详细信息列表。
        :type DhcpIpSet: list of DhcpIp
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DhcpIpSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def DhcpIpSet(self):
        return self._DhcpIpSet

    @DhcpIpSet.setter
    def DhcpIpSet(self, DhcpIpSet):
        self._DhcpIpSet = DhcpIpSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("DhcpIpSet") is not None:
            self._DhcpIpSet = []
            for item in params.get("DhcpIpSet"):
                obj = DhcpIp()
                obj._deserialize(item)
                self._DhcpIpSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeDirectConnectGatewayCcnRoutesRequest(AbstractModel):
    """DescribeDirectConnectGatewayCcnRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DirectConnectGatewayId: 专线网关ID，形如：`dcg-prpqlmg1`。
        :type DirectConnectGatewayId: str
        :param _CcnRouteType: 云联网路由学习类型，可选值：
<li>`BGP` - 自动学习。</li>
<li>`STATIC` - 静态，即用户配置，默认值。</li>
        :type CcnRouteType: str
        :param _Offset: 偏移量。
        :type Offset: int
        :param _Limit: 返回数量。
        :type Limit: int
        """
        self._DirectConnectGatewayId = None
        self._CcnRouteType = None
        self._Offset = None
        self._Limit = None

    @property
    def DirectConnectGatewayId(self):
        return self._DirectConnectGatewayId

    @DirectConnectGatewayId.setter
    def DirectConnectGatewayId(self, DirectConnectGatewayId):
        self._DirectConnectGatewayId = DirectConnectGatewayId

    @property
    def CcnRouteType(self):
        return self._CcnRouteType

    @CcnRouteType.setter
    def CcnRouteType(self, CcnRouteType):
        self._CcnRouteType = CcnRouteType

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._DirectConnectGatewayId = params.get("DirectConnectGatewayId")
        self._CcnRouteType = params.get("CcnRouteType")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeDirectConnectGatewayCcnRoutesResponse(AbstractModel):
    """DescribeDirectConnectGatewayCcnRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的对象数。
        :type TotalCount: int
        :param _RouteSet: 云联网路由（IDC网段）列表。
        :type RouteSet: list of DirectConnectGatewayCcnRoute
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._RouteSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RouteSet(self):
        return self._RouteSet

    @RouteSet.setter
    def RouteSet(self, RouteSet):
        self._RouteSet = RouteSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("RouteSet") is not None:
            self._RouteSet = []
            for item in params.get("RouteSet"):
                obj = DirectConnectGatewayCcnRoute()
                obj._deserialize(item)
                self._RouteSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeDirectConnectGatewaysRequest(AbstractModel):
    """DescribeDirectConnectGateways请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DirectConnectGatewayIds: 专线网关唯一`ID`，形如：`dcg-9o233uri`。
        :type DirectConnectGatewayIds: list of str
        :param _Filters: 过滤条件，参数不支持同时指定`DirectConnectGatewayIds`和`Filters`。
<li>direct-connect-gateway-id - String - 专线网关唯一`ID`，形如：`dcg-9o233uri`。</li>
<li>direct-connect-gateway-name - String - 专线网关名称，默认模糊查询。</li>
<li>direct-connect-gateway-ip - String - 专线网关`IP`。</li>
<li>gateway-type - String - 网关类型，可选值：`NORMAL`（普通型）、`NAT`（NAT型）。</li>
<li>network-type- String - 网络类型，可选值：`VPC`（私有网络类型）、`CCN`（云联网类型）。</li>
<li>ccn-id - String - 专线网关所在云联网`ID`。</li>
<li>vpc-id - String - 专线网关所在私有网络`ID`。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量。
        :type Offset: int
        :param _Limit: 返回数量。
        :type Limit: int
        """
        self._DirectConnectGatewayIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def DirectConnectGatewayIds(self):
        return self._DirectConnectGatewayIds

    @DirectConnectGatewayIds.setter
    def DirectConnectGatewayIds(self, DirectConnectGatewayIds):
        self._DirectConnectGatewayIds = DirectConnectGatewayIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._DirectConnectGatewayIds = params.get("DirectConnectGatewayIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeDirectConnectGatewaysResponse(AbstractModel):
    """DescribeDirectConnectGateways返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的对象数。
        :type TotalCount: int
        :param _DirectConnectGatewaySet: 专线网关对象数组。
        :type DirectConnectGatewaySet: list of DirectConnectGateway
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._DirectConnectGatewaySet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def DirectConnectGatewaySet(self):
        return self._DirectConnectGatewaySet

    @DirectConnectGatewaySet.setter
    def DirectConnectGatewaySet(self, DirectConnectGatewaySet):
        self._DirectConnectGatewaySet = DirectConnectGatewaySet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("DirectConnectGatewaySet") is not None:
            self._DirectConnectGatewaySet = []
            for item in params.get("DirectConnectGatewaySet"):
                obj = DirectConnectGateway()
                obj._deserialize(item)
                self._DirectConnectGatewaySet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeFlowLogRequest(AbstractModel):
    """DescribeFlowLog请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: 私用网络ID或者统一ID，建议使用统一ID。
        :type VpcId: str
        :param _FlowLogId: 流日志唯一ID。
        :type FlowLogId: str
        """
        self._VpcId = None
        self._FlowLogId = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def FlowLogId(self):
        return self._FlowLogId

    @FlowLogId.setter
    def FlowLogId(self, FlowLogId):
        self._FlowLogId = FlowLogId


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._FlowLogId = params.get("FlowLogId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeFlowLogResponse(AbstractModel):
    """DescribeFlowLog返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FlowLog: 流日志信息。
        :type FlowLog: list of FlowLog
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FlowLog = None
        self._RequestId = None

    @property
    def FlowLog(self):
        return self._FlowLog

    @FlowLog.setter
    def FlowLog(self, FlowLog):
        self._FlowLog = FlowLog

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("FlowLog") is not None:
            self._FlowLog = []
            for item in params.get("FlowLog"):
                obj = FlowLog()
                obj._deserialize(item)
                self._FlowLog.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeFlowLogsRequest(AbstractModel):
    """DescribeFlowLogs请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: 私用网络ID或者统一ID，建议使用统一ID。
        :type VpcId: str
        :param _FlowLogId: 流日志唯一ID。
        :type FlowLogId: str
        :param _FlowLogName: 流日志实例名字。
        :type FlowLogName: str
        :param _ResourceType: 流日志所属资源类型，VPC|SUBNET|NETWORKINTERFACE。
        :type ResourceType: str
        :param _ResourceId: 资源唯一ID。
        :type ResourceId: str
        :param _TrafficType: 流日志采集类型，ACCEPT|REJECT|ALL。
        :type TrafficType: str
        :param _CloudLogId: 流日志存储ID。
        :type CloudLogId: str
        :param _CloudLogState: 流日志存储ID状态。
        :type CloudLogState: str
        :param _OrderField: 按某个字段排序,支持字段：flowLogName,createTime，默认按createTime。
        :type OrderField: str
        :param _OrderDirection: 升序（asc）还是降序（desc）,默认：desc。
        :type OrderDirection: str
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 每页行数，默认为10。
        :type Limit: int
        :param _Filters: 过滤条件，参数不支持同时指定FlowLogId和Filters。
<li>tag-key - String -是否必填：否- （过滤条件）按照标签键进行过滤。</li>
<li>tag:tag-key - String - 是否必填：否 - （过滤条件）按照标签键值对进行过滤。 tag-key使用具体的标签键进行替换。</li>
        :type Filters: :class:`tencentcloud.vpc.v20170312.models.Filter`
        :param _CloudLogRegion: 流日志存储ID对应的地域信息。
        :type CloudLogRegion: str
        """
        self._VpcId = None
        self._FlowLogId = None
        self._FlowLogName = None
        self._ResourceType = None
        self._ResourceId = None
        self._TrafficType = None
        self._CloudLogId = None
        self._CloudLogState = None
        self._OrderField = None
        self._OrderDirection = None
        self._Offset = None
        self._Limit = None
        self._Filters = None
        self._CloudLogRegion = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def FlowLogId(self):
        return self._FlowLogId

    @FlowLogId.setter
    def FlowLogId(self, FlowLogId):
        self._FlowLogId = FlowLogId

    @property
    def FlowLogName(self):
        return self._FlowLogName

    @FlowLogName.setter
    def FlowLogName(self, FlowLogName):
        self._FlowLogName = FlowLogName

    @property
    def ResourceType(self):
        return self._ResourceType

    @ResourceType.setter
    def ResourceType(self, ResourceType):
        self._ResourceType = ResourceType

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def TrafficType(self):
        return self._TrafficType

    @TrafficType.setter
    def TrafficType(self, TrafficType):
        self._TrafficType = TrafficType

    @property
    def CloudLogId(self):
        return self._CloudLogId

    @CloudLogId.setter
    def CloudLogId(self, CloudLogId):
        self._CloudLogId = CloudLogId

    @property
    def CloudLogState(self):
        return self._CloudLogState

    @CloudLogState.setter
    def CloudLogState(self, CloudLogState):
        self._CloudLogState = CloudLogState

    @property
    def OrderField(self):
        return self._OrderField

    @OrderField.setter
    def OrderField(self, OrderField):
        self._OrderField = OrderField

    @property
    def OrderDirection(self):
        return self._OrderDirection

    @OrderDirection.setter
    def OrderDirection(self, OrderDirection):
        self._OrderDirection = OrderDirection

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def CloudLogRegion(self):
        return self._CloudLogRegion

    @CloudLogRegion.setter
    def CloudLogRegion(self, CloudLogRegion):
        self._CloudLogRegion = CloudLogRegion


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._FlowLogId = params.get("FlowLogId")
        self._FlowLogName = params.get("FlowLogName")
        self._ResourceType = params.get("ResourceType")
        self._ResourceId = params.get("ResourceId")
        self._TrafficType = params.get("TrafficType")
        self._CloudLogId = params.get("CloudLogId")
        self._CloudLogState = params.get("CloudLogState")
        self._OrderField = params.get("OrderField")
        self._OrderDirection = params.get("OrderDirection")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        if params.get("Filters") is not None:
            self._Filters = Filter()
            self._Filters._deserialize(params.get("Filters"))
        self._CloudLogRegion = params.get("CloudLogRegion")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeFlowLogsResponse(AbstractModel):
    """DescribeFlowLogs返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FlowLog: 流日志实例集合。
        :type FlowLog: list of FlowLog
        :param _TotalNum: 流日志总数目。
        :type TotalNum: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FlowLog = None
        self._TotalNum = None
        self._RequestId = None

    @property
    def FlowLog(self):
        return self._FlowLog

    @FlowLog.setter
    def FlowLog(self, FlowLog):
        self._FlowLog = FlowLog

    @property
    def TotalNum(self):
        return self._TotalNum

    @TotalNum.setter
    def TotalNum(self, TotalNum):
        self._TotalNum = TotalNum

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("FlowLog") is not None:
            self._FlowLog = []
            for item in params.get("FlowLog"):
                obj = FlowLog()
                obj._deserialize(item)
                self._FlowLog.append(obj)
        self._TotalNum = params.get("TotalNum")
        self._RequestId = params.get("RequestId")


class DescribeGatewayFlowMonitorDetailRequest(AbstractModel):
    """DescribeGatewayFlowMonitorDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TimePoint: 时间点。表示要查询这分钟内的明细。如：`2019-02-28 18:15:20`，将查询 `18:15` 这一分钟内的明细。
        :type TimePoint: str
        :param _VpnId: VPN网关实例ID，形如：`vpn-ltjahce6`。
        :type VpnId: str
        :param _DirectConnectGatewayId: 专线网关实例ID，形如：`dcg-ltjahce6`。
        :type DirectConnectGatewayId: str
        :param _PeeringConnectionId: 对等连接实例ID，形如：`pcx-ltjahce6`。
        :type PeeringConnectionId: str
        :param _NatId: NAT网关实例ID，形如：`nat-ltjahce6`。
        :type NatId: str
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: int
        :param _OrderField: 排序字段。支持 `InPkg` `OutPkg` `InTraffic` `OutTraffic`。默认值`OutTraffic`。
        :type OrderField: str
        :param _OrderDirection: 排序方法。顺序：`ASC`，倒序：`DESC`。默认值`DESC`。
        :type OrderDirection: str
        """
        self._TimePoint = None
        self._VpnId = None
        self._DirectConnectGatewayId = None
        self._PeeringConnectionId = None
        self._NatId = None
        self._Offset = None
        self._Limit = None
        self._OrderField = None
        self._OrderDirection = None

    @property
    def TimePoint(self):
        return self._TimePoint

    @TimePoint.setter
    def TimePoint(self, TimePoint):
        self._TimePoint = TimePoint

    @property
    def VpnId(self):
        return self._VpnId

    @VpnId.setter
    def VpnId(self, VpnId):
        self._VpnId = VpnId

    @property
    def DirectConnectGatewayId(self):
        return self._DirectConnectGatewayId

    @DirectConnectGatewayId.setter
    def DirectConnectGatewayId(self, DirectConnectGatewayId):
        self._DirectConnectGatewayId = DirectConnectGatewayId

    @property
    def PeeringConnectionId(self):
        return self._PeeringConnectionId

    @PeeringConnectionId.setter
    def PeeringConnectionId(self, PeeringConnectionId):
        self._PeeringConnectionId = PeeringConnectionId

    @property
    def NatId(self):
        return self._NatId

    @NatId.setter
    def NatId(self, NatId):
        self._NatId = NatId

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def OrderField(self):
        return self._OrderField

    @OrderField.setter
    def OrderField(self, OrderField):
        self._OrderField = OrderField

    @property
    def OrderDirection(self):
        return self._OrderDirection

    @OrderDirection.setter
    def OrderDirection(self, OrderDirection):
        self._OrderDirection = OrderDirection


    def _deserialize(self, params):
        self._TimePoint = params.get("TimePoint")
        self._VpnId = params.get("VpnId")
        self._DirectConnectGatewayId = params.get("DirectConnectGatewayId")
        self._PeeringConnectionId = params.get("PeeringConnectionId")
        self._NatId = params.get("NatId")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._OrderField = params.get("OrderField")
        self._OrderDirection = params.get("OrderDirection")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeGatewayFlowMonitorDetailResponse(AbstractModel):
    """DescribeGatewayFlowMonitorDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的对象数。
        :type TotalCount: int
        :param _GatewayFlowMonitorDetailSet: 网关流量监控明细。
        :type GatewayFlowMonitorDetailSet: list of GatewayFlowMonitorDetail
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._GatewayFlowMonitorDetailSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def GatewayFlowMonitorDetailSet(self):
        return self._GatewayFlowMonitorDetailSet

    @GatewayFlowMonitorDetailSet.setter
    def GatewayFlowMonitorDetailSet(self, GatewayFlowMonitorDetailSet):
        self._GatewayFlowMonitorDetailSet = GatewayFlowMonitorDetailSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("GatewayFlowMonitorDetailSet") is not None:
            self._GatewayFlowMonitorDetailSet = []
            for item in params.get("GatewayFlowMonitorDetailSet"):
                obj = GatewayFlowMonitorDetail()
                obj._deserialize(item)
                self._GatewayFlowMonitorDetailSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeGatewayFlowQosRequest(AbstractModel):
    """DescribeGatewayFlowQos请求参数结构体

    """

    def __init__(self):
        r"""
        :param _GatewayId: 网关实例ID，目前我们支持的网关实例类型有，
专线网关实例ID，形如，`dcg-ltjahce6`；
Nat网关实例ID，形如，`nat-ltjahce6`；
VPN网关实例ID，形如，`vpn-ltjahce6`。
        :type GatewayId: str
        :param _IpAddresses: 限流的云服务器内网IP。
        :type IpAddresses: list of str
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: int
        """
        self._GatewayId = None
        self._IpAddresses = None
        self._Offset = None
        self._Limit = None

    @property
    def GatewayId(self):
        return self._GatewayId

    @GatewayId.setter
    def GatewayId(self, GatewayId):
        self._GatewayId = GatewayId

    @property
    def IpAddresses(self):
        return self._IpAddresses

    @IpAddresses.setter
    def IpAddresses(self, IpAddresses):
        self._IpAddresses = IpAddresses

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._GatewayId = params.get("GatewayId")
        self._IpAddresses = params.get("IpAddresses")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeGatewayFlowQosResponse(AbstractModel):
    """DescribeGatewayFlowQos返回参数结构体

    """

    def __init__(self):
        r"""
        :param _GatewayQosSet: 实例详细信息列表。
        :type GatewayQosSet: list of GatewayQos
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._GatewayQosSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def GatewayQosSet(self):
        return self._GatewayQosSet

    @GatewayQosSet.setter
    def GatewayQosSet(self, GatewayQosSet):
        self._GatewayQosSet = GatewayQosSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("GatewayQosSet") is not None:
            self._GatewayQosSet = []
            for item in params.get("GatewayQosSet"):
                obj = GatewayQos()
                obj._deserialize(item)
                self._GatewayQosSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeHaVipsRequest(AbstractModel):
    """DescribeHaVips请求参数结构体

    """

    def __init__(self):
        r"""
        :param _HaVipIds: `HAVIP`唯一`ID`，形如：`havip-9o233uri`。
        :type HaVipIds: list of str
        :param _Filters: 过滤条件，参数不支持同时指定`HaVipIds`和`Filters`。
<li>havip-id - String - `HAVIP`唯一`ID`，形如：`havip-9o233uri`。</li>
<li>havip-name - String - `HAVIP`名称。</li>
<li>vpc-id - String - `HAVIP`所在私有网络`ID`。</li>
<li>subnet-id - String - `HAVIP`所在子网`ID`。</li>
<li>vip - String - `HAVIP`的地址`VIP`。</li>
<li>address-ip - String - `HAVIP`绑定的弹性公网`IP`。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。

        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。

        :type Limit: int
        """
        self._HaVipIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def HaVipIds(self):
        return self._HaVipIds

    @HaVipIds.setter
    def HaVipIds(self, HaVipIds):
        self._HaVipIds = HaVipIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._HaVipIds = params.get("HaVipIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeHaVipsResponse(AbstractModel):
    """DescribeHaVips返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的对象数。
        :type TotalCount: int
        :param _HaVipSet: `HAVIP`对象数组。
        :type HaVipSet: list of HaVip
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._HaVipSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def HaVipSet(self):
        return self._HaVipSet

    @HaVipSet.setter
    def HaVipSet(self, HaVipSet):
        self._HaVipSet = HaVipSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("HaVipSet") is not None:
            self._HaVipSet = []
            for item in params.get("HaVipSet"):
                obj = HaVip()
                obj._deserialize(item)
                self._HaVipSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeIp6AddressesRequest(AbstractModel):
    """DescribeIp6Addresses请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip6AddressIds: 标识 IPV6 的唯一 ID 列表。IPV6 唯一 ID 形如：`eip-11112222`。参数不支持同时指定`Ip6AddressIds`和`Filters`。
        :type Ip6AddressIds: list of str
        :param _Filters: 每次请求的`Filters`的上限为10，`Filter.Values`的上限为100。参数不支持同时指定`AddressIds`和`Filters`。详细的过滤条件如下：
<li> address-ip - String - 是否必填：否 - （过滤条件）按照 IPV6 的 IP 地址过滤。</li>
<li> network-interface-id - String - 是否必填：否 - （过滤条件）按照弹性网卡的唯一ID过滤。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。关于`Offset`的更进一步介绍请参考 API [简介](https://cloud.tencent.com/document/api/213/11646)中的相关小节。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。关于`Limit`的更进一步介绍请参考 API [简介](https://cloud.tencent.com/document/api/213/11646)中的相关小节。
        :type Limit: int
        """
        self._Ip6AddressIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def Ip6AddressIds(self):
        return self._Ip6AddressIds

    @Ip6AddressIds.setter
    def Ip6AddressIds(self, Ip6AddressIds):
        self._Ip6AddressIds = Ip6AddressIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._Ip6AddressIds = params.get("Ip6AddressIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeIp6AddressesResponse(AbstractModel):
    """DescribeIp6Addresses返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的 IPV6 数量。
        :type TotalCount: int
        :param _AddressSet: IPV6 详细信息列表。
        :type AddressSet: list of Address
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._AddressSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def AddressSet(self):
        return self._AddressSet

    @AddressSet.setter
    def AddressSet(self, AddressSet):
        self._AddressSet = AddressSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("AddressSet") is not None:
            self._AddressSet = []
            for item in params.get("AddressSet"):
                obj = Address()
                obj._deserialize(item)
                self._AddressSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeIp6TranslatorQuotaRequest(AbstractModel):
    """DescribeIp6TranslatorQuota请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip6TranslatorIds: 待查询IPV6转换实例的唯一ID列表，形如ip6-xxxxxxxx
        :type Ip6TranslatorIds: list of str
        """
        self._Ip6TranslatorIds = None

    @property
    def Ip6TranslatorIds(self):
        return self._Ip6TranslatorIds

    @Ip6TranslatorIds.setter
    def Ip6TranslatorIds(self, Ip6TranslatorIds):
        self._Ip6TranslatorIds = Ip6TranslatorIds


    def _deserialize(self, params):
        self._Ip6TranslatorIds = params.get("Ip6TranslatorIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeIp6TranslatorQuotaResponse(AbstractModel):
    """DescribeIp6TranslatorQuota返回参数结构体

    """

    def __init__(self):
        r"""
        :param _QuotaSet: 账户在指定地域的IPV6转换实例及规则配额信息
QUOTAID属性是TOTAL_TRANSLATOR_QUOTA，表示账户在指定地域的IPV6转换实例配额信息；QUOTAID属性是IPV6转换实例唯一ID（形如ip6-xxxxxxxx），表示账户在该转换实例允许创建的转换规则配额
        :type QuotaSet: list of Quota
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._QuotaSet = None
        self._RequestId = None

    @property
    def QuotaSet(self):
        return self._QuotaSet

    @QuotaSet.setter
    def QuotaSet(self, QuotaSet):
        self._QuotaSet = QuotaSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("QuotaSet") is not None:
            self._QuotaSet = []
            for item in params.get("QuotaSet"):
                obj = Quota()
                obj._deserialize(item)
                self._QuotaSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeIp6TranslatorsRequest(AbstractModel):
    """DescribeIp6Translators请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip6TranslatorIds: IPV6转换实例唯一ID数组，形如ip6-xxxxxxxx
        :type Ip6TranslatorIds: list of str
        :param _Filters: 每次请求的`Filters`的上限为10，`Filter.Values`的上限为5。参数不支持同时指定`Ip6TranslatorIds`和`Filters`。详细的过滤条件如下：
<li> ip6-translator-id - String - 是否必填：否 - （过滤条件）按照IPV6转换实例的唯一ID过滤,形如ip6-xxxxxxx。</li>
<li> ip6-translator-vip6 - String - 是否必填：否 - （过滤条件）按照IPV6地址过滤。不支持模糊过滤。</li>
<li> ip6-translator-name - String - 是否必填：否 - （过滤条件）按照IPV6转换实例名称过滤。不支持模糊过滤。</li>
<li> ip6-translator-status - String - 是否必填：否 - （过滤条件）按照IPV6转换实例的状态过滤。状态取值范围为"CREATING","RUNNING","DELETING","MODIFYING"
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。关于`Offset`的更进一步介绍请参考 API [简介](https://cloud.tencent.com/document/api/213/11646)中的相关小节。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。关于`Limit`的更进一步介绍请参考 API [简介](https://cloud.tencent.com/document/api/213/11646)中的相关小节。
        :type Limit: int
        """
        self._Ip6TranslatorIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def Ip6TranslatorIds(self):
        return self._Ip6TranslatorIds

    @Ip6TranslatorIds.setter
    def Ip6TranslatorIds(self, Ip6TranslatorIds):
        self._Ip6TranslatorIds = Ip6TranslatorIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._Ip6TranslatorIds = params.get("Ip6TranslatorIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeIp6TranslatorsResponse(AbstractModel):
    """DescribeIp6Translators返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合过滤条件的IPV6转换实例数量。
        :type TotalCount: int
        :param _Ip6TranslatorSet: 符合过滤条件的IPV6转换实例详细信息
        :type Ip6TranslatorSet: list of Ip6Translator
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._Ip6TranslatorSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def Ip6TranslatorSet(self):
        return self._Ip6TranslatorSet

    @Ip6TranslatorSet.setter
    def Ip6TranslatorSet(self, Ip6TranslatorSet):
        self._Ip6TranslatorSet = Ip6TranslatorSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("Ip6TranslatorSet") is not None:
            self._Ip6TranslatorSet = []
            for item in params.get("Ip6TranslatorSet"):
                obj = Ip6Translator()
                obj._deserialize(item)
                self._Ip6TranslatorSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeIpGeolocationDatabaseUrlRequest(AbstractModel):
    """DescribeIpGeolocationDatabaseUrl请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Type: IP地理位置库协议类型，目前仅支持"ipv4"。
        :type Type: str
        """
        self._Type = None

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type


    def _deserialize(self, params):
        self._Type = params.get("Type")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeIpGeolocationDatabaseUrlResponse(AbstractModel):
    """DescribeIpGeolocationDatabaseUrl返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownLoadUrl: IP地理位置库下载链接地址。
        :type DownLoadUrl: str
        :param _ExpiredAt: 链接到期时间。按照`ISO8601`标准表示，并且使用`UTC`时间。
        :type ExpiredAt: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownLoadUrl = None
        self._ExpiredAt = None
        self._RequestId = None

    @property
    def DownLoadUrl(self):
        return self._DownLoadUrl

    @DownLoadUrl.setter
    def DownLoadUrl(self, DownLoadUrl):
        self._DownLoadUrl = DownLoadUrl

    @property
    def ExpiredAt(self):
        return self._ExpiredAt

    @ExpiredAt.setter
    def ExpiredAt(self, ExpiredAt):
        self._ExpiredAt = ExpiredAt

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownLoadUrl = params.get("DownLoadUrl")
        self._ExpiredAt = params.get("ExpiredAt")
        self._RequestId = params.get("RequestId")


class DescribeIpGeolocationInfosRequest(AbstractModel):
    """DescribeIpGeolocationInfos请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressIps: 需查询的IP地址列表，目前仅支持IPv4地址。查询的IP地址数量上限为100个。
        :type AddressIps: list of str
        :param _Fields: 需查询的IP地址的字段信息。
        :type Fields: :class:`tencentcloud.vpc.v20170312.models.IpField`
        """
        self._AddressIps = None
        self._Fields = None

    @property
    def AddressIps(self):
        return self._AddressIps

    @AddressIps.setter
    def AddressIps(self, AddressIps):
        self._AddressIps = AddressIps

    @property
    def Fields(self):
        return self._Fields

    @Fields.setter
    def Fields(self, Fields):
        self._Fields = Fields


    def _deserialize(self, params):
        self._AddressIps = params.get("AddressIps")
        if params.get("Fields") is not None:
            self._Fields = IpField()
            self._Fields._deserialize(params.get("Fields"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeIpGeolocationInfosResponse(AbstractModel):
    """DescribeIpGeolocationInfos返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressInfo: IP地址信息列表。
        :type AddressInfo: list of IpGeolocationInfo
        :param _Total: IP地址信息个数。
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AddressInfo = None
        self._Total = None
        self._RequestId = None

    @property
    def AddressInfo(self):
        return self._AddressInfo

    @AddressInfo.setter
    def AddressInfo(self, AddressInfo):
        self._AddressInfo = AddressInfo

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("AddressInfo") is not None:
            self._AddressInfo = []
            for item in params.get("AddressInfo"):
                obj = IpGeolocationInfo()
                obj._deserialize(item)
                self._AddressInfo.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeLocalGatewayRequest(AbstractModel):
    """DescribeLocalGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 查询条件：
vpc-id：按照VPCID过滤，local-gateway-name：按照本地网关名称过滤，名称支持模糊搜索，local-gateway-id：按照本地网关实例ID过滤，cdc-id：按照cdc实例ID过滤查询。
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。关于`Offset`的更进一步介绍请参考 API [简介](https://cloud.tencent.com/document/api/213/11646)中的相关小节。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。关于`Limit`的更进一步介绍请参考 API [简介](https://cloud.tencent.com/document/api/213/11646)中的相关小节。
        :type Limit: int
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeLocalGatewayResponse(AbstractModel):
    """DescribeLocalGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _LocalGatewaySet: 本地网关信息集合。
        :type LocalGatewaySet: list of LocalGateway
        :param _TotalCount: 本地网关总数。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._LocalGatewaySet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def LocalGatewaySet(self):
        return self._LocalGatewaySet

    @LocalGatewaySet.setter
    def LocalGatewaySet(self, LocalGatewaySet):
        self._LocalGatewaySet = LocalGatewaySet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("LocalGatewaySet") is not None:
            self._LocalGatewaySet = []
            for item in params.get("LocalGatewaySet"):
                obj = LocalGateway()
                obj._deserialize(item)
                self._LocalGatewaySet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeNatGatewayDestinationIpPortTranslationNatRulesRequest(AbstractModel):
    """DescribeNatGatewayDestinationIpPortTranslationNatRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayIds: NAT网关ID。
        :type NatGatewayIds: list of str
        :param _Filters: 过滤条件:
参数不支持同时指定NatGatewayIds和Filters。每次请求的Filters的上限为10，Filter.Values的上限为5
<li> nat-gateway-id，NAT网关的ID，如`nat-0yi4hekt`</li>
<li> vpc-id，私有网络VPC的ID，如`vpc-0yi4hekt`</li>
<li> public-ip-address， 弹性IP，如`139.199.232.238`。</li>
<li>public-port， 公网端口。</li>
<li>private-ip-address， 内网IP，如`10.0.0.1`。</li>
<li>private-port， 内网端口。</li>
<li>description，规则描述。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: int
        """
        self._NatGatewayIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def NatGatewayIds(self):
        return self._NatGatewayIds

    @NatGatewayIds.setter
    def NatGatewayIds(self, NatGatewayIds):
        self._NatGatewayIds = NatGatewayIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._NatGatewayIds = params.get("NatGatewayIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeNatGatewayDestinationIpPortTranslationNatRulesResponse(AbstractModel):
    """DescribeNatGatewayDestinationIpPortTranslationNatRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayDestinationIpPortTranslationNatRuleSet: NAT网关端口转发规则对象数组。
        :type NatGatewayDestinationIpPortTranslationNatRuleSet: list of NatGatewayDestinationIpPortTranslationNatRule
        :param _TotalCount: 符合条件的NAT网关端口转发规则对象数目。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NatGatewayDestinationIpPortTranslationNatRuleSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def NatGatewayDestinationIpPortTranslationNatRuleSet(self):
        return self._NatGatewayDestinationIpPortTranslationNatRuleSet

    @NatGatewayDestinationIpPortTranslationNatRuleSet.setter
    def NatGatewayDestinationIpPortTranslationNatRuleSet(self, NatGatewayDestinationIpPortTranslationNatRuleSet):
        self._NatGatewayDestinationIpPortTranslationNatRuleSet = NatGatewayDestinationIpPortTranslationNatRuleSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NatGatewayDestinationIpPortTranslationNatRuleSet") is not None:
            self._NatGatewayDestinationIpPortTranslationNatRuleSet = []
            for item in params.get("NatGatewayDestinationIpPortTranslationNatRuleSet"):
                obj = NatGatewayDestinationIpPortTranslationNatRule()
                obj._deserialize(item)
                self._NatGatewayDestinationIpPortTranslationNatRuleSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeNatGatewayDirectConnectGatewayRouteRequest(AbstractModel):
    """DescribeNatGatewayDirectConnectGatewayRoute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayId: nat的唯一标识
        :type NatGatewayId: str
        :param _VpcId: vpc的唯一标识
        :type VpcId: str
        :param _Limit: 0到200之间
        :type Limit: int
        :param _Offset: 大于0
        :type Offset: int
        """
        self._NatGatewayId = None
        self._VpcId = None
        self._Limit = None
        self._Offset = None

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset


    def _deserialize(self, params):
        self._NatGatewayId = params.get("NatGatewayId")
        self._VpcId = params.get("VpcId")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeNatGatewayDirectConnectGatewayRouteResponse(AbstractModel):
    """DescribeNatGatewayDirectConnectGatewayRoute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NatDirectConnectGatewayRouteSet: 路由数据
        :type NatDirectConnectGatewayRouteSet: list of NatDirectConnectGatewayRoute
        :param _Total: 路由总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NatDirectConnectGatewayRouteSet = None
        self._Total = None
        self._RequestId = None

    @property
    def NatDirectConnectGatewayRouteSet(self):
        return self._NatDirectConnectGatewayRouteSet

    @NatDirectConnectGatewayRouteSet.setter
    def NatDirectConnectGatewayRouteSet(self, NatDirectConnectGatewayRouteSet):
        self._NatDirectConnectGatewayRouteSet = NatDirectConnectGatewayRouteSet

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NatDirectConnectGatewayRouteSet") is not None:
            self._NatDirectConnectGatewayRouteSet = []
            for item in params.get("NatDirectConnectGatewayRouteSet"):
                obj = NatDirectConnectGatewayRoute()
                obj._deserialize(item)
                self._NatDirectConnectGatewayRouteSet.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeNatGatewaySourceIpTranslationNatRulesRequest(AbstractModel):
    """DescribeNatGatewaySourceIpTranslationNatRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayId: NAT网关统一 ID，形如：`nat-123xx454`。
        :type NatGatewayId: str
        :param _Filters: 过滤条件:
<li> resource-id，Subnet的ID或者Cvm ID，如`subnet-0yi4hekt`</li>
<li> public-ip-address，弹性IP，如`139.199.232.238`</li>
<li>description，规则描述。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: int
        """
        self._NatGatewayId = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._NatGatewayId = params.get("NatGatewayId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeNatGatewaySourceIpTranslationNatRulesResponse(AbstractModel):
    """DescribeNatGatewaySourceIpTranslationNatRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SourceIpTranslationNatRuleSet: NAT网关SNAT规则对象数组。
注意：此字段可能返回 null，表示取不到有效值。
        :type SourceIpTranslationNatRuleSet: list of SourceIpTranslationNatRule
        :param _TotalCount: 符合条件的NAT网关端口转发规则对象数目。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SourceIpTranslationNatRuleSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def SourceIpTranslationNatRuleSet(self):
        return self._SourceIpTranslationNatRuleSet

    @SourceIpTranslationNatRuleSet.setter
    def SourceIpTranslationNatRuleSet(self, SourceIpTranslationNatRuleSet):
        self._SourceIpTranslationNatRuleSet = SourceIpTranslationNatRuleSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("SourceIpTranslationNatRuleSet") is not None:
            self._SourceIpTranslationNatRuleSet = []
            for item in params.get("SourceIpTranslationNatRuleSet"):
                obj = SourceIpTranslationNatRule()
                obj._deserialize(item)
                self._SourceIpTranslationNatRuleSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeNatGatewaysRequest(AbstractModel):
    """DescribeNatGateways请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayIds: NAT网关统一 ID，形如：`nat-123xx454`。每次请求的实例上限为100。参数不支持同时指定NatGatewayIds和Filters。
        :type NatGatewayIds: list of str
        :param _Filters: 过滤条件，参数不支持同时指定NatGatewayIds和Filters。每次请求的Filters的上限为10，Filter.Values的上限为5。
<li>nat-gateway-id - String - （过滤条件）协议端口模板实例ID，形如：`nat-123xx454`。</li>
<li>vpc-id - String - （过滤条件）私有网络 唯一ID，形如：`vpc-123xx454`。</li>
<li>nat-gateway-name - String - （过滤条件）协议端口模板实例ID，形如：`test_nat`。</li>
<li>tag-key - String - （过滤条件）标签键，形如：`test-key`。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: int
        """
        self._NatGatewayIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def NatGatewayIds(self):
        return self._NatGatewayIds

    @NatGatewayIds.setter
    def NatGatewayIds(self, NatGatewayIds):
        self._NatGatewayIds = NatGatewayIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._NatGatewayIds = params.get("NatGatewayIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeNatGatewaysResponse(AbstractModel):
    """DescribeNatGateways返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewaySet: NAT网关对象数组。
        :type NatGatewaySet: list of NatGateway
        :param _TotalCount: 符合条件的NAT网关对象个数。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NatGatewaySet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def NatGatewaySet(self):
        return self._NatGatewaySet

    @NatGatewaySet.setter
    def NatGatewaySet(self, NatGatewaySet):
        self._NatGatewaySet = NatGatewaySet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NatGatewaySet") is not None:
            self._NatGatewaySet = []
            for item in params.get("NatGatewaySet"):
                obj = NatGateway()
                obj._deserialize(item)
                self._NatGatewaySet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeNetDetectStatesRequest(AbstractModel):
    """DescribeNetDetectStates请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetDetectIds: 网络探测实例`ID`数组。形如：[`netd-12345678`]。
        :type NetDetectIds: list of str
        :param _Filters: 过滤条件，参数不支持同时指定NetDetectIds和Filters。
<li>net-detect-id - String - （过滤条件）网络探测实例ID，形如：netd-12345678。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: int
        """
        self._NetDetectIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def NetDetectIds(self):
        return self._NetDetectIds

    @NetDetectIds.setter
    def NetDetectIds(self, NetDetectIds):
        self._NetDetectIds = NetDetectIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._NetDetectIds = params.get("NetDetectIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeNetDetectStatesResponse(AbstractModel):
    """DescribeNetDetectStates返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetDetectStateSet: 符合条件的网络探测验证结果对象数组。
注意：此字段可能返回 null，表示取不到有效值。
        :type NetDetectStateSet: list of NetDetectState
        :param _TotalCount: 符合条件的网络探测验证结果对象数量。
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetDetectStateSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def NetDetectStateSet(self):
        return self._NetDetectStateSet

    @NetDetectStateSet.setter
    def NetDetectStateSet(self, NetDetectStateSet):
        self._NetDetectStateSet = NetDetectStateSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NetDetectStateSet") is not None:
            self._NetDetectStateSet = []
            for item in params.get("NetDetectStateSet"):
                obj = NetDetectState()
                obj._deserialize(item)
                self._NetDetectStateSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeNetDetectsRequest(AbstractModel):
    """DescribeNetDetects请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetDetectIds: 网络探测实例`ID`数组。形如：[`netd-12345678`]。
        :type NetDetectIds: list of str
        :param _Filters: 过滤条件，参数不支持同时指定NetDetectIds和Filters。
<li>vpc-id - String - （过滤条件）VPC实例ID，形如：vpc-12345678</li>
<li>net-detect-id - String - （过滤条件）网络探测实例ID，形如：netd-12345678</li>
<li>subnet-id - String - （过滤条件）子网实例ID，形如：subnet-12345678</li>
<li>net-detect-name - String - （过滤条件）网络探测名称</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: int
        """
        self._NetDetectIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def NetDetectIds(self):
        return self._NetDetectIds

    @NetDetectIds.setter
    def NetDetectIds(self, NetDetectIds):
        self._NetDetectIds = NetDetectIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._NetDetectIds = params.get("NetDetectIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeNetDetectsResponse(AbstractModel):
    """DescribeNetDetects返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetDetectSet: 符合条件的网络探测对象数组。
注意：此字段可能返回 null，表示取不到有效值。
        :type NetDetectSet: list of NetDetect
        :param _TotalCount: 符合条件的网络探测对象数量。
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetDetectSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def NetDetectSet(self):
        return self._NetDetectSet

    @NetDetectSet.setter
    def NetDetectSet(self, NetDetectSet):
        self._NetDetectSet = NetDetectSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NetDetectSet") is not None:
            self._NetDetectSet = []
            for item in params.get("NetDetectSet"):
                obj = NetDetect()
                obj._deserialize(item)
                self._NetDetectSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeNetworkAccountTypeRequest(AbstractModel):
    """DescribeNetworkAccountType请求参数结构体

    """


class DescribeNetworkAccountTypeResponse(AbstractModel):
    """DescribeNetworkAccountType返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkAccountType: 用户账号的网络类型，STANDARD为标准用户，LEGACY为传统用户
        :type NetworkAccountType: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetworkAccountType = None
        self._RequestId = None

    @property
    def NetworkAccountType(self):
        return self._NetworkAccountType

    @NetworkAccountType.setter
    def NetworkAccountType(self, NetworkAccountType):
        self._NetworkAccountType = NetworkAccountType

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._NetworkAccountType = params.get("NetworkAccountType")
        self._RequestId = params.get("RequestId")


class DescribeNetworkAclQuintupleEntriesRequest(AbstractModel):
    """DescribeNetworkAclQuintupleEntries请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkAclId: 网络ACL实例ID。形如：acl-12345678。
        :type NetworkAclId: str
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最小值为1，最大值为100。
        :type Limit: int
        :param _Filters: 过滤条件，参数不支持同时指定`HaVipIds`和`Filters`。
<li>protocol - String - 协议，形如：`TCP`。</li>
<li>description - String - 描述。</li>
<li>destination-cidr - String - 目的CIDR， 形如：'192.168.0.0/24'。</li>
<li>source-cidr- String - 源CIDR， 形如：'192.168.0.0/24'。</li>
<li>action - String - 动作，形如ACCEPT或DROP。</li>
<li>network-acl-quintuple-entry-id - String - 五元组唯一ID，形如：'acli45-ahnu4rv5'。</li>
<li>network-acl-direction - String - 方向，形如：'INGRESS'或'EGRESS'。</li>
        :type Filters: list of Filter
        """
        self._NetworkAclId = None
        self._Offset = None
        self._Limit = None
        self._Filters = None

    @property
    def NetworkAclId(self):
        return self._NetworkAclId

    @NetworkAclId.setter
    def NetworkAclId(self, NetworkAclId):
        self._NetworkAclId = NetworkAclId

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._NetworkAclId = params.get("NetworkAclId")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeNetworkAclQuintupleEntriesResponse(AbstractModel):
    """DescribeNetworkAclQuintupleEntries返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkAclQuintupleSet: 网络ACL条目列表（NetworkAclTuple5Entry）
        :type NetworkAclQuintupleSet: list of NetworkAclQuintupleEntry
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetworkAclQuintupleSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def NetworkAclQuintupleSet(self):
        return self._NetworkAclQuintupleSet

    @NetworkAclQuintupleSet.setter
    def NetworkAclQuintupleSet(self, NetworkAclQuintupleSet):
        self._NetworkAclQuintupleSet = NetworkAclQuintupleSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NetworkAclQuintupleSet") is not None:
            self._NetworkAclQuintupleSet = []
            for item in params.get("NetworkAclQuintupleSet"):
                obj = NetworkAclQuintupleEntry()
                obj._deserialize(item)
                self._NetworkAclQuintupleSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeNetworkAclsRequest(AbstractModel):
    """DescribeNetworkAcls请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件，参数不支持同时指定NetworkAclIds和Filters。
<li>vpc-id - String - （过滤条件）VPC实例ID，形如：vpc-12345678。</li>
<li>network-acl-id - String - （过滤条件）网络ACL实例ID，形如：acl-12345678。</li>
<li>network-acl-name - String - （过滤条件）网络ACL实例名称。</li>
        :type Filters: list of Filter
        :param _NetworkAclIds: 网络ACL实例ID数组。形如：[acl-12345678]。每次请求的实例的上限为100。参数不支持同时指定NetworkAclIds和Filters。
        :type NetworkAclIds: list of str
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最小值为1，最大值为100。
        :type Limit: int
        :param _OrderField: 排序字段。支持：NetworkAclId,NetworkAclName,CreatedTime
        :type OrderField: str
        :param _OrderDirection: 排序方法。顺序：ASC，倒序：DESC。
        :type OrderDirection: str
        """
        self._Filters = None
        self._NetworkAclIds = None
        self._Offset = None
        self._Limit = None
        self._OrderField = None
        self._OrderDirection = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def NetworkAclIds(self):
        return self._NetworkAclIds

    @NetworkAclIds.setter
    def NetworkAclIds(self, NetworkAclIds):
        self._NetworkAclIds = NetworkAclIds

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def OrderField(self):
        return self._OrderField

    @OrderField.setter
    def OrderField(self, OrderField):
        self._OrderField = OrderField

    @property
    def OrderDirection(self):
        return self._OrderDirection

    @OrderDirection.setter
    def OrderDirection(self, OrderDirection):
        self._OrderDirection = OrderDirection


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._NetworkAclIds = params.get("NetworkAclIds")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._OrderField = params.get("OrderField")
        self._OrderDirection = params.get("OrderDirection")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeNetworkAclsResponse(AbstractModel):
    """DescribeNetworkAcls返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkAclSet: 实例详细信息列表。
        :type NetworkAclSet: list of NetworkAcl
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetworkAclSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def NetworkAclSet(self):
        return self._NetworkAclSet

    @NetworkAclSet.setter
    def NetworkAclSet(self, NetworkAclSet):
        self._NetworkAclSet = NetworkAclSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NetworkAclSet") is not None:
            self._NetworkAclSet = []
            for item in params.get("NetworkAclSet"):
                obj = NetworkAcl()
                obj._deserialize(item)
                self._NetworkAclSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeNetworkInterfaceLimitRequest(AbstractModel):
    """DescribeNetworkInterfaceLimit请求参数结构体

    """

    def __init__(self):
        r"""
        :param _InstanceId: 要查询的CVM实例ID或弹性网卡ID。
        :type InstanceId: str
        """
        self._InstanceId = None

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId


    def _deserialize(self, params):
        self._InstanceId = params.get("InstanceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeNetworkInterfaceLimitResponse(AbstractModel):
    """DescribeNetworkInterfaceLimit返回参数结构体

    """

    def __init__(self):
        r"""
        :param _EniQuantity: 标准型弹性网卡配额。
        :type EniQuantity: int
        :param _EniPrivateIpAddressQuantity: 每个标准型弹性网卡可以分配的IP配额。
        :type EniPrivateIpAddressQuantity: int
        :param _ExtendEniQuantity: 扩展型网卡配额。
注意：此字段可能返回 null，表示取不到有效值。
        :type ExtendEniQuantity: int
        :param _ExtendEniPrivateIpAddressQuantity: 每个扩展型弹性网卡可以分配的IP配额。
注意：此字段可能返回 null，表示取不到有效值。
        :type ExtendEniPrivateIpAddressQuantity: int
        :param _SubEniQuantity: 中继网卡配额。
注意：此字段可能返回 null，表示取不到有效值。
        :type SubEniQuantity: int
        :param _SubEniPrivateIpAddressQuantity: 每个中继网卡可以分配的IP配额。
注意：此字段可能返回 null，表示取不到有效值。
        :type SubEniPrivateIpAddressQuantity: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._EniQuantity = None
        self._EniPrivateIpAddressQuantity = None
        self._ExtendEniQuantity = None
        self._ExtendEniPrivateIpAddressQuantity = None
        self._SubEniQuantity = None
        self._SubEniPrivateIpAddressQuantity = None
        self._RequestId = None

    @property
    def EniQuantity(self):
        return self._EniQuantity

    @EniQuantity.setter
    def EniQuantity(self, EniQuantity):
        self._EniQuantity = EniQuantity

    @property
    def EniPrivateIpAddressQuantity(self):
        return self._EniPrivateIpAddressQuantity

    @EniPrivateIpAddressQuantity.setter
    def EniPrivateIpAddressQuantity(self, EniPrivateIpAddressQuantity):
        self._EniPrivateIpAddressQuantity = EniPrivateIpAddressQuantity

    @property
    def ExtendEniQuantity(self):
        return self._ExtendEniQuantity

    @ExtendEniQuantity.setter
    def ExtendEniQuantity(self, ExtendEniQuantity):
        self._ExtendEniQuantity = ExtendEniQuantity

    @property
    def ExtendEniPrivateIpAddressQuantity(self):
        return self._ExtendEniPrivateIpAddressQuantity

    @ExtendEniPrivateIpAddressQuantity.setter
    def ExtendEniPrivateIpAddressQuantity(self, ExtendEniPrivateIpAddressQuantity):
        self._ExtendEniPrivateIpAddressQuantity = ExtendEniPrivateIpAddressQuantity

    @property
    def SubEniQuantity(self):
        return self._SubEniQuantity

    @SubEniQuantity.setter
    def SubEniQuantity(self, SubEniQuantity):
        self._SubEniQuantity = SubEniQuantity

    @property
    def SubEniPrivateIpAddressQuantity(self):
        return self._SubEniPrivateIpAddressQuantity

    @SubEniPrivateIpAddressQuantity.setter
    def SubEniPrivateIpAddressQuantity(self, SubEniPrivateIpAddressQuantity):
        self._SubEniPrivateIpAddressQuantity = SubEniPrivateIpAddressQuantity

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._EniQuantity = params.get("EniQuantity")
        self._EniPrivateIpAddressQuantity = params.get("EniPrivateIpAddressQuantity")
        self._ExtendEniQuantity = params.get("ExtendEniQuantity")
        self._ExtendEniPrivateIpAddressQuantity = params.get("ExtendEniPrivateIpAddressQuantity")
        self._SubEniQuantity = params.get("SubEniQuantity")
        self._SubEniPrivateIpAddressQuantity = params.get("SubEniPrivateIpAddressQuantity")
        self._RequestId = params.get("RequestId")


class DescribeNetworkInterfacesRequest(AbstractModel):
    """DescribeNetworkInterfaces请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceIds: 弹性网卡实例ID查询。形如：eni-pxir56ns。每次请求的实例的上限为100。参数不支持同时指定NetworkInterfaceIds和Filters。
        :type NetworkInterfaceIds: list of str
        :param _Filters: 过滤条件，参数不支持同时指定NetworkInterfaceIds和Filters。
<li>vpc-id - String - （过滤条件）VPC实例ID，形如：vpc-f49l6u0z。</li>
<li>subnet-id - String - （过滤条件）所属子网实例ID，形如：subnet-f49l6u0z。</li>
<li>network-interface-id - String - （过滤条件）弹性网卡实例ID，形如：eni-5k56k7k7。</li>
<li>attachment.instance-id - String - （过滤条件）绑定的云服务器实例ID，形如：ins-3nqpdn3i。</li>
<li>groups.security-group-id - String - （过滤条件）绑定的安全组实例ID，例如：sg-f9ekbxeq。</li>
<li>network-interface-name - String - （过滤条件）网卡实例名称。</li>
<li>network-interface-description - String - （过滤条件）网卡实例描述。</li>
<li>address-ip - String - （过滤条件）内网IPv4地址，单IP后缀模糊匹配，多IP精确匹配。可以与`ip-exact-match`配合做单IP的精确匹配查询。</li>
<li>ip-exact-match - Boolean - （过滤条件）内网IPv4精确匹配查询，存在多值情况，只取第一个。</li>
<li>tag-key - String -是否必填：否- （过滤条件）按照标签键进行过滤。使用请参考示例2</li>
<li>tag:tag-key - String - 是否必填：否 - （过滤条件）按照标签键值对进行过滤。 tag-key使用具体的标签键进行替换。使用请参考示例2。</li>
<li>is-primary - Boolean - 是否必填：否 - （过滤条件）按照是否主网卡进行过滤。值为true时，仅过滤主网卡；值为false时，仅过滤辅助网卡；此过滤参数未提供时，同时过滤主网卡和辅助网卡。</li>
<li>eni-type - String -是否必填：否- （过滤条件）按照网卡类型进行过滤。“0”-辅助网卡，“1”-主网卡，“2”：中继网卡。</li>
<li>eni-qos - String -是否必填：否- （过滤条件）按照网卡服务质量进行过滤。“AG”-服务质量为云铜，“AU”-服务质量为云银。</li>
<li>address-ipv6 - String - 是否必填：否 -（过滤条件）内网IPv6地址过滤，支持多ipv6地址查询，如果和address-ip一起使用取交集。</li>
<li>public-address-ip - String - （过滤条件）公网IPv4地址，精确匹配。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: int
        """
        self._NetworkInterfaceIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def NetworkInterfaceIds(self):
        return self._NetworkInterfaceIds

    @NetworkInterfaceIds.setter
    def NetworkInterfaceIds(self, NetworkInterfaceIds):
        self._NetworkInterfaceIds = NetworkInterfaceIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._NetworkInterfaceIds = params.get("NetworkInterfaceIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeNetworkInterfacesResponse(AbstractModel):
    """DescribeNetworkInterfaces返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceSet: 实例详细信息列表。
        :type NetworkInterfaceSet: list of NetworkInterface
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetworkInterfaceSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def NetworkInterfaceSet(self):
        return self._NetworkInterfaceSet

    @NetworkInterfaceSet.setter
    def NetworkInterfaceSet(self, NetworkInterfaceSet):
        self._NetworkInterfaceSet = NetworkInterfaceSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NetworkInterfaceSet") is not None:
            self._NetworkInterfaceSet = []
            for item in params.get("NetworkInterfaceSet"):
                obj = NetworkInterface()
                obj._deserialize(item)
                self._NetworkInterfaceSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeProductQuotaRequest(AbstractModel):
    """DescribeProductQuota请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Product: 查询的网络产品名称，可查询的产品有：vpc、ccn、vpn、dc、dfw、clb、eip。
        :type Product: str
        """
        self._Product = None

    @property
    def Product(self):
        return self._Product

    @Product.setter
    def Product(self, Product):
        self._Product = Product


    def _deserialize(self, params):
        self._Product = params.get("Product")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeProductQuotaResponse(AbstractModel):
    """DescribeProductQuota返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ProductQuotaSet: ProductQuota对象数组。
        :type ProductQuotaSet: list of ProductQuota
        :param _TotalCount: 符合条件的产品类型个数。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ProductQuotaSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def ProductQuotaSet(self):
        return self._ProductQuotaSet

    @ProductQuotaSet.setter
    def ProductQuotaSet(self, ProductQuotaSet):
        self._ProductQuotaSet = ProductQuotaSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("ProductQuotaSet") is not None:
            self._ProductQuotaSet = []
            for item in params.get("ProductQuotaSet"):
                obj = ProductQuota()
                obj._deserialize(item)
                self._ProductQuotaSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeRouteConflictsRequest(AbstractModel):
    """DescribeRouteConflicts请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RouteTableId: 路由表实例ID，例如：rtb-azd4dt1c。
        :type RouteTableId: str
        :param _DestinationCidrBlocks: 要检查的与之冲突的目的端列表。
        :type DestinationCidrBlocks: list of str
        """
        self._RouteTableId = None
        self._DestinationCidrBlocks = None

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId

    @property
    def DestinationCidrBlocks(self):
        return self._DestinationCidrBlocks

    @DestinationCidrBlocks.setter
    def DestinationCidrBlocks(self, DestinationCidrBlocks):
        self._DestinationCidrBlocks = DestinationCidrBlocks


    def _deserialize(self, params):
        self._RouteTableId = params.get("RouteTableId")
        self._DestinationCidrBlocks = params.get("DestinationCidrBlocks")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRouteConflictsResponse(AbstractModel):
    """DescribeRouteConflicts返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RouteConflictSet: 路由策略冲突列表。
        :type RouteConflictSet: list of RouteConflict
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RouteConflictSet = None
        self._RequestId = None

    @property
    def RouteConflictSet(self):
        return self._RouteConflictSet

    @RouteConflictSet.setter
    def RouteConflictSet(self, RouteConflictSet):
        self._RouteConflictSet = RouteConflictSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("RouteConflictSet") is not None:
            self._RouteConflictSet = []
            for item in params.get("RouteConflictSet"):
                obj = RouteConflict()
                obj._deserialize(item)
                self._RouteConflictSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeRouteTablesRequest(AbstractModel):
    """DescribeRouteTables请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件，参数不支持同时指定RouteTableIds和Filters。
<li>route-table-id - String - （过滤条件）路由表实例ID。</li>
<li>route-table-name - String - （过滤条件）路由表名称。</li>
<li>vpc-id - String - （过滤条件）VPC实例ID，形如：vpc-f49l6u0z。</li>
<li>association.main - String - （过滤条件）是否主路由表。</li>
<li>tag-key - String -是否必填：否 - （过滤条件）按照标签键进行过滤。</li>
<li>tag:tag-key - String - 是否必填：否 - （过滤条件）按照标签键值对进行过滤。 tag-key使用具体的标签键进行替换。使用请参考示例2。</li>
<li>next-hop-type - String - 是否必填：否 - （过滤条件）按下一跳类型进行过滤。使用next-hop-type进行过滤时，必须同时携带route-table-id与vpc-id。
目前我们支持的类型有：
LOCAL: 本地路由
CVM：公网网关类型的云服务器；
VPN：VPN网关；
DIRECTCONNECT：专线网关；
PEERCONNECTION：对等连接；
HAVIP：高可用虚拟IP；
NAT：NAT网关; 
NORMAL_CVM：普通云服务器；
EIP：云服务器的公网IP；
CCN：云联网；
LOCAL_GATEWAY：本地网关。
</li>
        :type Filters: list of Filter
        :param _RouteTableIds: 路由表实例ID，例如：rtb-azd4dt1c。
        :type RouteTableIds: list of str
        :param _Offset: 偏移量。
        :type Offset: str
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: str
        """
        self._Filters = None
        self._RouteTableIds = None
        self._Offset = None
        self._Limit = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def RouteTableIds(self):
        return self._RouteTableIds

    @RouteTableIds.setter
    def RouteTableIds(self, RouteTableIds):
        self._RouteTableIds = RouteTableIds

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._RouteTableIds = params.get("RouteTableIds")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRouteTablesResponse(AbstractModel):
    """DescribeRouteTables返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _RouteTableSet: 路由表对象。
        :type RouteTableSet: list of RouteTable
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._RouteTableSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RouteTableSet(self):
        return self._RouteTableSet

    @RouteTableSet.setter
    def RouteTableSet(self, RouteTableSet):
        self._RouteTableSet = RouteTableSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("RouteTableSet") is not None:
            self._RouteTableSet = []
            for item in params.get("RouteTableSet"):
                obj = RouteTable()
                obj._deserialize(item)
                self._RouteTableSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeSecurityGroupAssociationStatisticsRequest(AbstractModel):
    """DescribeSecurityGroupAssociationStatistics请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupIds: 安全实例ID，例如sg-33ocnj9n，可通过<a href="https://cloud.tencent.com/document/product/215/15808">DescribeSecurityGroups</a>获取。
        :type SecurityGroupIds: list of str
        """
        self._SecurityGroupIds = None

    @property
    def SecurityGroupIds(self):
        return self._SecurityGroupIds

    @SecurityGroupIds.setter
    def SecurityGroupIds(self, SecurityGroupIds):
        self._SecurityGroupIds = SecurityGroupIds


    def _deserialize(self, params):
        self._SecurityGroupIds = params.get("SecurityGroupIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSecurityGroupAssociationStatisticsResponse(AbstractModel):
    """DescribeSecurityGroupAssociationStatistics返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupAssociationStatisticsSet: 安全组关联实例统计。
        :type SecurityGroupAssociationStatisticsSet: list of SecurityGroupAssociationStatistics
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SecurityGroupAssociationStatisticsSet = None
        self._RequestId = None

    @property
    def SecurityGroupAssociationStatisticsSet(self):
        return self._SecurityGroupAssociationStatisticsSet

    @SecurityGroupAssociationStatisticsSet.setter
    def SecurityGroupAssociationStatisticsSet(self, SecurityGroupAssociationStatisticsSet):
        self._SecurityGroupAssociationStatisticsSet = SecurityGroupAssociationStatisticsSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("SecurityGroupAssociationStatisticsSet") is not None:
            self._SecurityGroupAssociationStatisticsSet = []
            for item in params.get("SecurityGroupAssociationStatisticsSet"):
                obj = SecurityGroupAssociationStatistics()
                obj._deserialize(item)
                self._SecurityGroupAssociationStatisticsSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeSecurityGroupLimitsRequest(AbstractModel):
    """DescribeSecurityGroupLimits请求参数结构体

    """


class DescribeSecurityGroupLimitsResponse(AbstractModel):
    """DescribeSecurityGroupLimits返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupLimitSet: 用户安全组配额限制。
        :type SecurityGroupLimitSet: :class:`tencentcloud.vpc.v20170312.models.SecurityGroupLimitSet`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SecurityGroupLimitSet = None
        self._RequestId = None

    @property
    def SecurityGroupLimitSet(self):
        return self._SecurityGroupLimitSet

    @SecurityGroupLimitSet.setter
    def SecurityGroupLimitSet(self, SecurityGroupLimitSet):
        self._SecurityGroupLimitSet = SecurityGroupLimitSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("SecurityGroupLimitSet") is not None:
            self._SecurityGroupLimitSet = SecurityGroupLimitSet()
            self._SecurityGroupLimitSet._deserialize(params.get("SecurityGroupLimitSet"))
        self._RequestId = params.get("RequestId")


class DescribeSecurityGroupPoliciesRequest(AbstractModel):
    """DescribeSecurityGroupPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupId: 安全组实例ID，例如：sg-33ocnj9n，可通过DescribeSecurityGroups获取。
        :type SecurityGroupId: str
        :param _Filters: 过滤条件。
<li>security-group-id - String - 规则中的安全组ID。</li>
<li>ip - String - IP，支持IPV4和IPV6模糊匹配。</li>
<li>address-module - String - IP地址模板或IP地址组模板ID。</li>
<li>service-module - String - 协议端口模板或协议端口组模板ID。</li>
<li>protocol-type - String - 安全组策略支持的协议，可选值：`TCP`, `UDP`, `ICMP`, `ICMPV6`, `GRE`, `ALL`。</li>
<li>port - String - 是否必填：否 -协议端口，支持模糊匹配，值为`ALL`时，查询所有的端口。</li>
<li>poly - String - 协议策略，可选值：`ALL`，所有策略；`ACCEPT`，允许；`DROP`，拒绝。</li>
<li>direction - String - 协议规则，可选值：`ALL`，所有策略；`INBOUND`，入站规则；`OUTBOUND`，出站规则。</li>
<li>description - String - 协议描述，该过滤条件支持模糊匹配。</li>
        :type Filters: list of Filter
        """
        self._SecurityGroupId = None
        self._Filters = None

    @property
    def SecurityGroupId(self):
        return self._SecurityGroupId

    @SecurityGroupId.setter
    def SecurityGroupId(self, SecurityGroupId):
        self._SecurityGroupId = SecurityGroupId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._SecurityGroupId = params.get("SecurityGroupId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSecurityGroupPoliciesResponse(AbstractModel):
    """DescribeSecurityGroupPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupPolicySet: 安全组规则集合。
        :type SecurityGroupPolicySet: :class:`tencentcloud.vpc.v20170312.models.SecurityGroupPolicySet`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SecurityGroupPolicySet = None
        self._RequestId = None

    @property
    def SecurityGroupPolicySet(self):
        return self._SecurityGroupPolicySet

    @SecurityGroupPolicySet.setter
    def SecurityGroupPolicySet(self, SecurityGroupPolicySet):
        self._SecurityGroupPolicySet = SecurityGroupPolicySet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("SecurityGroupPolicySet") is not None:
            self._SecurityGroupPolicySet = SecurityGroupPolicySet()
            self._SecurityGroupPolicySet._deserialize(params.get("SecurityGroupPolicySet"))
        self._RequestId = params.get("RequestId")


class DescribeSecurityGroupReferencesRequest(AbstractModel):
    """DescribeSecurityGroupReferences请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupIds: 安全组实例ID数组。格式如：['sg-12345678']。
        :type SecurityGroupIds: list of str
        """
        self._SecurityGroupIds = None

    @property
    def SecurityGroupIds(self):
        return self._SecurityGroupIds

    @SecurityGroupIds.setter
    def SecurityGroupIds(self, SecurityGroupIds):
        self._SecurityGroupIds = SecurityGroupIds


    def _deserialize(self, params):
        self._SecurityGroupIds = params.get("SecurityGroupIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSecurityGroupReferencesResponse(AbstractModel):
    """DescribeSecurityGroupReferences返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ReferredSecurityGroupSet: 安全组被引用信息。
        :type ReferredSecurityGroupSet: list of ReferredSecurityGroup
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ReferredSecurityGroupSet = None
        self._RequestId = None

    @property
    def ReferredSecurityGroupSet(self):
        return self._ReferredSecurityGroupSet

    @ReferredSecurityGroupSet.setter
    def ReferredSecurityGroupSet(self, ReferredSecurityGroupSet):
        self._ReferredSecurityGroupSet = ReferredSecurityGroupSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("ReferredSecurityGroupSet") is not None:
            self._ReferredSecurityGroupSet = []
            for item in params.get("ReferredSecurityGroupSet"):
                obj = ReferredSecurityGroup()
                obj._deserialize(item)
                self._ReferredSecurityGroupSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeSecurityGroupsRequest(AbstractModel):
    """DescribeSecurityGroups请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupIds: 安全组实例ID，例如：sg-33ocnj9n。每次请求的实例的上限为100。参数不支持同时指定SecurityGroupIds和Filters。
        :type SecurityGroupIds: list of str
        :param _Filters: 过滤条件，参数不支持同时指定SecurityGroupIds和Filters。
<li>security-group-id - String - （过滤条件）安全组ID。</li>
<li>project-id - Integer - （过滤条件）项目ID。</li>
<li>security-group-name - String - （过滤条件）安全组名称。</li>
<li>tag-key - String -是否必填：否- （过滤条件）按照标签键进行过滤。</li>
<li>tag:tag-key - String - 是否必填：否 - （过滤条件）按照标签键值对进行过滤。 其中 tag-key 请使用具体的标签键进行替换。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: str
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: str
        :param _OrderField: 排序字段。支持：`CreatedTime` `UpdateTime`。注意：该字段没有默认值。
        :type OrderField: str
        :param _OrderDirection: 排序方法。升序：`ASC`，倒序：`DESC`。默认值：`ASC`
        :type OrderDirection: str
        """
        self._SecurityGroupIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._OrderField = None
        self._OrderDirection = None

    @property
    def SecurityGroupIds(self):
        return self._SecurityGroupIds

    @SecurityGroupIds.setter
    def SecurityGroupIds(self, SecurityGroupIds):
        self._SecurityGroupIds = SecurityGroupIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def OrderField(self):
        return self._OrderField

    @OrderField.setter
    def OrderField(self, OrderField):
        self._OrderField = OrderField

    @property
    def OrderDirection(self):
        return self._OrderDirection

    @OrderDirection.setter
    def OrderDirection(self, OrderDirection):
        self._OrderDirection = OrderDirection


    def _deserialize(self, params):
        self._SecurityGroupIds = params.get("SecurityGroupIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._OrderField = params.get("OrderField")
        self._OrderDirection = params.get("OrderDirection")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSecurityGroupsResponse(AbstractModel):
    """DescribeSecurityGroups返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupSet: 安全组对象。
注意：此字段可能返回 null，表示取不到有效值。
        :type SecurityGroupSet: list of SecurityGroup
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SecurityGroupSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def SecurityGroupSet(self):
        return self._SecurityGroupSet

    @SecurityGroupSet.setter
    def SecurityGroupSet(self, SecurityGroupSet):
        self._SecurityGroupSet = SecurityGroupSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("SecurityGroupSet") is not None:
            self._SecurityGroupSet = []
            for item in params.get("SecurityGroupSet"):
                obj = SecurityGroup()
                obj._deserialize(item)
                self._SecurityGroupSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeServiceTemplateGroupsRequest(AbstractModel):
    """DescribeServiceTemplateGroups请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>service-template-group-name - String - （过滤条件）协议端口模板集合名称。</li>
<li>service-template-group-id - String - （过滤条件）协议端口模板集合实例ID，例如：ppmg-e6dy460g。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: str
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: str
        :param _NeedMemberInfo: 是否获取协议端口模板成员标识。
        :type NeedMemberInfo: bool
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._NeedMemberInfo = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def NeedMemberInfo(self):
        return self._NeedMemberInfo

    @NeedMemberInfo.setter
    def NeedMemberInfo(self, NeedMemberInfo):
        self._NeedMemberInfo = NeedMemberInfo


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._NeedMemberInfo = params.get("NeedMemberInfo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeServiceTemplateGroupsResponse(AbstractModel):
    """DescribeServiceTemplateGroups返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _ServiceTemplateGroupSet: 协议端口模板集合。
        :type ServiceTemplateGroupSet: list of ServiceTemplateGroup
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._ServiceTemplateGroupSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def ServiceTemplateGroupSet(self):
        return self._ServiceTemplateGroupSet

    @ServiceTemplateGroupSet.setter
    def ServiceTemplateGroupSet(self, ServiceTemplateGroupSet):
        self._ServiceTemplateGroupSet = ServiceTemplateGroupSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("ServiceTemplateGroupSet") is not None:
            self._ServiceTemplateGroupSet = []
            for item in params.get("ServiceTemplateGroupSet"):
                obj = ServiceTemplateGroup()
                obj._deserialize(item)
                self._ServiceTemplateGroupSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeServiceTemplatesRequest(AbstractModel):
    """DescribeServiceTemplates请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>service-template-name - 协议端口模板名称。</li>
<li>service-template-id - 协议端口模板实例ID，例如：ppm-e6dy460g。</li>
<li>service-port- 协议端口。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: str
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: str
        :param _NeedMemberInfo: 是否获取协议端口成员标识。
        :type NeedMemberInfo: bool
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._NeedMemberInfo = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def NeedMemberInfo(self):
        return self._NeedMemberInfo

    @NeedMemberInfo.setter
    def NeedMemberInfo(self, NeedMemberInfo):
        self._NeedMemberInfo = NeedMemberInfo


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._NeedMemberInfo = params.get("NeedMemberInfo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeServiceTemplatesResponse(AbstractModel):
    """DescribeServiceTemplates返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _ServiceTemplateSet: 协议端口模板对象。
        :type ServiceTemplateSet: list of ServiceTemplate
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._ServiceTemplateSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def ServiceTemplateSet(self):
        return self._ServiceTemplateSet

    @ServiceTemplateSet.setter
    def ServiceTemplateSet(self, ServiceTemplateSet):
        self._ServiceTemplateSet = ServiceTemplateSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("ServiceTemplateSet") is not None:
            self._ServiceTemplateSet = []
            for item in params.get("ServiceTemplateSet"):
                obj = ServiceTemplate()
                obj._deserialize(item)
                self._ServiceTemplateSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeSgSnapshotFileContentRequest(AbstractModel):
    """DescribeSgSnapshotFileContent请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SnapshotPolicyId: 快照策略Id。
        :type SnapshotPolicyId: str
        :param _SnapshotFileId: 快照文件Id。
        :type SnapshotFileId: str
        :param _SecurityGroupId: 安全组Id。
        :type SecurityGroupId: str
        """
        self._SnapshotPolicyId = None
        self._SnapshotFileId = None
        self._SecurityGroupId = None

    @property
    def SnapshotPolicyId(self):
        return self._SnapshotPolicyId

    @SnapshotPolicyId.setter
    def SnapshotPolicyId(self, SnapshotPolicyId):
        self._SnapshotPolicyId = SnapshotPolicyId

    @property
    def SnapshotFileId(self):
        return self._SnapshotFileId

    @SnapshotFileId.setter
    def SnapshotFileId(self, SnapshotFileId):
        self._SnapshotFileId = SnapshotFileId

    @property
    def SecurityGroupId(self):
        return self._SecurityGroupId

    @SecurityGroupId.setter
    def SecurityGroupId(self, SecurityGroupId):
        self._SecurityGroupId = SecurityGroupId


    def _deserialize(self, params):
        self._SnapshotPolicyId = params.get("SnapshotPolicyId")
        self._SnapshotFileId = params.get("SnapshotFileId")
        self._SecurityGroupId = params.get("SecurityGroupId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSgSnapshotFileContentResponse(AbstractModel):
    """DescribeSgSnapshotFileContent返回参数结构体

    """

    def __init__(self):
        r"""
        :param _InstanceId: 实例Id，即安全组Id。
        :type InstanceId: str
        :param _SnapshotPolicyId: 快照策略Id。
        :type SnapshotPolicyId: str
        :param _SnapshotFileId: 快照文件Id。
        :type SnapshotFileId: str
        :param _BackupTime: 备份时间。
        :type BackupTime: str
        :param _Operator: 操作者。
        :type Operator: str
        :param _OriginalData: 原始数据。
        :type OriginalData: list of SecurityGroupPolicy
        :param _BackupData: 备份数据。
        :type BackupData: list of SecurityGroupPolicy
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._InstanceId = None
        self._SnapshotPolicyId = None
        self._SnapshotFileId = None
        self._BackupTime = None
        self._Operator = None
        self._OriginalData = None
        self._BackupData = None
        self._RequestId = None

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def SnapshotPolicyId(self):
        return self._SnapshotPolicyId

    @SnapshotPolicyId.setter
    def SnapshotPolicyId(self, SnapshotPolicyId):
        self._SnapshotPolicyId = SnapshotPolicyId

    @property
    def SnapshotFileId(self):
        return self._SnapshotFileId

    @SnapshotFileId.setter
    def SnapshotFileId(self, SnapshotFileId):
        self._SnapshotFileId = SnapshotFileId

    @property
    def BackupTime(self):
        return self._BackupTime

    @BackupTime.setter
    def BackupTime(self, BackupTime):
        self._BackupTime = BackupTime

    @property
    def Operator(self):
        return self._Operator

    @Operator.setter
    def Operator(self, Operator):
        self._Operator = Operator

    @property
    def OriginalData(self):
        return self._OriginalData

    @OriginalData.setter
    def OriginalData(self, OriginalData):
        self._OriginalData = OriginalData

    @property
    def BackupData(self):
        return self._BackupData

    @BackupData.setter
    def BackupData(self, BackupData):
        self._BackupData = BackupData

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._InstanceId = params.get("InstanceId")
        self._SnapshotPolicyId = params.get("SnapshotPolicyId")
        self._SnapshotFileId = params.get("SnapshotFileId")
        self._BackupTime = params.get("BackupTime")
        self._Operator = params.get("Operator")
        if params.get("OriginalData") is not None:
            self._OriginalData = []
            for item in params.get("OriginalData"):
                obj = SecurityGroupPolicy()
                obj._deserialize(item)
                self._OriginalData.append(obj)
        if params.get("BackupData") is not None:
            self._BackupData = []
            for item in params.get("BackupData"):
                obj = SecurityGroupPolicy()
                obj._deserialize(item)
                self._BackupData.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeSnapshotAttachedInstancesRequest(AbstractModel):
    """DescribeSnapshotAttachedInstances请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SnapshotPolicyId: 快照策略Id。
        :type SnapshotPolicyId: str
        :param _Filters: 过滤条件。
支持的过滤条件如下：
<li>instance-id：实例ID。</li>
<li>instance-region：实例所在地域。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大为200。
        :type Limit: int
        """
        self._SnapshotPolicyId = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def SnapshotPolicyId(self):
        return self._SnapshotPolicyId

    @SnapshotPolicyId.setter
    def SnapshotPolicyId(self, SnapshotPolicyId):
        self._SnapshotPolicyId = SnapshotPolicyId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._SnapshotPolicyId = params.get("SnapshotPolicyId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSnapshotAttachedInstancesResponse(AbstractModel):
    """DescribeSnapshotAttachedInstances返回参数结构体

    """

    def __init__(self):
        r"""
        :param _InstanceSet: 实例列表
        :type InstanceSet: list of SnapshotInstance
        :param _TotalCount: 符合条件的对象数。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._InstanceSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def InstanceSet(self):
        return self._InstanceSet

    @InstanceSet.setter
    def InstanceSet(self, InstanceSet):
        self._InstanceSet = InstanceSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("InstanceSet") is not None:
            self._InstanceSet = []
            for item in params.get("InstanceSet"):
                obj = SnapshotInstance()
                obj._deserialize(item)
                self._InstanceSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeSnapshotFilesRequest(AbstractModel):
    """DescribeSnapshotFiles请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BusinessType: 业务类型，目前支持安全组：securitygroup。
        :type BusinessType: str
        :param _InstanceId: 业务实例Id，和BusinessType对应。
        :type InstanceId: str
        :param _StartDate: 开始日期，格式%Y-%m-%d %H:%M:%S。
        :type StartDate: str
        :param _EndDate: 结束日期，格式%Y-%m-%d %H:%M:%S。
        :type EndDate: str
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大为100。
        :type Limit: int
        """
        self._BusinessType = None
        self._InstanceId = None
        self._StartDate = None
        self._EndDate = None
        self._Offset = None
        self._Limit = None

    @property
    def BusinessType(self):
        return self._BusinessType

    @BusinessType.setter
    def BusinessType(self, BusinessType):
        self._BusinessType = BusinessType

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def StartDate(self):
        return self._StartDate

    @StartDate.setter
    def StartDate(self, StartDate):
        self._StartDate = StartDate

    @property
    def EndDate(self):
        return self._EndDate

    @EndDate.setter
    def EndDate(self, EndDate):
        self._EndDate = EndDate

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._BusinessType = params.get("BusinessType")
        self._InstanceId = params.get("InstanceId")
        self._StartDate = params.get("StartDate")
        self._EndDate = params.get("EndDate")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSnapshotFilesResponse(AbstractModel):
    """DescribeSnapshotFiles返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SnapshotFileSet: 快照文件集合。
        :type SnapshotFileSet: list of SnapshotFileInfo
        :param _TotalCount: 符合条件的对象数。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SnapshotFileSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def SnapshotFileSet(self):
        return self._SnapshotFileSet

    @SnapshotFileSet.setter
    def SnapshotFileSet(self, SnapshotFileSet):
        self._SnapshotFileSet = SnapshotFileSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("SnapshotFileSet") is not None:
            self._SnapshotFileSet = []
            for item in params.get("SnapshotFileSet"):
                obj = SnapshotFileInfo()
                obj._deserialize(item)
                self._SnapshotFileSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeSnapshotPoliciesRequest(AbstractModel):
    """DescribeSnapshotPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SnapshotPolicyIds: 快照策略Id。
        :type SnapshotPolicyIds: list of str
        :param _Filters: 过滤条件，参数不支持同时指定SnapshotPolicyIds和Filters。
<li>snapshot-policy-id - String -（过滤条件）快照策略ID。</li>
<li>snapshot-policy-name - String -（过滤条件）快照策略名称。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大为200。
        :type Limit: int
        """
        self._SnapshotPolicyIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def SnapshotPolicyIds(self):
        return self._SnapshotPolicyIds

    @SnapshotPolicyIds.setter
    def SnapshotPolicyIds(self, SnapshotPolicyIds):
        self._SnapshotPolicyIds = SnapshotPolicyIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._SnapshotPolicyIds = params.get("SnapshotPolicyIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSnapshotPoliciesResponse(AbstractModel):
    """DescribeSnapshotPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SnapshotPolicySet: 快照策略。
        :type SnapshotPolicySet: list of SnapshotPolicy
        :param _TotalCount: 符合条件的对象数。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SnapshotPolicySet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def SnapshotPolicySet(self):
        return self._SnapshotPolicySet

    @SnapshotPolicySet.setter
    def SnapshotPolicySet(self, SnapshotPolicySet):
        self._SnapshotPolicySet = SnapshotPolicySet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("SnapshotPolicySet") is not None:
            self._SnapshotPolicySet = []
            for item in params.get("SnapshotPolicySet"):
                obj = SnapshotPolicy()
                obj._deserialize(item)
                self._SnapshotPolicySet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeSpecificTrafficPackageUsedDetailsRequest(AbstractModel):
    """DescribeSpecificTrafficPackageUsedDetails请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TrafficPackageId: 共享流量包唯一ID
        :type TrafficPackageId: str
        :param _Filters: 每次请求的`Filters`的上限为10，`Filter.Values`的上限为5。详细的过滤条件如下：<li> resource-id - String - 是否必填：否 - （过滤条件）按照抵扣流量资源的唯一 ID 过滤。</li><li> resource-type - String - 是否必填：否 - （过滤条件）按照资源类型过滤，资源类型包括 CVM 和 EIP </li>
        :type Filters: list of Filter
        :param _OrderField: 排序条件。该参数仅支持根据抵扣量排序，传值为 deduction
        :type OrderField: str
        :param _OrderType: 排序类型，仅支持0和1，0-降序，1-升序。不传默认为0
        :type OrderType: int
        :param _StartTime: 开始时间。不传默认为当前时间往前推30天
        :type StartTime: str
        :param _EndTime: 结束时间。不传默认为当前时间
        :type EndTime: str
        :param _Offset: 偏移量，默认为0。关于Offset的更进一步介绍请参考 API 中的相关小节
        :type Offset: int
        :param _Limit: 返回数量，默认为20。关于Limit的更进一步介绍请参考 API 中的相关小节。
        :type Limit: int
        """
        self._TrafficPackageId = None
        self._Filters = None
        self._OrderField = None
        self._OrderType = None
        self._StartTime = None
        self._EndTime = None
        self._Offset = None
        self._Limit = None

    @property
    def TrafficPackageId(self):
        return self._TrafficPackageId

    @TrafficPackageId.setter
    def TrafficPackageId(self, TrafficPackageId):
        self._TrafficPackageId = TrafficPackageId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def OrderField(self):
        return self._OrderField

    @OrderField.setter
    def OrderField(self, OrderField):
        self._OrderField = OrderField

    @property
    def OrderType(self):
        return self._OrderType

    @OrderType.setter
    def OrderType(self, OrderType):
        self._OrderType = OrderType

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._TrafficPackageId = params.get("TrafficPackageId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._OrderField = params.get("OrderField")
        self._OrderType = params.get("OrderType")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSpecificTrafficPackageUsedDetailsResponse(AbstractModel):
    """DescribeSpecificTrafficPackageUsedDetails返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合查询条件的共享流量包用量明细的总数
        :type TotalCount: int
        :param _UsedDetailSet: 共享流量包用量明细列表
        :type UsedDetailSet: list of UsedDetail
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._UsedDetailSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def UsedDetailSet(self):
        return self._UsedDetailSet

    @UsedDetailSet.setter
    def UsedDetailSet(self, UsedDetailSet):
        self._UsedDetailSet = UsedDetailSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("UsedDetailSet") is not None:
            self._UsedDetailSet = []
            for item in params.get("UsedDetailSet"):
                obj = UsedDetail()
                obj._deserialize(item)
                self._UsedDetailSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeSubnetResourceDashboardRequest(AbstractModel):
    """DescribeSubnetResourceDashboard请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SubnetIds: Subnet实例ID，例如：subnet-f1xjkw1b。
        :type SubnetIds: list of str
        """
        self._SubnetIds = None

    @property
    def SubnetIds(self):
        return self._SubnetIds

    @SubnetIds.setter
    def SubnetIds(self, SubnetIds):
        self._SubnetIds = SubnetIds


    def _deserialize(self, params):
        self._SubnetIds = params.get("SubnetIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSubnetResourceDashboardResponse(AbstractModel):
    """DescribeSubnetResourceDashboard返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ResourceStatisticsSet: 资源统计结果。
        :type ResourceStatisticsSet: list of ResourceStatistics
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ResourceStatisticsSet = None
        self._RequestId = None

    @property
    def ResourceStatisticsSet(self):
        return self._ResourceStatisticsSet

    @ResourceStatisticsSet.setter
    def ResourceStatisticsSet(self, ResourceStatisticsSet):
        self._ResourceStatisticsSet = ResourceStatisticsSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("ResourceStatisticsSet") is not None:
            self._ResourceStatisticsSet = []
            for item in params.get("ResourceStatisticsSet"):
                obj = ResourceStatistics()
                obj._deserialize(item)
                self._ResourceStatisticsSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeSubnetsRequest(AbstractModel):
    """DescribeSubnets请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SubnetIds: 子网实例ID查询。形如：subnet-pxir56ns。每次请求的实例的上限为100。参数不支持同时指定SubnetIds和Filters。
        :type SubnetIds: list of str
        :param _Filters: 过滤条件，参数不支持同时指定SubnetIds和Filters。
<li>subnet-id - String - （过滤条件）Subnet实例名称。</li>
<li>vpc-id - String - （过滤条件）VPC实例ID，形如：vpc-f49l6u0z。</li>
<li>cidr-block - String - （过滤条件）子网网段，形如: 192.168.1.0 。</li>
<li>is-default - Boolean - （过滤条件）是否是默认子网。</li>
<li>is-remote-vpc-snat - Boolean - （过滤条件）是否为VPC SNAT地址池子网。</li>
<li>subnet-name - String - （过滤条件）子网名称。</li>
<li>zone - String - （过滤条件）可用区。</li>
<li>tag-key - String -是否必填：否- （过滤条件）按照标签键进行过滤。</li>
<li>tag:tag-key - String - 是否必填：否 - （过滤条件）按照标签键值对进行过滤。 tag-key使用具体的标签键进行替换。使用请参考示例2。</li>
<li>cdc-id - String - 是否必填：否 - （过滤条件）按照cdc信息进行过滤。过滤出来制定cdc下的子网。</li>
<li>is-cdc-subnet - String - 是否必填：否 - （过滤条件）按照是否是cdc子网进行过滤。取值：“0”-非cdc子网，“1”--cdc子网</li>
<li>ipv6-cidr-block - String - （过滤条件）IPv6子网网段，形如: 2402:4e00:1717:8700::/64 。</li>
<li>isp-type  - String - （过滤条件）运营商类型，形如: BGP 。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: str
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: str
        """
        self._SubnetIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def SubnetIds(self):
        return self._SubnetIds

    @SubnetIds.setter
    def SubnetIds(self, SubnetIds):
        self._SubnetIds = SubnetIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._SubnetIds = params.get("SubnetIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSubnetsResponse(AbstractModel):
    """DescribeSubnets返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _SubnetSet: 子网对象。
        :type SubnetSet: list of Subnet
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._SubnetSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def SubnetSet(self):
        return self._SubnetSet

    @SubnetSet.setter
    def SubnetSet(self, SubnetSet):
        self._SubnetSet = SubnetSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("SubnetSet") is not None:
            self._SubnetSet = []
            for item in params.get("SubnetSet"):
                obj = Subnet()
                obj._deserialize(item)
                self._SubnetSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeTaskResultRequest(AbstractModel):
    """DescribeTaskResult请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步任务ID。TaskId和DealName必填一个参数
        :type TaskId: int
        :param _DealName: 计费订单号。TaskId和DealName必填一个参数
        :type DealName: str
        """
        self._TaskId = None
        self._DealName = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def DealName(self):
        return self._DealName

    @DealName.setter
    def DealName(self, DealName):
        self._DealName = DealName


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._DealName = params.get("DealName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeTaskResultResponse(AbstractModel):
    """DescribeTaskResult返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID
        :type TaskId: int
        :param _Result: 执行结果，包括"SUCCESS", "FAILED", "RUNNING"
        :type Result: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._Result = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._Result = params.get("Result")
        self._RequestId = params.get("RequestId")


class DescribeTemplateLimitsRequest(AbstractModel):
    """DescribeTemplateLimits请求参数结构体

    """


class DescribeTemplateLimitsResponse(AbstractModel):
    """DescribeTemplateLimits返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TemplateLimit: 参数模板配额对象。
        :type TemplateLimit: :class:`tencentcloud.vpc.v20170312.models.TemplateLimit`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TemplateLimit = None
        self._RequestId = None

    @property
    def TemplateLimit(self):
        return self._TemplateLimit

    @TemplateLimit.setter
    def TemplateLimit(self, TemplateLimit):
        self._TemplateLimit = TemplateLimit

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("TemplateLimit") is not None:
            self._TemplateLimit = TemplateLimit()
            self._TemplateLimit._deserialize(params.get("TemplateLimit"))
        self._RequestId = params.get("RequestId")


class DescribeTenantCcnsRequest(AbstractModel):
    """DescribeTenantCcns请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件，目前`value`值个数只支持一个，允许可支持的字段有：
<li>`ccn-ids` 云联网ID数组，值形如：`["ccn-12345678"]`</li> 
<li>`user-account-id` 用户账号ID，值形如：`["12345678"]`</li><li>`is-security-lock` 是否锁定，值形如：`["true"]`</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认0。
        :type Offset: int
        :param _Limit: 单页返回数据量，可选值0到100之间的整数，默认20。
        :type Limit: int
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeTenantCcnsResponse(AbstractModel):
    """DescribeTenantCcns返回参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnSet: 云联网（CCN）对象。
注意：此字段可能返回 null，表示取不到有效值。
        :type CcnSet: list of CcnInstanceInfo
        :param _TotalCount: 符合条件的对象总数。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._CcnSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def CcnSet(self):
        return self._CcnSet

    @CcnSet.setter
    def CcnSet(self, CcnSet):
        self._CcnSet = CcnSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("CcnSet") is not None:
            self._CcnSet = []
            for item in params.get("CcnSet"):
                obj = CcnInstanceInfo()
                obj._deserialize(item)
                self._CcnSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeTrafficPackagesRequest(AbstractModel):
    """DescribeTrafficPackages请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TrafficPackageIds: 共享流量包ID，支持批量
        :type TrafficPackageIds: list of str
        :param _Filters: 每次请求的`Filters`的上限为10。参数不支持同时指定`TrafficPackageIds`和`Filters`。详细的过滤条件如下：
<li> traffic-package_id - String - 是否必填：否 - （过滤条件）按照共享流量包的唯一标识ID过滤。</li>
<li> traffic-package-name - String - 是否必填：否 - （过滤条件）按照共享流量包名称过滤。不支持模糊过滤。</li>
<li> status - String - 是否必填：否 - （过滤条件）按照共享流量包状态过滤。可选状态：[AVAILABLE|EXPIRED|EXHAUSTED]</li>
        :type Filters: list of Filter
        :param _Offset: 分页参数
        :type Offset: int
        :param _Limit: 分页参数
        :type Limit: int
        """
        self._TrafficPackageIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def TrafficPackageIds(self):
        return self._TrafficPackageIds

    @TrafficPackageIds.setter
    def TrafficPackageIds(self, TrafficPackageIds):
        self._TrafficPackageIds = TrafficPackageIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._TrafficPackageIds = params.get("TrafficPackageIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeTrafficPackagesResponse(AbstractModel):
    """DescribeTrafficPackages返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 按照条件查询出来的流量包数量
        :type TotalCount: int
        :param _TrafficPackageSet: 流量包信息
        :type TrafficPackageSet: list of TrafficPackage
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._TrafficPackageSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def TrafficPackageSet(self):
        return self._TrafficPackageSet

    @TrafficPackageSet.setter
    def TrafficPackageSet(self, TrafficPackageSet):
        self._TrafficPackageSet = TrafficPackageSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("TrafficPackageSet") is not None:
            self._TrafficPackageSet = []
            for item in params.get("TrafficPackageSet"):
                obj = TrafficPackage()
                obj._deserialize(item)
                self._TrafficPackageSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeUsedIpAddressRequest(AbstractModel):
    """DescribeUsedIpAddress请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。
        :type VpcId: str
        :param _SubnetId: 子网实例ID。
        :type SubnetId: str
        :param _IpAddresses: 查询是否占用的ip列表，ip需要在vpc或子网内。最多允许一次查询100个IP。
        :type IpAddresses: list of str
        :param _Filters: 过滤条件，不支持同时指定IpAddresses和Filters参数。 支持的过滤条件如下： <li>ip-addresses：IP地址。</li> <li>resource-id：资源ID。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: int
        """
        self._VpcId = None
        self._SubnetId = None
        self._IpAddresses = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def IpAddresses(self):
        return self._IpAddresses

    @IpAddresses.setter
    def IpAddresses(self, IpAddresses):
        self._IpAddresses = IpAddresses

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._IpAddresses = params.get("IpAddresses")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeUsedIpAddressResponse(AbstractModel):
    """DescribeUsedIpAddress返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IpAddressStates: 占用ip地址的资源信息
注意：此字段可能返回 null，表示取不到有效值。
        :type IpAddressStates: list of IpAddressStates
        :param _TotalCount: 返回占用资源的个数
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IpAddressStates = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def IpAddressStates(self):
        return self._IpAddressStates

    @IpAddressStates.setter
    def IpAddressStates(self, IpAddressStates):
        self._IpAddressStates = IpAddressStates

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("IpAddressStates") is not None:
            self._IpAddressStates = []
            for item in params.get("IpAddressStates"):
                obj = IpAddressStates()
                obj._deserialize(item)
                self._IpAddressStates.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeVpcEndPointRequest(AbstractModel):
    """DescribeVpcEndPoint请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li> end-point-service-id- String - （过滤条件）终端节点服务ID。</li>
<li>end-point-name - String - （过滤条件）终端节点实例名称。</li>
<li> end-point-id- String - （过滤条件）终端节点实例ID。</li>
<li> vpc-id- String - （过滤条件）VPC实例ID。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 单页返回数量，默认为20，最大值为100。
        :type Limit: int
        :param _EndPointId: 终端节点ID列表。
        :type EndPointId: list of str
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._EndPointId = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def EndPointId(self):
        return self._EndPointId

    @EndPointId.setter
    def EndPointId(self, EndPointId):
        self._EndPointId = EndPointId


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._EndPointId = params.get("EndPointId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpcEndPointResponse(AbstractModel):
    """DescribeVpcEndPoint返回参数结构体

    """

    def __init__(self):
        r"""
        :param _EndPointSet: 终端节点对象。
        :type EndPointSet: list of EndPoint
        :param _TotalCount: 符合查询条件的终端节点个数。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._EndPointSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def EndPointSet(self):
        return self._EndPointSet

    @EndPointSet.setter
    def EndPointSet(self, EndPointSet):
        self._EndPointSet = EndPointSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("EndPointSet") is not None:
            self._EndPointSet = []
            for item in params.get("EndPointSet"):
                obj = EndPoint()
                obj._deserialize(item)
                self._EndPointSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeVpcEndPointServiceRequest(AbstractModel):
    """DescribeVpcEndPointService请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。不支持同时传入参数 EndPointServiceIds and Filters。
<li> service-id - String - （过滤条件）终端节点服务唯一ID。</li>
<li>service-name - String - （过滤条件）终端节点实例名称。</li>
<li>service-instance-id - String - （过滤条件）后端服务的唯一ID，比如lb-xxx。</li>
<li>service-type - String - （过滤条件）后端PAAS服务类型，CLB,CDB,CRS，不填默认查询类型为CLB。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 单页返回数量，默认为20，最大值为100。
        :type Limit: int
        :param _EndPointServiceIds: 终端节点服务ID。不支持同时传入参数 EndPointServiceIds and Filters。
        :type EndPointServiceIds: list of str
        :param _IsListAuthorizedEndPointService: <li>不支持同时传入参数 Filters 。</li> <li>列出授权给当前账号的终端节点服务信息。可以配合EndPointServiceIds参数进行过滤，那些终端节点服务授权了该账户。</li>
        :type IsListAuthorizedEndPointService: bool
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._EndPointServiceIds = None
        self._IsListAuthorizedEndPointService = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def EndPointServiceIds(self):
        return self._EndPointServiceIds

    @EndPointServiceIds.setter
    def EndPointServiceIds(self, EndPointServiceIds):
        self._EndPointServiceIds = EndPointServiceIds

    @property
    def IsListAuthorizedEndPointService(self):
        return self._IsListAuthorizedEndPointService

    @IsListAuthorizedEndPointService.setter
    def IsListAuthorizedEndPointService(self, IsListAuthorizedEndPointService):
        self._IsListAuthorizedEndPointService = IsListAuthorizedEndPointService


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._EndPointServiceIds = params.get("EndPointServiceIds")
        self._IsListAuthorizedEndPointService = params.get("IsListAuthorizedEndPointService")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpcEndPointServiceResponse(AbstractModel):
    """DescribeVpcEndPointService返回参数结构体

    """

    def __init__(self):
        r"""
        :param _EndPointServiceSet: 终端节点服务对象数组。
        :type EndPointServiceSet: list of EndPointService
        :param _TotalCount: 符合查询条件的个数。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._EndPointServiceSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def EndPointServiceSet(self):
        return self._EndPointServiceSet

    @EndPointServiceSet.setter
    def EndPointServiceSet(self, EndPointServiceSet):
        self._EndPointServiceSet = EndPointServiceSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("EndPointServiceSet") is not None:
            self._EndPointServiceSet = []
            for item in params.get("EndPointServiceSet"):
                obj = EndPointService()
                obj._deserialize(item)
                self._EndPointServiceSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeVpcEndPointServiceWhiteListRequest(AbstractModel):
    """DescribeVpcEndPointServiceWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 单页返回数量，默认为20，最大值为100。
        :type Limit: int
        :param _Filters: 过滤条件。
<li> user-uin String - （过滤条件）用户UIN。</li>
<li> end-point-service-id String - （过滤条件）终端节点服务ID。</li>
        :type Filters: list of Filter
        """
        self._Offset = None
        self._Limit = None
        self._Filters = None

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpcEndPointServiceWhiteListResponse(AbstractModel):
    """DescribeVpcEndPointServiceWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcEndpointServiceUserSet: 白名单对象数组。已废弃
        :type VpcEndpointServiceUserSet: list of VpcEndPointServiceUser
        :param _VpcEndPointServiceUserSet: 白名单对象数组。
        :type VpcEndPointServiceUserSet: list of VpcEndPointServiceUser
        :param _TotalCount: 符合条件的白名单个数。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VpcEndpointServiceUserSet = None
        self._VpcEndPointServiceUserSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def VpcEndpointServiceUserSet(self):
        return self._VpcEndpointServiceUserSet

    @VpcEndpointServiceUserSet.setter
    def VpcEndpointServiceUserSet(self, VpcEndpointServiceUserSet):
        self._VpcEndpointServiceUserSet = VpcEndpointServiceUserSet

    @property
    def VpcEndPointServiceUserSet(self):
        return self._VpcEndPointServiceUserSet

    @VpcEndPointServiceUserSet.setter
    def VpcEndPointServiceUserSet(self, VpcEndPointServiceUserSet):
        self._VpcEndPointServiceUserSet = VpcEndPointServiceUserSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("VpcEndpointServiceUserSet") is not None:
            self._VpcEndpointServiceUserSet = []
            for item in params.get("VpcEndpointServiceUserSet"):
                obj = VpcEndPointServiceUser()
                obj._deserialize(item)
                self._VpcEndpointServiceUserSet.append(obj)
        if params.get("VpcEndPointServiceUserSet") is not None:
            self._VpcEndPointServiceUserSet = []
            for item in params.get("VpcEndPointServiceUserSet"):
                obj = VpcEndPointServiceUser()
                obj._deserialize(item)
                self._VpcEndPointServiceUserSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeVpcInstancesRequest(AbstractModel):
    """DescribeVpcInstances请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件，参数不支持同时指定RouteTableIds和Filters。
<li>vpc-id - String - （过滤条件）VPC实例ID，形如：vpc-f49l6u0z。</li>
<li>instance-id - String - （过滤条件）云主机实例ID。</li>
<li>instance-name - String - （过滤条件）云主机名称。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: int
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpcInstancesResponse(AbstractModel):
    """DescribeVpcInstances返回参数结构体

    """

    def __init__(self):
        r"""
        :param _InstanceSet: 云主机实例列表。
        :type InstanceSet: list of CvmInstance
        :param _TotalCount: 满足条件的云主机实例个数。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._InstanceSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def InstanceSet(self):
        return self._InstanceSet

    @InstanceSet.setter
    def InstanceSet(self, InstanceSet):
        self._InstanceSet = InstanceSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("InstanceSet") is not None:
            self._InstanceSet = []
            for item in params.get("InstanceSet"):
                obj = CvmInstance()
                obj._deserialize(item)
                self._InstanceSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeVpcIpv6AddressesRequest(AbstractModel):
    """DescribeVpcIpv6Addresses请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: `VPC`实例`ID`，形如：`vpc-f49l6u0z`。
        :type VpcId: str
        :param _Ipv6Addresses: `IP`地址列表，批量查询单次请求最多支持`10`个。
        :type Ipv6Addresses: list of str
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: int
        :param _SubnetId: VPC下的子网ID。
        :type SubnetId: str
        """
        self._VpcId = None
        self._Ipv6Addresses = None
        self._Offset = None
        self._Limit = None
        self._SubnetId = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def Ipv6Addresses(self):
        return self._Ipv6Addresses

    @Ipv6Addresses.setter
    def Ipv6Addresses(self, Ipv6Addresses):
        self._Ipv6Addresses = Ipv6Addresses

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._Ipv6Addresses = params.get("Ipv6Addresses")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._SubnetId = params.get("SubnetId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpcIpv6AddressesResponse(AbstractModel):
    """DescribeVpcIpv6Addresses返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Ipv6AddressSet: `IPv6`地址列表。
        :type Ipv6AddressSet: list of VpcIpv6Address
        :param _TotalCount: `IPv6`地址总数。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Ipv6AddressSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def Ipv6AddressSet(self):
        return self._Ipv6AddressSet

    @Ipv6AddressSet.setter
    def Ipv6AddressSet(self, Ipv6AddressSet):
        self._Ipv6AddressSet = Ipv6AddressSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Ipv6AddressSet") is not None:
            self._Ipv6AddressSet = []
            for item in params.get("Ipv6AddressSet"):
                obj = VpcIpv6Address()
                obj._deserialize(item)
                self._Ipv6AddressSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeVpcLimitsRequest(AbstractModel):
    """DescribeVpcLimits请求参数结构体

    """

    def __init__(self):
        r"""
        :param _LimitTypes: 配额名称。每次最大查询100个配额类型。
        :type LimitTypes: list of str
        """
        self._LimitTypes = None

    @property
    def LimitTypes(self):
        return self._LimitTypes

    @LimitTypes.setter
    def LimitTypes(self, LimitTypes):
        self._LimitTypes = LimitTypes


    def _deserialize(self, params):
        self._LimitTypes = params.get("LimitTypes")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpcLimitsResponse(AbstractModel):
    """DescribeVpcLimits返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcLimitSet: 私有网络配额
        :type VpcLimitSet: list of VpcLimit
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VpcLimitSet = None
        self._RequestId = None

    @property
    def VpcLimitSet(self):
        return self._VpcLimitSet

    @VpcLimitSet.setter
    def VpcLimitSet(self, VpcLimitSet):
        self._VpcLimitSet = VpcLimitSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("VpcLimitSet") is not None:
            self._VpcLimitSet = []
            for item in params.get("VpcLimitSet"):
                obj = VpcLimit()
                obj._deserialize(item)
                self._VpcLimitSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVpcPeeringConnectionsRequest(AbstractModel):
    """DescribeVpcPeeringConnections请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PeeringConnectionIds: 对等连接唯一ID数组。
        :type PeeringConnectionIds: list of str
        :param _Filters: 过滤条件，参数不支持同时指定PeeringConnectionIds和Filters。
<li>vpc-id - String - （过滤条件）VPC实例ID，形如：vpc-f49l6u0z。</li>
<li>state String - （过滤条件）对等连接状态，可选值有：PENDING，投放中；ACTIVE，使用中；EXPIRED，已过期；REJECTED，拒绝。</li>
<li>peering-connection-name - String - （过滤条件）对等连接名称。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量。
        :type Offset: int
        :param _Limit: 请求对象个数。
        :type Limit: int
        :param _OrderField: 排序字段，可选值有：CreatedTime，PeeringConnectionName。
        :type OrderField: str
        :param _OrderDirection: 排序方式：DESC，降序；ASC，升序。
        :type OrderDirection: str
        """
        self._PeeringConnectionIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._OrderField = None
        self._OrderDirection = None

    @property
    def PeeringConnectionIds(self):
        return self._PeeringConnectionIds

    @PeeringConnectionIds.setter
    def PeeringConnectionIds(self, PeeringConnectionIds):
        self._PeeringConnectionIds = PeeringConnectionIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def OrderField(self):
        return self._OrderField

    @OrderField.setter
    def OrderField(self, OrderField):
        self._OrderField = OrderField

    @property
    def OrderDirection(self):
        return self._OrderDirection

    @OrderDirection.setter
    def OrderDirection(self, OrderDirection):
        self._OrderDirection = OrderDirection


    def _deserialize(self, params):
        self._PeeringConnectionIds = params.get("PeeringConnectionIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._OrderField = params.get("OrderField")
        self._OrderDirection = params.get("OrderDirection")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpcPeeringConnectionsResponse(AbstractModel):
    """DescribeVpcPeeringConnections返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 满足条件的对等连接实例个数。
        :type TotalCount: int
        :param _PeerConnectionSet: 对等连接实例列表。
        :type PeerConnectionSet: list of PeerConnection
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._PeerConnectionSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def PeerConnectionSet(self):
        return self._PeerConnectionSet

    @PeerConnectionSet.setter
    def PeerConnectionSet(self, PeerConnectionSet):
        self._PeerConnectionSet = PeerConnectionSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("PeerConnectionSet") is not None:
            self._PeerConnectionSet = []
            for item in params.get("PeerConnectionSet"):
                obj = PeerConnection()
                obj._deserialize(item)
                self._PeerConnectionSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVpcPrivateIpAddressesRequest(AbstractModel):
    """DescribeVpcPrivateIpAddresses请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: `VPC`实例`ID`，形如：`vpc-f49l6u0z`。
        :type VpcId: str
        :param _PrivateIpAddresses: 内网`IP`地址列表，批量查询单次请求最多支持`10`个。
        :type PrivateIpAddresses: list of str
        """
        self._VpcId = None
        self._PrivateIpAddresses = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def PrivateIpAddresses(self):
        return self._PrivateIpAddresses

    @PrivateIpAddresses.setter
    def PrivateIpAddresses(self, PrivateIpAddresses):
        self._PrivateIpAddresses = PrivateIpAddresses


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._PrivateIpAddresses = params.get("PrivateIpAddresses")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpcPrivateIpAddressesResponse(AbstractModel):
    """DescribeVpcPrivateIpAddresses返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcPrivateIpAddressSet: 内网`IP`地址信息列表。
        :type VpcPrivateIpAddressSet: list of VpcPrivateIpAddress
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VpcPrivateIpAddressSet = None
        self._RequestId = None

    @property
    def VpcPrivateIpAddressSet(self):
        return self._VpcPrivateIpAddressSet

    @VpcPrivateIpAddressSet.setter
    def VpcPrivateIpAddressSet(self, VpcPrivateIpAddressSet):
        self._VpcPrivateIpAddressSet = VpcPrivateIpAddressSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("VpcPrivateIpAddressSet") is not None:
            self._VpcPrivateIpAddressSet = []
            for item in params.get("VpcPrivateIpAddressSet"):
                obj = VpcPrivateIpAddress()
                obj._deserialize(item)
                self._VpcPrivateIpAddressSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVpcResourceDashboardRequest(AbstractModel):
    """DescribeVpcResourceDashboard请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcIds: Vpc实例ID，例如：vpc-f1xjkw1b。
        :type VpcIds: list of str
        """
        self._VpcIds = None

    @property
    def VpcIds(self):
        return self._VpcIds

    @VpcIds.setter
    def VpcIds(self, VpcIds):
        self._VpcIds = VpcIds


    def _deserialize(self, params):
        self._VpcIds = params.get("VpcIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpcResourceDashboardResponse(AbstractModel):
    """DescribeVpcResourceDashboard返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ResourceDashboardSet: 资源对象列表。
        :type ResourceDashboardSet: list of ResourceDashboard
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ResourceDashboardSet = None
        self._RequestId = None

    @property
    def ResourceDashboardSet(self):
        return self._ResourceDashboardSet

    @ResourceDashboardSet.setter
    def ResourceDashboardSet(self, ResourceDashboardSet):
        self._ResourceDashboardSet = ResourceDashboardSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("ResourceDashboardSet") is not None:
            self._ResourceDashboardSet = []
            for item in params.get("ResourceDashboardSet"):
                obj = ResourceDashboard()
                obj._deserialize(item)
                self._ResourceDashboardSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVpcTaskResultRequest(AbstractModel):
    """DescribeVpcTaskResult请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步任务请求返回的RequestId。
        :type TaskId: str
        """
        self._TaskId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpcTaskResultResponse(AbstractModel):
    """DescribeVpcTaskResult返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: 异步任务执行结果。结果：SUCCESS、FAILED、RUNNING。3者其中之一。其中SUCCESS表示任务执行成功，FAILED表示任务执行失败，RUNNING表示任务执行中。
        :type Status: str
        :param _Output: 异步任务执行输出。
        :type Output: str
        :param _Result: 异步任务详细结果。只用于特殊场景，如批量删除弹性网卡时查询成功的网卡列表和失败的列表。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: list of VpcTaskResultDetailInfo
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Status = None
        self._Output = None
        self._Result = None
        self._RequestId = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Output(self):
        return self._Output

    @Output.setter
    def Output(self, Output):
        self._Output = Output

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._Output = params.get("Output")
        if params.get("Result") is not None:
            self._Result = []
            for item in params.get("Result"):
                obj = VpcTaskResultDetailInfo()
                obj._deserialize(item)
                self._Result.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVpcsRequest(AbstractModel):
    """DescribeVpcs请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcIds: VPC实例ID。形如：vpc-f49l6u0z。每次请求的实例的上限为100。参数不支持同时指定VpcIds和Filters。
        :type VpcIds: list of str
        :param _Filters: 过滤条件，不支持同时指定VpcIds和Filters参数。
支持的过滤条件如下：
<li>vpc-name：VPC实例名称，支持模糊查询。</li>
<li>is-default ：是否默认VPC。</li>
<li>vpc-id ：VPC实例ID，例如：vpc-f49l6u0z。</li>
<li>cidr-block：VPC的CIDR。</li>
<li>tag-key ：按照标签键进行过滤，非必填参数。</li>
<li>tag:tag-key：按照标签键值对进行过滤，非必填参数。 其中 tag-key 请使用具体的标签键进行替换，可参考示例2。</li>
  **说明：**若同一个过滤条件（Filter）存在多个Values，则同一Filter下Values间的关系为逻辑或（OR）关系；若存在多个过滤条件（Filter），Filter之间的关系为逻辑与（AND）关系。
<li>ipv6-cidr-block - String - （过滤条件）IPv6子网网段，形如: 2402:4e00:1717:8700::/64 。</li>
<li>isp-type  - String - （过滤条件）运营商类型，形如: BGP 取值范围：'BGP'-默认, 'CMCC'-中国移动, 'CTCC'-中国电信, 'CUCC'-中国联调。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: str
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: str
        """
        self._VpcIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def VpcIds(self):
        return self._VpcIds

    @VpcIds.setter
    def VpcIds(self, VpcIds):
        self._VpcIds = VpcIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._VpcIds = params.get("VpcIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpcsResponse(AbstractModel):
    """DescribeVpcs返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的对象数。
        :type TotalCount: int
        :param _VpcSet: VPC对象。
        :type VpcSet: list of Vpc
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._VpcSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def VpcSet(self):
        return self._VpcSet

    @VpcSet.setter
    def VpcSet(self, VpcSet):
        self._VpcSet = VpcSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("VpcSet") is not None:
            self._VpcSet = []
            for item in params.get("VpcSet"):
                obj = Vpc()
                obj._deserialize(item)
                self._VpcSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVpnConnectionsRequest(AbstractModel):
    """DescribeVpnConnections请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnConnectionIds: VPN通道实例ID。形如：vpnx-f49l6u0z。每次请求的实例的上限为100。参数不支持同时指定VpnConnectionIds和Filters。
        :type VpnConnectionIds: list of str
        :param _Filters: 过滤条件。每次请求的Filters的上限为10，Filter.Values的上限为5。参数不支持同时指定VpnConnectionIds和Filters。
<li>vpc-id - String - VPC实例ID，形如：`vpc-0a36uwkr`。</li>
<li>vpn-gateway-id - String - VPN网关实例ID，形如：`vpngw-p4lmqawn`。</li>
<li>customer-gateway-id - String - 对端网关实例ID，形如：`cgw-l4rblw63`。</li>
<li>vpn-connection-name - String - 通道名称，形如：`test-vpn`。</li>
<li>vpn-connection-id - String - 通道实例ID，形如：`vpnx-5p7vkch8"`。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认为0。关于Offset的更进一步介绍请参考 API 简介中的相关小节。
        :type Offset: int
        :param _Limit: 返回数量，默认为20，最大值为100。
        :type Limit: int
        """
        self._VpnConnectionIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def VpnConnectionIds(self):
        return self._VpnConnectionIds

    @VpnConnectionIds.setter
    def VpnConnectionIds(self, VpnConnectionIds):
        self._VpnConnectionIds = VpnConnectionIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._VpnConnectionIds = params.get("VpnConnectionIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpnConnectionsResponse(AbstractModel):
    """DescribeVpnConnections返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _VpnConnectionSet: VPN通道实例。
        :type VpnConnectionSet: list of VpnConnection
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._VpnConnectionSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def VpnConnectionSet(self):
        return self._VpnConnectionSet

    @VpnConnectionSet.setter
    def VpnConnectionSet(self, VpnConnectionSet):
        self._VpnConnectionSet = VpnConnectionSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("VpnConnectionSet") is not None:
            self._VpnConnectionSet = []
            for item in params.get("VpnConnectionSet"):
                obj = VpnConnection()
                obj._deserialize(item)
                self._VpnConnectionSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVpnGatewayCcnRoutesRequest(AbstractModel):
    """DescribeVpnGatewayCcnRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关实例ID。
        :type VpnGatewayId: str
        :param _Offset: 偏移量。默认值：0
        :type Offset: int
        :param _Limit: 返回数量。默认值：20
        :type Limit: int
        """
        self._VpnGatewayId = None
        self._Offset = None
        self._Limit = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpnGatewayCcnRoutesResponse(AbstractModel):
    """DescribeVpnGatewayCcnRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RouteSet: 云联网路由（IDC网段）列表。
        :type RouteSet: list of VpngwCcnRoutes
        :param _TotalCount: 符合条件的对象数。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RouteSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def RouteSet(self):
        return self._RouteSet

    @RouteSet.setter
    def RouteSet(self, RouteSet):
        self._RouteSet = RouteSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("RouteSet") is not None:
            self._RouteSet = []
            for item in params.get("RouteSet"):
                obj = VpngwCcnRoutes()
                obj._deserialize(item)
                self._RouteSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeVpnGatewayRoutesRequest(AbstractModel):
    """DescribeVpnGatewayRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关实例ID。
        :type VpnGatewayId: str
        :param _Filters: 过滤条件,  条件包括(DestinationCidr, InstanceId,InstanceType)。
        :type Filters: list of Filter
        :param _Offset: 偏移量, 默认0。
        :type Offset: int
        :param _Limit: 单页个数, 默认20, 最大值100。
        :type Limit: int
        """
        self._VpnGatewayId = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpnGatewayRoutesResponse(AbstractModel):
    """DescribeVpnGatewayRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Routes: VPN网关目的路由。
        :type Routes: list of VpnGatewayRoute
        :param _TotalCount: 路由条数。
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Routes = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def Routes(self):
        return self._Routes

    @Routes.setter
    def Routes(self, Routes):
        self._Routes = Routes

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Routes") is not None:
            self._Routes = []
            for item in params.get("Routes"):
                obj = VpnGatewayRoute()
                obj._deserialize(item)
                self._Routes.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeVpnGatewaySslClientsRequest(AbstractModel):
    """DescribeVpnGatewaySslClients请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件，参数不支持同时指定SslVpnClientIds和Filters。
<li>vpc-id - String - （过滤条件）VPC实例ID形如：vpc-f49l6u0z。</li>
<li>vpn-gateway-id - String - （过滤条件）VPN实例ID形如：vpngw-5aluhh9t。</li>
<li>ssl-vpn-server-id - String - （过滤条件）SSL-VPN-SERVER实例ID形如：vpns-1j2w6xpx。</li>
<li>ssl-vpn-client-id - String - （过滤条件）SSL-VPN-CLIENT实例ID形如：vpnc-3rlxp4nd。</li>
<li>ssl-vpn-client-name - String - （过滤条件）SSL-VPN-CLIENT实例名称。</li>
        :type Filters: list of Filter
        :param _Offset: 偏移量，默认值0。
        :type Offset: int
        :param _Limit: 请求对象个数，默认值20。
        :type Limit: int
        :param _SslVpnClientIds: SSL-VPN-CLIENT实例ID。形如：	
vpns-1jww3xpx。每次请求的实例的上限为100。参数不支持同时指定SslVpnClientIds和Filters。
        :type SslVpnClientIds: list of str
        :param _IsVpnPortal: VPN门户网站使用。默认是False。
        :type IsVpnPortal: bool
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._SslVpnClientIds = None
        self._IsVpnPortal = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def SslVpnClientIds(self):
        return self._SslVpnClientIds

    @SslVpnClientIds.setter
    def SslVpnClientIds(self, SslVpnClientIds):
        self._SslVpnClientIds = SslVpnClientIds

    @property
    def IsVpnPortal(self):
        return self._IsVpnPortal

    @IsVpnPortal.setter
    def IsVpnPortal(self, IsVpnPortal):
        self._IsVpnPortal = IsVpnPortal


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._SslVpnClientIds = params.get("SslVpnClientIds")
        self._IsVpnPortal = params.get("IsVpnPortal")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpnGatewaySslClientsResponse(AbstractModel):
    """DescribeVpnGatewaySslClients返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _SslVpnClientSet: SSL-VPN-CLIENT 实例列表。
        :type SslVpnClientSet: list of SslVpnClient
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._SslVpnClientSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def SslVpnClientSet(self):
        return self._SslVpnClientSet

    @SslVpnClientSet.setter
    def SslVpnClientSet(self, SslVpnClientSet):
        self._SslVpnClientSet = SslVpnClientSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("SslVpnClientSet") is not None:
            self._SslVpnClientSet = []
            for item in params.get("SslVpnClientSet"):
                obj = SslVpnClient()
                obj._deserialize(item)
                self._SslVpnClientSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVpnGatewaySslServersRequest(AbstractModel):
    """DescribeVpnGatewaySslServers请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Offset: 偏移量。
        :type Offset: int
        :param _Limit: 请求对象个数。
        :type Limit: int
        :param _SslVpnServerIds: SSL-VPN-SERVER实例ID。形如：vpngwSslServer-12345678。每次请求的实例的上限为100。参数不支持同时指定SslVpnServerIds和Filters。
        :type SslVpnServerIds: list of str
        :param _Filters: 过滤条件，参数不支持同时指定SslVpnServerIds和Filters。
<li>vpc-id - String - （过滤条件）VPC实例ID，形如：vpc-f49l6u0z。</li>
<li>vpn-gateway-id - String - （过滤条件）VPN实例ID，形如：vpngw-5aluhh9t。</li>
<li>vpn-gateway-name - String - （过滤条件）VPN实例名称。</li>
<li>ssl-vpn-server-name - String - （过滤条件）SSL-VPN-SERVER实例名称。</li>
<li>ssl-vpn-server-id - String - （过滤条件）SSL-VPN-SERVER实例ID，形如：vpns-xxx。</li>
        :type Filters: list of FilterObject
        :param _IsVpnPortal: vpn门户使用。 默认Flase
        :type IsVpnPortal: bool
        """
        self._Offset = None
        self._Limit = None
        self._SslVpnServerIds = None
        self._Filters = None
        self._IsVpnPortal = None

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def SslVpnServerIds(self):
        return self._SslVpnServerIds

    @SslVpnServerIds.setter
    def SslVpnServerIds(self, SslVpnServerIds):
        self._SslVpnServerIds = SslVpnServerIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def IsVpnPortal(self):
        return self._IsVpnPortal

    @IsVpnPortal.setter
    def IsVpnPortal(self, IsVpnPortal):
        self._IsVpnPortal = IsVpnPortal


    def _deserialize(self, params):
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._SslVpnServerIds = params.get("SslVpnServerIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = FilterObject()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._IsVpnPortal = params.get("IsVpnPortal")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpnGatewaySslServersResponse(AbstractModel):
    """DescribeVpnGatewaySslServers返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _SslVpnSeverSet: SSL-VPN-SERVER 实例详细信息列表。
        :type SslVpnSeverSet: list of SslVpnSever
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._SslVpnSeverSet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def SslVpnSeverSet(self):
        return self._SslVpnSeverSet

    @SslVpnSeverSet.setter
    def SslVpnSeverSet(self, SslVpnSeverSet):
        self._SslVpnSeverSet = SslVpnSeverSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("SslVpnSeverSet") is not None:
            self._SslVpnSeverSet = []
            for item in params.get("SslVpnSeverSet"):
                obj = SslVpnSever()
                obj._deserialize(item)
                self._SslVpnSeverSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVpnGatewaysRequest(AbstractModel):
    """DescribeVpnGateways请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayIds: VPN网关实例ID。形如：vpngw-f49l6u0z。每次请求的实例的上限为100。参数不支持同时指定VpnGatewayIds和Filters。
        :type VpnGatewayIds: list of str
        :param _Filters: 过滤条件，参数不支持同时指定VpnGatewayIds和Filters。
<li>vpc-id - String - （过滤条件）VPC实例ID形如：vpc-f49l6u0z。</li>
<li>vpn-gateway-id - String - （过滤条件）VPN实例ID形如：vpngw-5aluhh9t。</li>
<li>vpn-gateway-name - String - （过滤条件）VPN实例名称。</li>
<li>type - String - （过滤条件）VPN网关类型：'IPSEC', 'SSL', 'CCN', 'SSL_CCN'。</li>
<li>public-ip-address- String - （过滤条件）公网IP。</li>
<li>renew-flag - String - （过滤条件）网关续费类型，手动续费：'NOTIFY_AND_MANUAL_RENEW'、自动续费：'NOTIFY_AND_AUTO_RENEW'。</li>
<li>zone - String - （过滤条件）VPN所在可用区，形如：ap-guangzhou-2。</li>
        :type Filters: list of FilterObject
        :param _Offset: 偏移量，默认值为0。
        :type Offset: int
        :param _Limit: 请求对象个数，默认值为20。
        :type Limit: int
        """
        self._VpnGatewayIds = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def VpnGatewayIds(self):
        return self._VpnGatewayIds

    @VpnGatewayIds.setter
    def VpnGatewayIds(self, VpnGatewayIds):
        self._VpnGatewayIds = VpnGatewayIds

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._VpnGatewayIds = params.get("VpnGatewayIds")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = FilterObject()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVpnGatewaysResponse(AbstractModel):
    """DescribeVpnGateways返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 符合条件的实例数量。
        :type TotalCount: int
        :param _VpnGatewaySet: VPN网关实例详细信息列表。
        :type VpnGatewaySet: list of VpnGateway
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._VpnGatewaySet = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def VpnGatewaySet(self):
        return self._VpnGatewaySet

    @VpnGatewaySet.setter
    def VpnGatewaySet(self, VpnGatewaySet):
        self._VpnGatewaySet = VpnGatewaySet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("VpnGatewaySet") is not None:
            self._VpnGatewaySet = []
            for item in params.get("VpnGatewaySet"):
                obj = VpnGateway()
                obj._deserialize(item)
                self._VpnGatewaySet.append(obj)
        self._RequestId = params.get("RequestId")


class DestinationIpPortTranslationNatRule(AbstractModel):
    """NAT网关的端口转发规则

    """

    def __init__(self):
        r"""
        :param _IpProtocol: 网络协议，可选值：`TCP`、`UDP`。
        :type IpProtocol: str
        :param _PublicIpAddress: 弹性IP。
        :type PublicIpAddress: str
        :param _PublicPort: 公网端口。
        :type PublicPort: int
        :param _PrivateIpAddress: 内网地址。
        :type PrivateIpAddress: str
        :param _PrivatePort: 内网端口。
        :type PrivatePort: int
        :param _Description: NAT网关转发规则描述。
        :type Description: str
        """
        self._IpProtocol = None
        self._PublicIpAddress = None
        self._PublicPort = None
        self._PrivateIpAddress = None
        self._PrivatePort = None
        self._Description = None

    @property
    def IpProtocol(self):
        return self._IpProtocol

    @IpProtocol.setter
    def IpProtocol(self, IpProtocol):
        self._IpProtocol = IpProtocol

    @property
    def PublicIpAddress(self):
        return self._PublicIpAddress

    @PublicIpAddress.setter
    def PublicIpAddress(self, PublicIpAddress):
        self._PublicIpAddress = PublicIpAddress

    @property
    def PublicPort(self):
        return self._PublicPort

    @PublicPort.setter
    def PublicPort(self, PublicPort):
        self._PublicPort = PublicPort

    @property
    def PrivateIpAddress(self):
        return self._PrivateIpAddress

    @PrivateIpAddress.setter
    def PrivateIpAddress(self, PrivateIpAddress):
        self._PrivateIpAddress = PrivateIpAddress

    @property
    def PrivatePort(self):
        return self._PrivatePort

    @PrivatePort.setter
    def PrivatePort(self, PrivatePort):
        self._PrivatePort = PrivatePort

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description


    def _deserialize(self, params):
        self._IpProtocol = params.get("IpProtocol")
        self._PublicIpAddress = params.get("PublicIpAddress")
        self._PublicPort = params.get("PublicPort")
        self._PrivateIpAddress = params.get("PrivateIpAddress")
        self._PrivatePort = params.get("PrivatePort")
        self._Description = params.get("Description")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DetachCcnInstancesRequest(AbstractModel):
    """DetachCcnInstances请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnId: CCN实例ID。形如：ccn-f49l6u0z。
        :type CcnId: str
        :param _Instances: 要解关联网络实例列表
        :type Instances: list of CcnInstance
        """
        self._CcnId = None
        self._Instances = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def Instances(self):
        return self._Instances

    @Instances.setter
    def Instances(self, Instances):
        self._Instances = Instances


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        if params.get("Instances") is not None:
            self._Instances = []
            for item in params.get("Instances"):
                obj = CcnInstance()
                obj._deserialize(item)
                self._Instances.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DetachCcnInstancesResponse(AbstractModel):
    """DetachCcnInstances返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DetachClassicLinkVpcRequest(AbstractModel):
    """DetachClassicLinkVpc请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。可通过DescribeVpcs接口返回值中的VpcId获取。
        :type VpcId: str
        :param _InstanceIds: CVM实例ID查询。形如：ins-r8hr2upy。
        :type InstanceIds: list of str
        """
        self._VpcId = None
        self._InstanceIds = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def InstanceIds(self):
        return self._InstanceIds

    @InstanceIds.setter
    def InstanceIds(self, InstanceIds):
        self._InstanceIds = InstanceIds


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._InstanceIds = params.get("InstanceIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DetachClassicLinkVpcResponse(AbstractModel):
    """DetachClassicLinkVpc返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DetachNetworkInterfaceRequest(AbstractModel):
    """DetachNetworkInterface请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceId: 弹性网卡实例ID，例如：eni-m6dyj72l。
        :type NetworkInterfaceId: str
        :param _InstanceId: CVM实例ID。形如：ins-r8hr2upy。
        :type InstanceId: str
        :param _ClientToken: 用于保证请求幂等性的字符串。该字符串由客户生成，需保证不同请求之间唯一，最大值不超过64个ASCII字符。若不指定该参数，则无法保证请求的幂等性。	
        :type ClientToken: str
        """
        self._NetworkInterfaceId = None
        self._InstanceId = None
        self._ClientToken = None

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def ClientToken(self):
        return self._ClientToken

    @ClientToken.setter
    def ClientToken(self, ClientToken):
        self._ClientToken = ClientToken


    def _deserialize(self, params):
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        self._InstanceId = params.get("InstanceId")
        self._ClientToken = params.get("ClientToken")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DetachNetworkInterfaceResponse(AbstractModel):
    """DetachNetworkInterface返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DetachSnapshotInstancesRequest(AbstractModel):
    """DetachSnapshotInstances请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SnapshotPolicyId: 快照策略Id。
        :type SnapshotPolicyId: str
        :param _Instances: 实例信息。
        :type Instances: list of SnapshotInstance
        """
        self._SnapshotPolicyId = None
        self._Instances = None

    @property
    def SnapshotPolicyId(self):
        return self._SnapshotPolicyId

    @SnapshotPolicyId.setter
    def SnapshotPolicyId(self, SnapshotPolicyId):
        self._SnapshotPolicyId = SnapshotPolicyId

    @property
    def Instances(self):
        return self._Instances

    @Instances.setter
    def Instances(self, Instances):
        self._Instances = Instances


    def _deserialize(self, params):
        self._SnapshotPolicyId = params.get("SnapshotPolicyId")
        if params.get("Instances") is not None:
            self._Instances = []
            for item in params.get("Instances"):
                obj = SnapshotInstance()
                obj._deserialize(item)
                self._Instances.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DetachSnapshotInstancesResponse(AbstractModel):
    """DetachSnapshotInstances返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DhcpIp(AbstractModel):
    """描述 DhcpIp 信息

    """

    def __init__(self):
        r"""
        :param _DhcpIpId: `DhcpIp`的`ID`，是`DhcpIp`的唯一标识。
        :type DhcpIpId: str
        :param _VpcId: `DhcpIp`所在私有网络`ID`。
        :type VpcId: str
        :param _SubnetId: `DhcpIp`所在子网`ID`。
        :type SubnetId: str
        :param _DhcpIpName: `DhcpIp`的名称。
        :type DhcpIpName: str
        :param _PrivateIpAddress: IP地址。
        :type PrivateIpAddress: str
        :param _AddressIp: 绑定`EIP`。
        :type AddressIp: str
        :param _NetworkInterfaceId: `DhcpIp`关联弹性网卡`ID`。
        :type NetworkInterfaceId: str
        :param _InstanceId: 被绑定的实例`ID`。
        :type InstanceId: str
        :param _State: 状态：
<li>`AVAILABLE`：运行中</li>
<li>`UNBIND`：未绑定</li>
        :type State: str
        :param _CreatedTime: 创建时间。
        :type CreatedTime: str
        """
        self._DhcpIpId = None
        self._VpcId = None
        self._SubnetId = None
        self._DhcpIpName = None
        self._PrivateIpAddress = None
        self._AddressIp = None
        self._NetworkInterfaceId = None
        self._InstanceId = None
        self._State = None
        self._CreatedTime = None

    @property
    def DhcpIpId(self):
        return self._DhcpIpId

    @DhcpIpId.setter
    def DhcpIpId(self, DhcpIpId):
        self._DhcpIpId = DhcpIpId

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def DhcpIpName(self):
        return self._DhcpIpName

    @DhcpIpName.setter
    def DhcpIpName(self, DhcpIpName):
        self._DhcpIpName = DhcpIpName

    @property
    def PrivateIpAddress(self):
        return self._PrivateIpAddress

    @PrivateIpAddress.setter
    def PrivateIpAddress(self, PrivateIpAddress):
        self._PrivateIpAddress = PrivateIpAddress

    @property
    def AddressIp(self):
        return self._AddressIp

    @AddressIp.setter
    def AddressIp(self, AddressIp):
        self._AddressIp = AddressIp

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime


    def _deserialize(self, params):
        self._DhcpIpId = params.get("DhcpIpId")
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._DhcpIpName = params.get("DhcpIpName")
        self._PrivateIpAddress = params.get("PrivateIpAddress")
        self._AddressIp = params.get("AddressIp")
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        self._InstanceId = params.get("InstanceId")
        self._State = params.get("State")
        self._CreatedTime = params.get("CreatedTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DirectConnectGateway(AbstractModel):
    """专线网关对象。

    """

    def __init__(self):
        r"""
        :param _DirectConnectGatewayId: 专线网关`ID`。
        :type DirectConnectGatewayId: str
        :param _DirectConnectGatewayName: 专线网关名称。
        :type DirectConnectGatewayName: str
        :param _VpcId: 专线网关关联`VPC`实例`ID`。
        :type VpcId: str
        :param _NetworkType: 关联网络类型：
<li>`VPC` - 私有网络</li>
<li>`CCN` - 云联网</li>
        :type NetworkType: str
        :param _NetworkInstanceId: 关联网络实例`ID`：
<li>`NetworkType`为`VPC`时，这里为私有网络实例`ID`</li>
<li>`NetworkType`为`CCN`时，这里为云联网实例`ID`</li>
        :type NetworkInstanceId: str
        :param _GatewayType: 网关类型：
<li>NORMAL - 标准型，注：云联网只支持标准型</li>
<li>NAT - NAT型</li>
NAT类型支持网络地址转换配置，类型确定后不能修改；一个私有网络可以创建一个NAT类型的专线网关和一个非NAT类型的专线网关
        :type GatewayType: str
        :param _CreateTime: 创建时间。
        :type CreateTime: str
        :param _DirectConnectGatewayIp: 专线网关IP。
        :type DirectConnectGatewayIp: str
        :param _CcnId: 专线网关关联`CCN`实例`ID`。
        :type CcnId: str
        :param _CcnRouteType: 云联网路由学习类型：
<li>`BGP` - 自动学习。</li>
<li>`STATIC` - 静态，即用户配置。</li>
        :type CcnRouteType: str
        :param _EnableBGP: 是否启用BGP。
        :type EnableBGP: bool
        :param _EnableBGPCommunity: 开启和关闭BGP的community属性。
        :type EnableBGPCommunity: bool
        :param _NatGatewayId: 绑定的NAT网关ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type NatGatewayId: str
        :param _VXLANSupport: 专线网关是否支持VXLAN架构
注意：此字段可能返回 null，表示取不到有效值。
        :type VXLANSupport: list of bool
        :param _ModeType: 云联网路由发布模式：`standard`（标准模式）、`exquisite`（精细模式）。
注意：此字段可能返回 null，表示取不到有效值。
        :type ModeType: str
        :param _LocalZone: 是否为localZone专线网关。
注意：此字段可能返回 null，表示取不到有效值。
        :type LocalZone: bool
        :param _Zone: 专线网关所在可用区
注意：此字段可能返回 null，表示取不到有效值。
        :type Zone: str
        :param _EnableFlowDetails: 网关流控明细启用状态：
0：关闭
1：开启
注意：此字段可能返回 null，表示取不到有效值。
        :type EnableFlowDetails: int
        :param _FlowDetailsUpdateTime: 开启、关闭网关流控明细时间
注意：此字段可能返回 null，表示取不到有效值。
        :type FlowDetailsUpdateTime: str
        :param _NewAfc: 是否支持开启网关流控明细
0：不支持
1：支持
注意：此字段可能返回 null，表示取不到有效值。
        :type NewAfc: int
        :param _AccessNetworkType: 专线网关接入网络类型：
<li>`VXLAN` - VXLAN类型。</li>
<li>`MPLS` - MPLS类型。</li>
<li>`Hybrid` - Hybrid类型。</li>
注意：此字段可能返回 null，表示取不到有效值。
        :type AccessNetworkType: str
        :param _HaZoneList: 跨可用区容灾专线网关的可用区列表
注意：此字段可能返回 null，表示取不到有效值。
        :type HaZoneList: list of str
        """
        self._DirectConnectGatewayId = None
        self._DirectConnectGatewayName = None
        self._VpcId = None
        self._NetworkType = None
        self._NetworkInstanceId = None
        self._GatewayType = None
        self._CreateTime = None
        self._DirectConnectGatewayIp = None
        self._CcnId = None
        self._CcnRouteType = None
        self._EnableBGP = None
        self._EnableBGPCommunity = None
        self._NatGatewayId = None
        self._VXLANSupport = None
        self._ModeType = None
        self._LocalZone = None
        self._Zone = None
        self._EnableFlowDetails = None
        self._FlowDetailsUpdateTime = None
        self._NewAfc = None
        self._AccessNetworkType = None
        self._HaZoneList = None

    @property
    def DirectConnectGatewayId(self):
        return self._DirectConnectGatewayId

    @DirectConnectGatewayId.setter
    def DirectConnectGatewayId(self, DirectConnectGatewayId):
        self._DirectConnectGatewayId = DirectConnectGatewayId

    @property
    def DirectConnectGatewayName(self):
        return self._DirectConnectGatewayName

    @DirectConnectGatewayName.setter
    def DirectConnectGatewayName(self, DirectConnectGatewayName):
        self._DirectConnectGatewayName = DirectConnectGatewayName

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def NetworkType(self):
        return self._NetworkType

    @NetworkType.setter
    def NetworkType(self, NetworkType):
        self._NetworkType = NetworkType

    @property
    def NetworkInstanceId(self):
        return self._NetworkInstanceId

    @NetworkInstanceId.setter
    def NetworkInstanceId(self, NetworkInstanceId):
        self._NetworkInstanceId = NetworkInstanceId

    @property
    def GatewayType(self):
        return self._GatewayType

    @GatewayType.setter
    def GatewayType(self, GatewayType):
        self._GatewayType = GatewayType

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def DirectConnectGatewayIp(self):
        return self._DirectConnectGatewayIp

    @DirectConnectGatewayIp.setter
    def DirectConnectGatewayIp(self, DirectConnectGatewayIp):
        self._DirectConnectGatewayIp = DirectConnectGatewayIp

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def CcnRouteType(self):
        return self._CcnRouteType

    @CcnRouteType.setter
    def CcnRouteType(self, CcnRouteType):
        self._CcnRouteType = CcnRouteType

    @property
    def EnableBGP(self):
        return self._EnableBGP

    @EnableBGP.setter
    def EnableBGP(self, EnableBGP):
        self._EnableBGP = EnableBGP

    @property
    def EnableBGPCommunity(self):
        return self._EnableBGPCommunity

    @EnableBGPCommunity.setter
    def EnableBGPCommunity(self, EnableBGPCommunity):
        self._EnableBGPCommunity = EnableBGPCommunity

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def VXLANSupport(self):
        return self._VXLANSupport

    @VXLANSupport.setter
    def VXLANSupport(self, VXLANSupport):
        self._VXLANSupport = VXLANSupport

    @property
    def ModeType(self):
        return self._ModeType

    @ModeType.setter
    def ModeType(self, ModeType):
        self._ModeType = ModeType

    @property
    def LocalZone(self):
        return self._LocalZone

    @LocalZone.setter
    def LocalZone(self, LocalZone):
        self._LocalZone = LocalZone

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def EnableFlowDetails(self):
        return self._EnableFlowDetails

    @EnableFlowDetails.setter
    def EnableFlowDetails(self, EnableFlowDetails):
        self._EnableFlowDetails = EnableFlowDetails

    @property
    def FlowDetailsUpdateTime(self):
        return self._FlowDetailsUpdateTime

    @FlowDetailsUpdateTime.setter
    def FlowDetailsUpdateTime(self, FlowDetailsUpdateTime):
        self._FlowDetailsUpdateTime = FlowDetailsUpdateTime

    @property
    def NewAfc(self):
        return self._NewAfc

    @NewAfc.setter
    def NewAfc(self, NewAfc):
        self._NewAfc = NewAfc

    @property
    def AccessNetworkType(self):
        return self._AccessNetworkType

    @AccessNetworkType.setter
    def AccessNetworkType(self, AccessNetworkType):
        self._AccessNetworkType = AccessNetworkType

    @property
    def HaZoneList(self):
        return self._HaZoneList

    @HaZoneList.setter
    def HaZoneList(self, HaZoneList):
        self._HaZoneList = HaZoneList


    def _deserialize(self, params):
        self._DirectConnectGatewayId = params.get("DirectConnectGatewayId")
        self._DirectConnectGatewayName = params.get("DirectConnectGatewayName")
        self._VpcId = params.get("VpcId")
        self._NetworkType = params.get("NetworkType")
        self._NetworkInstanceId = params.get("NetworkInstanceId")
        self._GatewayType = params.get("GatewayType")
        self._CreateTime = params.get("CreateTime")
        self._DirectConnectGatewayIp = params.get("DirectConnectGatewayIp")
        self._CcnId = params.get("CcnId")
        self._CcnRouteType = params.get("CcnRouteType")
        self._EnableBGP = params.get("EnableBGP")
        self._EnableBGPCommunity = params.get("EnableBGPCommunity")
        self._NatGatewayId = params.get("NatGatewayId")
        self._VXLANSupport = params.get("VXLANSupport")
        self._ModeType = params.get("ModeType")
        self._LocalZone = params.get("LocalZone")
        self._Zone = params.get("Zone")
        self._EnableFlowDetails = params.get("EnableFlowDetails")
        self._FlowDetailsUpdateTime = params.get("FlowDetailsUpdateTime")
        self._NewAfc = params.get("NewAfc")
        self._AccessNetworkType = params.get("AccessNetworkType")
        self._HaZoneList = params.get("HaZoneList")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DirectConnectGatewayCcnRoute(AbstractModel):
    """专线网关云联网路由（IDC网段）对象

    """

    def __init__(self):
        r"""
        :param _RouteId: 路由ID。
        :type RouteId: str
        :param _DestinationCidrBlock: IDC网段。
        :type DestinationCidrBlock: str
        :param _ASPath: `BGP`的`AS-Path`属性。
        :type ASPath: list of str
        :param _Description: 备注
        :type Description: str
        :param _UpdateTime: 最后更新时间
        :type UpdateTime: str
        """
        self._RouteId = None
        self._DestinationCidrBlock = None
        self._ASPath = None
        self._Description = None
        self._UpdateTime = None

    @property
    def RouteId(self):
        return self._RouteId

    @RouteId.setter
    def RouteId(self, RouteId):
        self._RouteId = RouteId

    @property
    def DestinationCidrBlock(self):
        return self._DestinationCidrBlock

    @DestinationCidrBlock.setter
    def DestinationCidrBlock(self, DestinationCidrBlock):
        self._DestinationCidrBlock = DestinationCidrBlock

    @property
    def ASPath(self):
        return self._ASPath

    @ASPath.setter
    def ASPath(self, ASPath):
        self._ASPath = ASPath

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime


    def _deserialize(self, params):
        self._RouteId = params.get("RouteId")
        self._DestinationCidrBlock = params.get("DestinationCidrBlock")
        self._ASPath = params.get("ASPath")
        self._Description = params.get("Description")
        self._UpdateTime = params.get("UpdateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DirectConnectSubnet(AbstractModel):
    """IDC子网信息

    """

    def __init__(self):
        r"""
        :param _DirectConnectGatewayId: 专线网关ID
        :type DirectConnectGatewayId: str
        :param _CidrBlock: IDC子网网段
        :type CidrBlock: str
        """
        self._DirectConnectGatewayId = None
        self._CidrBlock = None

    @property
    def DirectConnectGatewayId(self):
        return self._DirectConnectGatewayId

    @DirectConnectGatewayId.setter
    def DirectConnectGatewayId(self, DirectConnectGatewayId):
        self._DirectConnectGatewayId = DirectConnectGatewayId

    @property
    def CidrBlock(self):
        return self._CidrBlock

    @CidrBlock.setter
    def CidrBlock(self, CidrBlock):
        self._CidrBlock = CidrBlock


    def _deserialize(self, params):
        self._DirectConnectGatewayId = params.get("DirectConnectGatewayId")
        self._CidrBlock = params.get("CidrBlock")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DisableCcnRoutesRequest(AbstractModel):
    """DisableCcnRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnId: CCN实例ID。形如：ccn-f49l6u0z。
        :type CcnId: str
        :param _RouteIds: CCN路由策略唯一ID。形如：ccnr-f49l6u0z。
        :type RouteIds: list of str
        """
        self._CcnId = None
        self._RouteIds = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def RouteIds(self):
        return self._RouteIds

    @RouteIds.setter
    def RouteIds(self, RouteIds):
        self._RouteIds = RouteIds


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        self._RouteIds = params.get("RouteIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DisableCcnRoutesResponse(AbstractModel):
    """DisableCcnRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DisableFlowLogsRequest(AbstractModel):
    """DisableFlowLogs请求参数结构体

    """

    def __init__(self):
        r"""
        :param _FlowLogIds: 流日志Id。
        :type FlowLogIds: list of str
        """
        self._FlowLogIds = None

    @property
    def FlowLogIds(self):
        return self._FlowLogIds

    @FlowLogIds.setter
    def FlowLogIds(self, FlowLogIds):
        self._FlowLogIds = FlowLogIds


    def _deserialize(self, params):
        self._FlowLogIds = params.get("FlowLogIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DisableFlowLogsResponse(AbstractModel):
    """DisableFlowLogs返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DisableGatewayFlowMonitorRequest(AbstractModel):
    """DisableGatewayFlowMonitor请求参数结构体

    """

    def __init__(self):
        r"""
        :param _GatewayId: 网关实例ID，目前我们支持的网关实例类型有，
专线网关实例ID，形如，`dcg-ltjahce6`；
Nat网关实例ID，形如，`nat-ltjahce6`；
VPN网关实例ID，形如，`vpn-ltjahce6`。
        :type GatewayId: str
        """
        self._GatewayId = None

    @property
    def GatewayId(self):
        return self._GatewayId

    @GatewayId.setter
    def GatewayId(self, GatewayId):
        self._GatewayId = GatewayId


    def _deserialize(self, params):
        self._GatewayId = params.get("GatewayId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DisableGatewayFlowMonitorResponse(AbstractModel):
    """DisableGatewayFlowMonitor返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DisableRoutesRequest(AbstractModel):
    """DisableRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RouteTableId: 路由表唯一ID。
        :type RouteTableId: str
        :param _RouteIds: 路由策略ID。不能和RouteItemIds同时使用，但至少输入一个。该参数取值可通过查询路由列表（[DescribeRouteTables](https://cloud.tencent.com/document/product/215/15763)）获取。
        :type RouteIds: list of int non-negative
        :param _RouteItemIds: 路由策略唯一ID。不能和RouteIds同时使用，但至少输入一个。该参数取值可通过查询路由列表（[DescribeRouteTables](https://cloud.tencent.com/document/product/215/15763)）获取。
        :type RouteItemIds: list of str
        """
        self._RouteTableId = None
        self._RouteIds = None
        self._RouteItemIds = None

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId

    @property
    def RouteIds(self):
        return self._RouteIds

    @RouteIds.setter
    def RouteIds(self, RouteIds):
        self._RouteIds = RouteIds

    @property
    def RouteItemIds(self):
        return self._RouteItemIds

    @RouteItemIds.setter
    def RouteItemIds(self, RouteItemIds):
        self._RouteItemIds = RouteItemIds


    def _deserialize(self, params):
        self._RouteTableId = params.get("RouteTableId")
        self._RouteIds = params.get("RouteIds")
        self._RouteItemIds = params.get("RouteItemIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DisableRoutesResponse(AbstractModel):
    """DisableRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DisableSnapshotPoliciesRequest(AbstractModel):
    """DisableSnapshotPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SnapshotPolicyIds: 快照策略Id。
        :type SnapshotPolicyIds: list of str
        """
        self._SnapshotPolicyIds = None

    @property
    def SnapshotPolicyIds(self):
        return self._SnapshotPolicyIds

    @SnapshotPolicyIds.setter
    def SnapshotPolicyIds(self, SnapshotPolicyIds):
        self._SnapshotPolicyIds = SnapshotPolicyIds


    def _deserialize(self, params):
        self._SnapshotPolicyIds = params.get("SnapshotPolicyIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DisableSnapshotPoliciesResponse(AbstractModel):
    """DisableSnapshotPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DisableVpnGatewaySslClientCertRequest(AbstractModel):
    """DisableVpnGatewaySslClientCert请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SslVpnClientId: SSL-VPN-CLIENT 实例ID。不可和SslVpnClientIds同时使用。
        :type SslVpnClientId: str
        :param _SslVpnClientIds: SSL-VPN-CLIENT 实例ID列表。批量禁用时使用。不可和SslVpnClientId同时使用。
        :type SslVpnClientIds: list of str
        """
        self._SslVpnClientId = None
        self._SslVpnClientIds = None

    @property
    def SslVpnClientId(self):
        return self._SslVpnClientId

    @SslVpnClientId.setter
    def SslVpnClientId(self, SslVpnClientId):
        self._SslVpnClientId = SslVpnClientId

    @property
    def SslVpnClientIds(self):
        return self._SslVpnClientIds

    @SslVpnClientIds.setter
    def SslVpnClientIds(self, SslVpnClientIds):
        self._SslVpnClientIds = SslVpnClientIds


    def _deserialize(self, params):
        self._SslVpnClientId = params.get("SslVpnClientId")
        self._SslVpnClientIds = params.get("SslVpnClientIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DisableVpnGatewaySslClientCertResponse(AbstractModel):
    """DisableVpnGatewaySslClientCert返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步任务实例ID。
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class DisassociateAddressRequest(AbstractModel):
    """DisassociateAddress请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressId: 标识 EIP 的唯一 ID。EIP 唯一 ID 形如：`eip-11112222`。
        :type AddressId: str
        :param _ReallocateNormalPublicIp: 表示解绑 EIP 之后是否分配普通公网 IP。取值范围：<br><li>TRUE：表示解绑 EIP 之后分配普通公网 IP。<br><li>FALSE：表示解绑 EIP 之后不分配普通公网 IP。<br>默认取值：FALSE。<br><br>只有满足以下条件时才能指定该参数：<br><li> 只有在解绑主网卡的主内网 IP 上的 EIP 时才能指定该参数。<br><li>解绑 EIP 后重新分配普通公网 IP 操作一个账号每天最多操作 10 次；详情可通过 [DescribeAddressQuota](https://cloud.tencent.com/document/api/213/1378) 接口获取。
        :type ReallocateNormalPublicIp: bool
        """
        self._AddressId = None
        self._ReallocateNormalPublicIp = None

    @property
    def AddressId(self):
        return self._AddressId

    @AddressId.setter
    def AddressId(self, AddressId):
        self._AddressId = AddressId

    @property
    def ReallocateNormalPublicIp(self):
        return self._ReallocateNormalPublicIp

    @ReallocateNormalPublicIp.setter
    def ReallocateNormalPublicIp(self, ReallocateNormalPublicIp):
        self._ReallocateNormalPublicIp = ReallocateNormalPublicIp


    def _deserialize(self, params):
        self._AddressId = params.get("AddressId")
        self._ReallocateNormalPublicIp = params.get("ReallocateNormalPublicIp")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DisassociateAddressResponse(AbstractModel):
    """DisassociateAddress返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步任务TaskId。可以使用[DescribeTaskResult](https://cloud.tencent.com/document/api/215/36271)接口查询任务状态。
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class DisassociateDhcpIpWithAddressIpRequest(AbstractModel):
    """DisassociateDhcpIpWithAddressIp请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DhcpIpId: `DhcpIp`唯一`ID`，形如：`dhcpip-9o233uri`。必须是已绑定`EIP`的`DhcpIp`。
        :type DhcpIpId: str
        """
        self._DhcpIpId = None

    @property
    def DhcpIpId(self):
        return self._DhcpIpId

    @DhcpIpId.setter
    def DhcpIpId(self, DhcpIpId):
        self._DhcpIpId = DhcpIpId


    def _deserialize(self, params):
        self._DhcpIpId = params.get("DhcpIpId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DisassociateDhcpIpWithAddressIpResponse(AbstractModel):
    """DisassociateDhcpIpWithAddressIp返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DisassociateDirectConnectGatewayNatGatewayRequest(AbstractModel):
    """DisassociateDirectConnectGatewayNatGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。形如：vpc-xxx。
        :type VpcId: str
        :param _NatGatewayId: NAT网关ID。形如：nat-xxx
        :type NatGatewayId: str
        :param _DirectConnectGatewayId: 专线网关ID。形如：dcg-xxx
        :type DirectConnectGatewayId: str
        """
        self._VpcId = None
        self._NatGatewayId = None
        self._DirectConnectGatewayId = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def DirectConnectGatewayId(self):
        return self._DirectConnectGatewayId

    @DirectConnectGatewayId.setter
    def DirectConnectGatewayId(self, DirectConnectGatewayId):
        self._DirectConnectGatewayId = DirectConnectGatewayId


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._NatGatewayId = params.get("NatGatewayId")
        self._DirectConnectGatewayId = params.get("DirectConnectGatewayId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DisassociateDirectConnectGatewayNatGatewayResponse(AbstractModel):
    """DisassociateDirectConnectGatewayNatGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DisassociateNatGatewayAddressRequest(AbstractModel):
    """DisassociateNatGatewayAddress请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayId: NAT网关的ID，形如：`nat-df45454`。
        :type NatGatewayId: str
        :param _PublicIpAddresses: 待解绑NAT网关的弹性IP数组。
        :type PublicIpAddresses: list of str
        """
        self._NatGatewayId = None
        self._PublicIpAddresses = None

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def PublicIpAddresses(self):
        return self._PublicIpAddresses

    @PublicIpAddresses.setter
    def PublicIpAddresses(self, PublicIpAddresses):
        self._PublicIpAddresses = PublicIpAddresses


    def _deserialize(self, params):
        self._NatGatewayId = params.get("NatGatewayId")
        self._PublicIpAddresses = params.get("PublicIpAddresses")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DisassociateNatGatewayAddressResponse(AbstractModel):
    """DisassociateNatGatewayAddress返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DisassociateNetworkAclSubnetsRequest(AbstractModel):
    """DisassociateNetworkAclSubnets请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkAclId: 网络ACL实例ID。例如：acl-12345678。
        :type NetworkAclId: str
        :param _SubnetIds: 子网实例ID数组。例如：[subnet-12345678]。
        :type SubnetIds: list of str
        """
        self._NetworkAclId = None
        self._SubnetIds = None

    @property
    def NetworkAclId(self):
        return self._NetworkAclId

    @NetworkAclId.setter
    def NetworkAclId(self, NetworkAclId):
        self._NetworkAclId = NetworkAclId

    @property
    def SubnetIds(self):
        return self._SubnetIds

    @SubnetIds.setter
    def SubnetIds(self, SubnetIds):
        self._SubnetIds = SubnetIds


    def _deserialize(self, params):
        self._NetworkAclId = params.get("NetworkAclId")
        self._SubnetIds = params.get("SubnetIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DisassociateNetworkAclSubnetsResponse(AbstractModel):
    """DisassociateNetworkAclSubnets返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DisassociateNetworkInterfaceSecurityGroupsRequest(AbstractModel):
    """DisassociateNetworkInterfaceSecurityGroups请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceIds: 弹性网卡实例ID。形如：eni-pxir56ns。每次请求的实例的上限为100。
        :type NetworkInterfaceIds: list of str
        :param _SecurityGroupIds: 安全组实例ID，例如：sg-33ocnj9n，可通过DescribeSecurityGroups获取。每次请求的实例的上限为100。
        :type SecurityGroupIds: list of str
        """
        self._NetworkInterfaceIds = None
        self._SecurityGroupIds = None

    @property
    def NetworkInterfaceIds(self):
        return self._NetworkInterfaceIds

    @NetworkInterfaceIds.setter
    def NetworkInterfaceIds(self, NetworkInterfaceIds):
        self._NetworkInterfaceIds = NetworkInterfaceIds

    @property
    def SecurityGroupIds(self):
        return self._SecurityGroupIds

    @SecurityGroupIds.setter
    def SecurityGroupIds(self, SecurityGroupIds):
        self._SecurityGroupIds = SecurityGroupIds


    def _deserialize(self, params):
        self._NetworkInterfaceIds = params.get("NetworkInterfaceIds")
        self._SecurityGroupIds = params.get("SecurityGroupIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DisassociateNetworkInterfaceSecurityGroupsResponse(AbstractModel):
    """DisassociateNetworkInterfaceSecurityGroups返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DisassociateVpcEndPointSecurityGroupsRequest(AbstractModel):
    """DisassociateVpcEndPointSecurityGroups请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupIds: 安全组ID数组。
        :type SecurityGroupIds: list of str
        :param _EndPointId: 终端节点ID。
        :type EndPointId: str
        """
        self._SecurityGroupIds = None
        self._EndPointId = None

    @property
    def SecurityGroupIds(self):
        return self._SecurityGroupIds

    @SecurityGroupIds.setter
    def SecurityGroupIds(self, SecurityGroupIds):
        self._SecurityGroupIds = SecurityGroupIds

    @property
    def EndPointId(self):
        return self._EndPointId

    @EndPointId.setter
    def EndPointId(self, EndPointId):
        self._EndPointId = EndPointId


    def _deserialize(self, params):
        self._SecurityGroupIds = params.get("SecurityGroupIds")
        self._EndPointId = params.get("EndPointId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DisassociateVpcEndPointSecurityGroupsResponse(AbstractModel):
    """DisassociateVpcEndPointSecurityGroups返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DownloadCustomerGatewayConfigurationRequest(AbstractModel):
    """DownloadCustomerGatewayConfiguration请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关实例ID。
        :type VpnGatewayId: str
        :param _VpnConnectionId: VPN通道实例ID。形如：vpnx-f49l6u0z。
        :type VpnConnectionId: str
        :param _CustomerGatewayVendor: 对端网关厂商信息对象，可通过[DescribeCustomerGatewayVendors](https://cloud.tencent.com/document/api/215/17513)获取。
        :type CustomerGatewayVendor: :class:`tencentcloud.vpc.v20170312.models.CustomerGatewayVendor`
        :param _InterfaceName: 通道接入设备物理接口名称。
        :type InterfaceName: str
        """
        self._VpnGatewayId = None
        self._VpnConnectionId = None
        self._CustomerGatewayVendor = None
        self._InterfaceName = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def VpnConnectionId(self):
        return self._VpnConnectionId

    @VpnConnectionId.setter
    def VpnConnectionId(self, VpnConnectionId):
        self._VpnConnectionId = VpnConnectionId

    @property
    def CustomerGatewayVendor(self):
        return self._CustomerGatewayVendor

    @CustomerGatewayVendor.setter
    def CustomerGatewayVendor(self, CustomerGatewayVendor):
        self._CustomerGatewayVendor = CustomerGatewayVendor

    @property
    def InterfaceName(self):
        return self._InterfaceName

    @InterfaceName.setter
    def InterfaceName(self, InterfaceName):
        self._InterfaceName = InterfaceName


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        self._VpnConnectionId = params.get("VpnConnectionId")
        if params.get("CustomerGatewayVendor") is not None:
            self._CustomerGatewayVendor = CustomerGatewayVendor()
            self._CustomerGatewayVendor._deserialize(params.get("CustomerGatewayVendor"))
        self._InterfaceName = params.get("InterfaceName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DownloadCustomerGatewayConfigurationResponse(AbstractModel):
    """DownloadCustomerGatewayConfiguration返回参数结构体

    """

    def __init__(self):
        r"""
        :param _CustomerGatewayConfiguration: XML格式配置信息。
        :type CustomerGatewayConfiguration: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._CustomerGatewayConfiguration = None
        self._RequestId = None

    @property
    def CustomerGatewayConfiguration(self):
        return self._CustomerGatewayConfiguration

    @CustomerGatewayConfiguration.setter
    def CustomerGatewayConfiguration(self, CustomerGatewayConfiguration):
        self._CustomerGatewayConfiguration = CustomerGatewayConfiguration

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._CustomerGatewayConfiguration = params.get("CustomerGatewayConfiguration")
        self._RequestId = params.get("RequestId")


class DownloadVpnGatewaySslClientCertRequest(AbstractModel):
    """DownloadVpnGatewaySslClientCert请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SslVpnClientId: SSL-VPN-CLIENT 实例ID。不可以和SslVpnClientIds同时使用。
        :type SslVpnClientId: str
        :param _SamlToken: SAML Token（SAML令牌）。
        :type SamlToken: str
        :param _IsVpnPortal: VPN门户网站使用。默认False
        :type IsVpnPortal: bool
        :param _SslVpnClientIds: SSL-VPN-CLIENT 实例ID列表。批量下载时使用。不可以和SslVpnClientId同时使用。
        :type SslVpnClientIds: list of str
        """
        self._SslVpnClientId = None
        self._SamlToken = None
        self._IsVpnPortal = None
        self._SslVpnClientIds = None

    @property
    def SslVpnClientId(self):
        return self._SslVpnClientId

    @SslVpnClientId.setter
    def SslVpnClientId(self, SslVpnClientId):
        self._SslVpnClientId = SslVpnClientId

    @property
    def SamlToken(self):
        return self._SamlToken

    @SamlToken.setter
    def SamlToken(self, SamlToken):
        self._SamlToken = SamlToken

    @property
    def IsVpnPortal(self):
        return self._IsVpnPortal

    @IsVpnPortal.setter
    def IsVpnPortal(self, IsVpnPortal):
        self._IsVpnPortal = IsVpnPortal

    @property
    def SslVpnClientIds(self):
        return self._SslVpnClientIds

    @SslVpnClientIds.setter
    def SslVpnClientIds(self, SslVpnClientIds):
        self._SslVpnClientIds = SslVpnClientIds


    def _deserialize(self, params):
        self._SslVpnClientId = params.get("SslVpnClientId")
        self._SamlToken = params.get("SamlToken")
        self._IsVpnPortal = params.get("IsVpnPortal")
        self._SslVpnClientIds = params.get("SslVpnClientIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DownloadVpnGatewaySslClientCertResponse(AbstractModel):
    """DownloadVpnGatewaySslClientCert返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SslClientConfigsSet: SSL-VPN 客户端配置。
        :type SslClientConfigsSet: str
        :param _SslClientConfig: SSL-VPN 客户端配置。
        :type SslClientConfig: list of SslClientConfig
        :param _Authenticated: 是否鉴权成功 只有传入SamlToken 才生效，1为成功，0为失败。
        :type Authenticated: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SslClientConfigsSet = None
        self._SslClientConfig = None
        self._Authenticated = None
        self._RequestId = None

    @property
    def SslClientConfigsSet(self):
        return self._SslClientConfigsSet

    @SslClientConfigsSet.setter
    def SslClientConfigsSet(self, SslClientConfigsSet):
        self._SslClientConfigsSet = SslClientConfigsSet

    @property
    def SslClientConfig(self):
        return self._SslClientConfig

    @SslClientConfig.setter
    def SslClientConfig(self, SslClientConfig):
        self._SslClientConfig = SslClientConfig

    @property
    def Authenticated(self):
        return self._Authenticated

    @Authenticated.setter
    def Authenticated(self, Authenticated):
        self._Authenticated = Authenticated

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._SslClientConfigsSet = params.get("SslClientConfigsSet")
        if params.get("SslClientConfig") is not None:
            self._SslClientConfig = []
            for item in params.get("SslClientConfig"):
                obj = SslClientConfig()
                obj._deserialize(item)
                self._SslClientConfig.append(obj)
        self._Authenticated = params.get("Authenticated")
        self._RequestId = params.get("RequestId")


class EnableCcnRoutesRequest(AbstractModel):
    """EnableCcnRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnId: CCN实例ID。形如：ccn-f49l6u0z。
        :type CcnId: str
        :param _RouteIds: CCN路由策略唯一ID。形如：ccnr-f49l6u0z。
        :type RouteIds: list of str
        """
        self._CcnId = None
        self._RouteIds = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def RouteIds(self):
        return self._RouteIds

    @RouteIds.setter
    def RouteIds(self, RouteIds):
        self._RouteIds = RouteIds


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        self._RouteIds = params.get("RouteIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class EnableCcnRoutesResponse(AbstractModel):
    """EnableCcnRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class EnableFlowLogsRequest(AbstractModel):
    """EnableFlowLogs请求参数结构体

    """

    def __init__(self):
        r"""
        :param _FlowLogIds: 流日志Id。
        :type FlowLogIds: list of str
        """
        self._FlowLogIds = None

    @property
    def FlowLogIds(self):
        return self._FlowLogIds

    @FlowLogIds.setter
    def FlowLogIds(self, FlowLogIds):
        self._FlowLogIds = FlowLogIds


    def _deserialize(self, params):
        self._FlowLogIds = params.get("FlowLogIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class EnableFlowLogsResponse(AbstractModel):
    """EnableFlowLogs返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class EnableGatewayFlowMonitorRequest(AbstractModel):
    """EnableGatewayFlowMonitor请求参数结构体

    """

    def __init__(self):
        r"""
        :param _GatewayId: 网关实例ID，目前我们支持的网关实例有，
专线网关实例ID，形如，`dcg-ltjahce6`；
Nat网关实例ID，形如，`nat-ltjahce6`；
VPN网关实例ID，形如，`vpn-ltjahce6`。
        :type GatewayId: str
        """
        self._GatewayId = None

    @property
    def GatewayId(self):
        return self._GatewayId

    @GatewayId.setter
    def GatewayId(self, GatewayId):
        self._GatewayId = GatewayId


    def _deserialize(self, params):
        self._GatewayId = params.get("GatewayId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class EnableGatewayFlowMonitorResponse(AbstractModel):
    """EnableGatewayFlowMonitor返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class EnableRoutesRequest(AbstractModel):
    """EnableRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RouteTableId: 路由表唯一ID。
        :type RouteTableId: str
        :param _RouteIds: 路由策略ID。不能和RouteItemIds同时使用，但至少输入一个。该参数取值可通过查询路由列表（[DescribeRouteTables](https://cloud.tencent.com/document/product/215/15763)）获取。
        :type RouteIds: list of int non-negative
        :param _RouteItemIds: 路由策略唯一ID。不能和RouteIds同时使用，但至少输入一个。该参数取值可通过查询路由列表（[DescribeRouteTables](https://cloud.tencent.com/document/product/215/15763)）获取。
        :type RouteItemIds: list of str
        """
        self._RouteTableId = None
        self._RouteIds = None
        self._RouteItemIds = None

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId

    @property
    def RouteIds(self):
        return self._RouteIds

    @RouteIds.setter
    def RouteIds(self, RouteIds):
        self._RouteIds = RouteIds

    @property
    def RouteItemIds(self):
        return self._RouteItemIds

    @RouteItemIds.setter
    def RouteItemIds(self, RouteItemIds):
        self._RouteItemIds = RouteItemIds


    def _deserialize(self, params):
        self._RouteTableId = params.get("RouteTableId")
        self._RouteIds = params.get("RouteIds")
        self._RouteItemIds = params.get("RouteItemIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class EnableRoutesResponse(AbstractModel):
    """EnableRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class EnableSnapshotPoliciesRequest(AbstractModel):
    """EnableSnapshotPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SnapshotPolicyIds: 快照策略Id。
        :type SnapshotPolicyIds: list of str
        """
        self._SnapshotPolicyIds = None

    @property
    def SnapshotPolicyIds(self):
        return self._SnapshotPolicyIds

    @SnapshotPolicyIds.setter
    def SnapshotPolicyIds(self, SnapshotPolicyIds):
        self._SnapshotPolicyIds = SnapshotPolicyIds


    def _deserialize(self, params):
        self._SnapshotPolicyIds = params.get("SnapshotPolicyIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class EnableSnapshotPoliciesResponse(AbstractModel):
    """EnableSnapshotPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class EnableVpcEndPointConnectRequest(AbstractModel):
    """EnableVpcEndPointConnect请求参数结构体

    """

    def __init__(self):
        r"""
        :param _EndPointServiceId: 终端节点服务ID。
        :type EndPointServiceId: str
        :param _EndPointId: 终端节点ID。
        :type EndPointId: list of str
        :param _AcceptFlag: 是否接受终端节点连接请求。
<li> true：自动接受。</li> <li> false：不自动接受。</li>
        :type AcceptFlag: bool
        """
        self._EndPointServiceId = None
        self._EndPointId = None
        self._AcceptFlag = None

    @property
    def EndPointServiceId(self):
        return self._EndPointServiceId

    @EndPointServiceId.setter
    def EndPointServiceId(self, EndPointServiceId):
        self._EndPointServiceId = EndPointServiceId

    @property
    def EndPointId(self):
        return self._EndPointId

    @EndPointId.setter
    def EndPointId(self, EndPointId):
        self._EndPointId = EndPointId

    @property
    def AcceptFlag(self):
        return self._AcceptFlag

    @AcceptFlag.setter
    def AcceptFlag(self, AcceptFlag):
        self._AcceptFlag = AcceptFlag


    def _deserialize(self, params):
        self._EndPointServiceId = params.get("EndPointServiceId")
        self._EndPointId = params.get("EndPointId")
        self._AcceptFlag = params.get("AcceptFlag")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class EnableVpcEndPointConnectResponse(AbstractModel):
    """EnableVpcEndPointConnect返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class EnableVpnGatewaySslClientCertRequest(AbstractModel):
    """EnableVpnGatewaySslClientCert请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SslVpnClientId: SSL-VPN-CLIENT 实例ID。不可和SslVpnClientIds同时使用。
        :type SslVpnClientId: str
        :param _SslVpnClientIds: SSL-VPN-CLIENT 实例ID列表。批量启用时使用。不可和SslVpnClientId同时使用。
        :type SslVpnClientIds: list of str
        """
        self._SslVpnClientId = None
        self._SslVpnClientIds = None

    @property
    def SslVpnClientId(self):
        return self._SslVpnClientId

    @SslVpnClientId.setter
    def SslVpnClientId(self, SslVpnClientId):
        self._SslVpnClientId = SslVpnClientId

    @property
    def SslVpnClientIds(self):
        return self._SslVpnClientIds

    @SslVpnClientIds.setter
    def SslVpnClientIds(self, SslVpnClientIds):
        self._SslVpnClientIds = SslVpnClientIds


    def _deserialize(self, params):
        self._SslVpnClientId = params.get("SslVpnClientId")
        self._SslVpnClientIds = params.get("SslVpnClientIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class EnableVpnGatewaySslClientCertResponse(AbstractModel):
    """EnableVpnGatewaySslClientCert返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步任务实例ID。
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class EndPoint(AbstractModel):
    """终端节点详情。

    """

    def __init__(self):
        r"""
        :param _EndPointId: 终端节点ID。
        :type EndPointId: str
        :param _VpcId: VPCID。
        :type VpcId: str
        :param _SubnetId: 子网ID。
        :type SubnetId: str
        :param _EndPointOwner: APPID。
        :type EndPointOwner: str
        :param _EndPointName: 终端节点名称。
        :type EndPointName: str
        :param _ServiceVpcId: 终端节点服务的VPCID。
        :type ServiceVpcId: str
        :param _ServiceVip: 终端节点服务的VIP。
        :type ServiceVip: str
        :param _EndPointServiceId: 终端节点服务的ID。
        :type EndPointServiceId: str
        :param _EndPointVip: 终端节点的VIP。
        :type EndPointVip: str
        :param _State: 终端节点状态，ACTIVE：可用，PENDING：待接受，ACCEPTING：接受中，REJECTED：已拒绝，FAILED：失败。
        :type State: str
        :param _CreateTime: 创建时间。
        :type CreateTime: str
        :param _GroupSet: 终端节点绑定的安全组实例ID列表。
        :type GroupSet: list of str
        :param _ServiceName: 终端节点服务名称。
注意：此字段可能返回 null，表示取不到有效值。
        :type ServiceName: str
        """
        self._EndPointId = None
        self._VpcId = None
        self._SubnetId = None
        self._EndPointOwner = None
        self._EndPointName = None
        self._ServiceVpcId = None
        self._ServiceVip = None
        self._EndPointServiceId = None
        self._EndPointVip = None
        self._State = None
        self._CreateTime = None
        self._GroupSet = None
        self._ServiceName = None

    @property
    def EndPointId(self):
        return self._EndPointId

    @EndPointId.setter
    def EndPointId(self, EndPointId):
        self._EndPointId = EndPointId

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def EndPointOwner(self):
        return self._EndPointOwner

    @EndPointOwner.setter
    def EndPointOwner(self, EndPointOwner):
        self._EndPointOwner = EndPointOwner

    @property
    def EndPointName(self):
        return self._EndPointName

    @EndPointName.setter
    def EndPointName(self, EndPointName):
        self._EndPointName = EndPointName

    @property
    def ServiceVpcId(self):
        return self._ServiceVpcId

    @ServiceVpcId.setter
    def ServiceVpcId(self, ServiceVpcId):
        self._ServiceVpcId = ServiceVpcId

    @property
    def ServiceVip(self):
        return self._ServiceVip

    @ServiceVip.setter
    def ServiceVip(self, ServiceVip):
        self._ServiceVip = ServiceVip

    @property
    def EndPointServiceId(self):
        return self._EndPointServiceId

    @EndPointServiceId.setter
    def EndPointServiceId(self, EndPointServiceId):
        self._EndPointServiceId = EndPointServiceId

    @property
    def EndPointVip(self):
        return self._EndPointVip

    @EndPointVip.setter
    def EndPointVip(self, EndPointVip):
        self._EndPointVip = EndPointVip

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def GroupSet(self):
        return self._GroupSet

    @GroupSet.setter
    def GroupSet(self, GroupSet):
        self._GroupSet = GroupSet

    @property
    def ServiceName(self):
        return self._ServiceName

    @ServiceName.setter
    def ServiceName(self, ServiceName):
        self._ServiceName = ServiceName


    def _deserialize(self, params):
        self._EndPointId = params.get("EndPointId")
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._EndPointOwner = params.get("EndPointOwner")
        self._EndPointName = params.get("EndPointName")
        self._ServiceVpcId = params.get("ServiceVpcId")
        self._ServiceVip = params.get("ServiceVip")
        self._EndPointServiceId = params.get("EndPointServiceId")
        self._EndPointVip = params.get("EndPointVip")
        self._State = params.get("State")
        self._CreateTime = params.get("CreateTime")
        self._GroupSet = params.get("GroupSet")
        self._ServiceName = params.get("ServiceName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class EndPointService(AbstractModel):
    """终端节点服务对象。

    """

    def __init__(self):
        r"""
        :param _EndPointServiceId: 终端节点服务ID
        :type EndPointServiceId: str
        :param _VpcId: VPCID。
        :type VpcId: str
        :param _ServiceOwner: APPID。
        :type ServiceOwner: str
        :param _ServiceName: 终端节点服务名称。
        :type ServiceName: str
        :param _ServiceVip: 后端服务的VIP。
        :type ServiceVip: str
        :param _ServiceInstanceId: 后端服务的ID，比如lb-xxx。
        :type ServiceInstanceId: str
        :param _AutoAcceptFlag: 是否自动接受。
        :type AutoAcceptFlag: bool
        :param _EndPointCount: 关联的终端节点个数。
注意：此字段可能返回 null，表示取不到有效值。
        :type EndPointCount: int
        :param _EndPointSet: 终端节点对象数组。
注意：此字段可能返回 null，表示取不到有效值。
        :type EndPointSet: list of EndPoint
        :param _CreateTime: 创建时间。
        :type CreateTime: str
        :param _ServiceType: 挂载的PAAS服务类型，CLB,CDB,CRS
        :type ServiceType: str
        :param _ServiceUin: Uin
注意：此字段可能返回 null，表示取不到有效值。
        :type ServiceUin: str
        :param _BusinessIpType: 服务IP类型
注意：此字段可能返回 null，表示取不到有效值。
        :type BusinessIpType: int
        """
        self._EndPointServiceId = None
        self._VpcId = None
        self._ServiceOwner = None
        self._ServiceName = None
        self._ServiceVip = None
        self._ServiceInstanceId = None
        self._AutoAcceptFlag = None
        self._EndPointCount = None
        self._EndPointSet = None
        self._CreateTime = None
        self._ServiceType = None
        self._ServiceUin = None
        self._BusinessIpType = None

    @property
    def EndPointServiceId(self):
        return self._EndPointServiceId

    @EndPointServiceId.setter
    def EndPointServiceId(self, EndPointServiceId):
        self._EndPointServiceId = EndPointServiceId

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def ServiceOwner(self):
        return self._ServiceOwner

    @ServiceOwner.setter
    def ServiceOwner(self, ServiceOwner):
        self._ServiceOwner = ServiceOwner

    @property
    def ServiceName(self):
        return self._ServiceName

    @ServiceName.setter
    def ServiceName(self, ServiceName):
        self._ServiceName = ServiceName

    @property
    def ServiceVip(self):
        return self._ServiceVip

    @ServiceVip.setter
    def ServiceVip(self, ServiceVip):
        self._ServiceVip = ServiceVip

    @property
    def ServiceInstanceId(self):
        return self._ServiceInstanceId

    @ServiceInstanceId.setter
    def ServiceInstanceId(self, ServiceInstanceId):
        self._ServiceInstanceId = ServiceInstanceId

    @property
    def AutoAcceptFlag(self):
        return self._AutoAcceptFlag

    @AutoAcceptFlag.setter
    def AutoAcceptFlag(self, AutoAcceptFlag):
        self._AutoAcceptFlag = AutoAcceptFlag

    @property
    def EndPointCount(self):
        return self._EndPointCount

    @EndPointCount.setter
    def EndPointCount(self, EndPointCount):
        self._EndPointCount = EndPointCount

    @property
    def EndPointSet(self):
        return self._EndPointSet

    @EndPointSet.setter
    def EndPointSet(self, EndPointSet):
        self._EndPointSet = EndPointSet

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ServiceType(self):
        return self._ServiceType

    @ServiceType.setter
    def ServiceType(self, ServiceType):
        self._ServiceType = ServiceType

    @property
    def ServiceUin(self):
        return self._ServiceUin

    @ServiceUin.setter
    def ServiceUin(self, ServiceUin):
        self._ServiceUin = ServiceUin

    @property
    def BusinessIpType(self):
        return self._BusinessIpType

    @BusinessIpType.setter
    def BusinessIpType(self, BusinessIpType):
        self._BusinessIpType = BusinessIpType


    def _deserialize(self, params):
        self._EndPointServiceId = params.get("EndPointServiceId")
        self._VpcId = params.get("VpcId")
        self._ServiceOwner = params.get("ServiceOwner")
        self._ServiceName = params.get("ServiceName")
        self._ServiceVip = params.get("ServiceVip")
        self._ServiceInstanceId = params.get("ServiceInstanceId")
        self._AutoAcceptFlag = params.get("AutoAcceptFlag")
        self._EndPointCount = params.get("EndPointCount")
        if params.get("EndPointSet") is not None:
            self._EndPointSet = []
            for item in params.get("EndPointSet"):
                obj = EndPoint()
                obj._deserialize(item)
                self._EndPointSet.append(obj)
        self._CreateTime = params.get("CreateTime")
        self._ServiceType = params.get("ServiceType")
        self._ServiceUin = params.get("ServiceUin")
        self._BusinessIpType = params.get("BusinessIpType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Filter(AbstractModel):
    """过滤器

    """

    def __init__(self):
        r"""
        :param _Name: 属性名称, 若存在多个Filter时，Filter间的关系为逻辑与（AND）关系。
        :type Name: str
        :param _Values: 属性值, 若同一个Filter存在多个Values，同一Filter下Values间的关系为逻辑或（OR）关系。当值类型为布尔类型时，可直接取值为字符串"TRUE"或 "FALSE"。
        :type Values: list of str
        """
        self._Name = None
        self._Values = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Values(self):
        return self._Values

    @Values.setter
    def Values(self, Values):
        self._Values = Values


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Values = params.get("Values")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FilterObject(AbstractModel):
    """过滤器键值对

    """

    def __init__(self):
        r"""
        :param _Name: 属性名称, 若存在多个Filter时，Filter间的关系为逻辑与（AND）关系。
        :type Name: str
        :param _Values: 属性值, 若同一个Filter存在多个Values，同一Filter下Values间的关系为逻辑或（OR）关系。
        :type Values: list of str
        """
        self._Name = None
        self._Values = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Values(self):
        return self._Values

    @Values.setter
    def Values(self, Values):
        self._Values = Values


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Values = params.get("Values")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FlowLog(AbstractModel):
    """流日志

    """

    def __init__(self):
        r"""
        :param _VpcId: 私用网络ID或者统一ID，建议使用统一ID。
        :type VpcId: str
        :param _FlowLogId: 流日志唯一ID。
        :type FlowLogId: str
        :param _FlowLogName: 流日志实例名字。
        :type FlowLogName: str
        :param _ResourceType: 流日志所属资源类型，VPC|SUBNET|NETWORKINTERFACE|CCN|NAT|DCG。
        :type ResourceType: str
        :param _ResourceId: 资源唯一ID。
        :type ResourceId: str
        :param _TrafficType: 流日志采集类型，ACCEPT|REJECT|ALL。
        :type TrafficType: str
        :param _CloudLogId: 流日志存储ID。
        :type CloudLogId: str
        :param _CloudLogState: 流日志存储ID状态。
        :type CloudLogState: str
        :param _FlowLogDescription: 流日志描述信息。
        :type FlowLogDescription: str
        :param _CreatedTime: 流日志创建时间。
        :type CreatedTime: str
        :param _TagSet: 标签列表，例如：[{"Key": "city", "Value": "shanghai"}]。
        :type TagSet: list of Tag
        :param _Enable: 是否启用，true-启用，false-停用。
        :type Enable: bool
        :param _StorageType: 消费端类型：cls、ckafka。
注意：此字段可能返回 null，表示取不到有效值。
        :type StorageType: str
        :param _FlowLogStorage: 消费端信息，当消费端类型为ckafka时返回。
注意：此字段可能返回 null，表示取不到有效值。
        :type FlowLogStorage: :class:`tencentcloud.vpc.v20170312.models.FlowLogStorage`
        :param _CloudLogRegion: 流日志存储ID对应的地域信息。
注意：此字段可能返回 null，表示取不到有效值。
        :type CloudLogRegion: str
        """
        self._VpcId = None
        self._FlowLogId = None
        self._FlowLogName = None
        self._ResourceType = None
        self._ResourceId = None
        self._TrafficType = None
        self._CloudLogId = None
        self._CloudLogState = None
        self._FlowLogDescription = None
        self._CreatedTime = None
        self._TagSet = None
        self._Enable = None
        self._StorageType = None
        self._FlowLogStorage = None
        self._CloudLogRegion = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def FlowLogId(self):
        return self._FlowLogId

    @FlowLogId.setter
    def FlowLogId(self, FlowLogId):
        self._FlowLogId = FlowLogId

    @property
    def FlowLogName(self):
        return self._FlowLogName

    @FlowLogName.setter
    def FlowLogName(self, FlowLogName):
        self._FlowLogName = FlowLogName

    @property
    def ResourceType(self):
        return self._ResourceType

    @ResourceType.setter
    def ResourceType(self, ResourceType):
        self._ResourceType = ResourceType

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def TrafficType(self):
        return self._TrafficType

    @TrafficType.setter
    def TrafficType(self, TrafficType):
        self._TrafficType = TrafficType

    @property
    def CloudLogId(self):
        return self._CloudLogId

    @CloudLogId.setter
    def CloudLogId(self, CloudLogId):
        self._CloudLogId = CloudLogId

    @property
    def CloudLogState(self):
        return self._CloudLogState

    @CloudLogState.setter
    def CloudLogState(self, CloudLogState):
        self._CloudLogState = CloudLogState

    @property
    def FlowLogDescription(self):
        return self._FlowLogDescription

    @FlowLogDescription.setter
    def FlowLogDescription(self, FlowLogDescription):
        self._FlowLogDescription = FlowLogDescription

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def TagSet(self):
        return self._TagSet

    @TagSet.setter
    def TagSet(self, TagSet):
        self._TagSet = TagSet

    @property
    def Enable(self):
        return self._Enable

    @Enable.setter
    def Enable(self, Enable):
        self._Enable = Enable

    @property
    def StorageType(self):
        return self._StorageType

    @StorageType.setter
    def StorageType(self, StorageType):
        self._StorageType = StorageType

    @property
    def FlowLogStorage(self):
        return self._FlowLogStorage

    @FlowLogStorage.setter
    def FlowLogStorage(self, FlowLogStorage):
        self._FlowLogStorage = FlowLogStorage

    @property
    def CloudLogRegion(self):
        return self._CloudLogRegion

    @CloudLogRegion.setter
    def CloudLogRegion(self, CloudLogRegion):
        self._CloudLogRegion = CloudLogRegion


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._FlowLogId = params.get("FlowLogId")
        self._FlowLogName = params.get("FlowLogName")
        self._ResourceType = params.get("ResourceType")
        self._ResourceId = params.get("ResourceId")
        self._TrafficType = params.get("TrafficType")
        self._CloudLogId = params.get("CloudLogId")
        self._CloudLogState = params.get("CloudLogState")
        self._FlowLogDescription = params.get("FlowLogDescription")
        self._CreatedTime = params.get("CreatedTime")
        if params.get("TagSet") is not None:
            self._TagSet = []
            for item in params.get("TagSet"):
                obj = Tag()
                obj._deserialize(item)
                self._TagSet.append(obj)
        self._Enable = params.get("Enable")
        self._StorageType = params.get("StorageType")
        if params.get("FlowLogStorage") is not None:
            self._FlowLogStorage = FlowLogStorage()
            self._FlowLogStorage._deserialize(params.get("FlowLogStorage"))
        self._CloudLogRegion = params.get("CloudLogRegion")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FlowLogStorage(AbstractModel):
    """流日志存储信息

    """

    def __init__(self):
        r"""
        :param _StorageId: 存储实例Id，当流日志存储类型为ckafka时，必填。
        :type StorageId: str
        :param _StorageTopic: 主题Id，当流日志存储类型为ckafka时，必填。
注意：此字段可能返回 null，表示取不到有效值。
        :type StorageTopic: str
        """
        self._StorageId = None
        self._StorageTopic = None

    @property
    def StorageId(self):
        return self._StorageId

    @StorageId.setter
    def StorageId(self, StorageId):
        self._StorageId = StorageId

    @property
    def StorageTopic(self):
        return self._StorageTopic

    @StorageTopic.setter
    def StorageTopic(self, StorageTopic):
        self._StorageTopic = StorageTopic


    def _deserialize(self, params):
        self._StorageId = params.get("StorageId")
        self._StorageTopic = params.get("StorageTopic")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class GatewayFlowMonitorDetail(AbstractModel):
    """网关流量监控明细

    """

    def __init__(self):
        r"""
        :param _PrivateIpAddress: 来源`IP`。
        :type PrivateIpAddress: str
        :param _InPkg: 入包量。
        :type InPkg: int
        :param _OutPkg: 出包量。
        :type OutPkg: int
        :param _InTraffic: 入流量，单位：`Byte`。
        :type InTraffic: int
        :param _OutTraffic: 出流量，单位：`Byte`。
        :type OutTraffic: int
        """
        self._PrivateIpAddress = None
        self._InPkg = None
        self._OutPkg = None
        self._InTraffic = None
        self._OutTraffic = None

    @property
    def PrivateIpAddress(self):
        return self._PrivateIpAddress

    @PrivateIpAddress.setter
    def PrivateIpAddress(self, PrivateIpAddress):
        self._PrivateIpAddress = PrivateIpAddress

    @property
    def InPkg(self):
        return self._InPkg

    @InPkg.setter
    def InPkg(self, InPkg):
        self._InPkg = InPkg

    @property
    def OutPkg(self):
        return self._OutPkg

    @OutPkg.setter
    def OutPkg(self, OutPkg):
        self._OutPkg = OutPkg

    @property
    def InTraffic(self):
        return self._InTraffic

    @InTraffic.setter
    def InTraffic(self, InTraffic):
        self._InTraffic = InTraffic

    @property
    def OutTraffic(self):
        return self._OutTraffic

    @OutTraffic.setter
    def OutTraffic(self, OutTraffic):
        self._OutTraffic = OutTraffic


    def _deserialize(self, params):
        self._PrivateIpAddress = params.get("PrivateIpAddress")
        self._InPkg = params.get("InPkg")
        self._OutPkg = params.get("OutPkg")
        self._InTraffic = params.get("InTraffic")
        self._OutTraffic = params.get("OutTraffic")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class GatewayQos(AbstractModel):
    """网关流控带宽信息

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。
        :type VpcId: str
        :param _IpAddress: 云服务器内网IP。
        :type IpAddress: str
        :param _Bandwidth: 流控带宽值。
        :type Bandwidth: int
        :param _CreateTime: 创建时间。
        :type CreateTime: str
        """
        self._VpcId = None
        self._IpAddress = None
        self._Bandwidth = None
        self._CreateTime = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def IpAddress(self):
        return self._IpAddress

    @IpAddress.setter
    def IpAddress(self, IpAddress):
        self._IpAddress = IpAddress

    @property
    def Bandwidth(self):
        return self._Bandwidth

    @Bandwidth.setter
    def Bandwidth(self, Bandwidth):
        self._Bandwidth = Bandwidth

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._IpAddress = params.get("IpAddress")
        self._Bandwidth = params.get("Bandwidth")
        self._CreateTime = params.get("CreateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class GenerateVpnConnectionDefaultHealthCheckIpRequest(AbstractModel):
    """GenerateVpnConnectionDefaultHealthCheckIp请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关id， 例如：vpngw-1w9tue3d
        :type VpnGatewayId: str
        """
        self._VpnGatewayId = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class GenerateVpnConnectionDefaultHealthCheckIpResponse(AbstractModel):
    """GenerateVpnConnectionDefaultHealthCheckIp返回参数结构体

    """

    def __init__(self):
        r"""
        :param _HealthCheckLocalIp: VPN通道健康检查本端ip
        :type HealthCheckLocalIp: str
        :param _HealthCheckRemoteIp: VPN通道健康检查对端ip
        :type HealthCheckRemoteIp: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._HealthCheckLocalIp = None
        self._HealthCheckRemoteIp = None
        self._RequestId = None

    @property
    def HealthCheckLocalIp(self):
        return self._HealthCheckLocalIp

    @HealthCheckLocalIp.setter
    def HealthCheckLocalIp(self, HealthCheckLocalIp):
        self._HealthCheckLocalIp = HealthCheckLocalIp

    @property
    def HealthCheckRemoteIp(self):
        return self._HealthCheckRemoteIp

    @HealthCheckRemoteIp.setter
    def HealthCheckRemoteIp(self, HealthCheckRemoteIp):
        self._HealthCheckRemoteIp = HealthCheckRemoteIp

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._HealthCheckLocalIp = params.get("HealthCheckLocalIp")
        self._HealthCheckRemoteIp = params.get("HealthCheckRemoteIp")
        self._RequestId = params.get("RequestId")


class GetCcnRegionBandwidthLimitsRequest(AbstractModel):
    """GetCcnRegionBandwidthLimits请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnId: CCN实例ID。形如：ccn-f49l6u0z。
        :type CcnId: str
        :param _Filters: 过滤条件。
<li>sregion - String - （过滤条件）源地域，形如：ap-guangzhou。</li>
<li>dregion - String - （过滤条件）目的地域，形如：ap-shanghai-bm</li>
        :type Filters: list of Filter
        :param _SortedBy: 排序条件，目前支持带宽（`BandwidthLimit`）和过期时间（`ExpireTime`），默认按 `ExpireTime` 排序。
        :type SortedBy: str
        :param _Offset: 偏移量。
        :type Offset: int
        :param _Limit: 返回数量。
        :type Limit: int
        :param _OrderBy: 排序方式，'ASC':升序,'DESC':降序。默认按'ASC'排序。
        :type OrderBy: str
        """
        self._CcnId = None
        self._Filters = None
        self._SortedBy = None
        self._Offset = None
        self._Limit = None
        self._OrderBy = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def SortedBy(self):
        return self._SortedBy

    @SortedBy.setter
    def SortedBy(self, SortedBy):
        self._SortedBy = SortedBy

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def OrderBy(self):
        return self._OrderBy

    @OrderBy.setter
    def OrderBy(self, OrderBy):
        self._OrderBy = OrderBy


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._SortedBy = params.get("SortedBy")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._OrderBy = params.get("OrderBy")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class GetCcnRegionBandwidthLimitsResponse(AbstractModel):
    """GetCcnRegionBandwidthLimits返回参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnBandwidthSet: 云联网（CCN）各地域出带宽详情。
注意：此字段可能返回 null，表示取不到有效值。
        :type CcnBandwidthSet: list of CcnBandwidthInfo
        :param _TotalCount: 符合条件的对象数。
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._CcnBandwidthSet = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def CcnBandwidthSet(self):
        return self._CcnBandwidthSet

    @CcnBandwidthSet.setter
    def CcnBandwidthSet(self, CcnBandwidthSet):
        self._CcnBandwidthSet = CcnBandwidthSet

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("CcnBandwidthSet") is not None:
            self._CcnBandwidthSet = []
            for item in params.get("CcnBandwidthSet"):
                obj = CcnBandwidthInfo()
                obj._deserialize(item)
                self._CcnBandwidthSet.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class HaVip(AbstractModel):
    """描述 HAVIP 信息

    """

    def __init__(self):
        r"""
        :param _HaVipId: `HAVIP`的`ID`，是`HAVIP`的唯一标识。
        :type HaVipId: str
        :param _HaVipName: `HAVIP`名称。
        :type HaVipName: str
        :param _Vip: 虚拟IP地址。
        :type Vip: str
        :param _VpcId: `HAVIP`所在私有网络`ID`。
        :type VpcId: str
        :param _SubnetId: `HAVIP`所在子网`ID`。
        :type SubnetId: str
        :param _NetworkInterfaceId: `HAVIP`关联弹性网卡`ID`。
        :type NetworkInterfaceId: str
        :param _InstanceId: 被绑定的实例`ID`。
        :type InstanceId: str
        :param _AddressIp: 绑定`EIP`。
        :type AddressIp: str
        :param _State: 状态：
<li>`AVAILABLE`：运行中</li>
<li>`UNBIND`：未绑定</li>
        :type State: str
        :param _CreatedTime: 创建时间。
        :type CreatedTime: str
        :param _Business: 使用havip的业务标识。
        :type Business: str
        """
        self._HaVipId = None
        self._HaVipName = None
        self._Vip = None
        self._VpcId = None
        self._SubnetId = None
        self._NetworkInterfaceId = None
        self._InstanceId = None
        self._AddressIp = None
        self._State = None
        self._CreatedTime = None
        self._Business = None

    @property
    def HaVipId(self):
        return self._HaVipId

    @HaVipId.setter
    def HaVipId(self, HaVipId):
        self._HaVipId = HaVipId

    @property
    def HaVipName(self):
        return self._HaVipName

    @HaVipName.setter
    def HaVipName(self, HaVipName):
        self._HaVipName = HaVipName

    @property
    def Vip(self):
        return self._Vip

    @Vip.setter
    def Vip(self, Vip):
        self._Vip = Vip

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def AddressIp(self):
        return self._AddressIp

    @AddressIp.setter
    def AddressIp(self, AddressIp):
        self._AddressIp = AddressIp

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def Business(self):
        return self._Business

    @Business.setter
    def Business(self, Business):
        self._Business = Business


    def _deserialize(self, params):
        self._HaVipId = params.get("HaVipId")
        self._HaVipName = params.get("HaVipName")
        self._Vip = params.get("Vip")
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        self._InstanceId = params.get("InstanceId")
        self._AddressIp = params.get("AddressIp")
        self._State = params.get("State")
        self._CreatedTime = params.get("CreatedTime")
        self._Business = params.get("Business")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class HaVipAssociateAddressIpRequest(AbstractModel):
    """HaVipAssociateAddressIp请求参数结构体

    """

    def __init__(self):
        r"""
        :param _HaVipId: `HAVIP`唯一`ID`，形如：`havip-9o233uri`。必须是没有绑定`EIP`的`HAVIP`。
        :type HaVipId: str
        :param _AddressIp: 弹性公网`IP`。必须是没有绑定`HAVIP`的`EIP`。
        :type AddressIp: str
        """
        self._HaVipId = None
        self._AddressIp = None

    @property
    def HaVipId(self):
        return self._HaVipId

    @HaVipId.setter
    def HaVipId(self, HaVipId):
        self._HaVipId = HaVipId

    @property
    def AddressIp(self):
        return self._AddressIp

    @AddressIp.setter
    def AddressIp(self, AddressIp):
        self._AddressIp = AddressIp


    def _deserialize(self, params):
        self._HaVipId = params.get("HaVipId")
        self._AddressIp = params.get("AddressIp")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class HaVipAssociateAddressIpResponse(AbstractModel):
    """HaVipAssociateAddressIp返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class HaVipDisassociateAddressIpRequest(AbstractModel):
    """HaVipDisassociateAddressIp请求参数结构体

    """

    def __init__(self):
        r"""
        :param _HaVipId: `HAVIP`唯一`ID`，形如：`havip-9o233uri`。必须是已绑定`EIP`的`HAVIP`。
        :type HaVipId: str
        """
        self._HaVipId = None

    @property
    def HaVipId(self):
        return self._HaVipId

    @HaVipId.setter
    def HaVipId(self, HaVipId):
        self._HaVipId = HaVipId


    def _deserialize(self, params):
        self._HaVipId = params.get("HaVipId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class HaVipDisassociateAddressIpResponse(AbstractModel):
    """HaVipDisassociateAddressIp返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class IKEOptionsSpecification(AbstractModel):
    """IKE配置（Internet Key Exchange，因特网密钥交换），IKE具有一套自我保护机制，用户配置网络安全协议

    """

    def __init__(self):
        r"""
        :param _PropoEncryAlgorithm: 加密算法，可选值：'3DES-CBC', 'AES-CBC-128', 'AES-CBS-192', 'AES-CBC-256', 'DES-CBC'，'SM4', 默认为3DES-CBC
注意：此字段可能返回 null，表示取不到有效值。
        :type PropoEncryAlgorithm: str
        :param _PropoAuthenAlgorithm: 认证算法：可选值：'MD5', 'SHA1'，'SHA-256' 默认为MD5
注意：此字段可能返回 null，表示取不到有效值。
        :type PropoAuthenAlgorithm: str
        :param _ExchangeMode: 协商模式：可选值：'AGGRESSIVE', 'MAIN'，默认为MAIN
注意：此字段可能返回 null，表示取不到有效值。
        :type ExchangeMode: str
        :param _LocalIdentity: 本端标识类型：可选值：'ADDRESS', 'FQDN'，默认为ADDRESS
注意：此字段可能返回 null，表示取不到有效值。
        :type LocalIdentity: str
        :param _RemoteIdentity: 对端标识类型：可选值：'ADDRESS', 'FQDN'，默认为ADDRESS
注意：此字段可能返回 null，表示取不到有效值。
        :type RemoteIdentity: str
        :param _LocalAddress: 本端标识，当LocalIdentity选为ADDRESS时，LocalAddress必填。localAddress默认为vpn网关公网IP
注意：此字段可能返回 null，表示取不到有效值。
        :type LocalAddress: str
        :param _RemoteAddress: 对端标识，当RemoteIdentity选为ADDRESS时，RemoteAddress必填
注意：此字段可能返回 null，表示取不到有效值。
        :type RemoteAddress: str
        :param _LocalFqdnName: 本端标识，当LocalIdentity选为FQDN时，LocalFqdnName必填
注意：此字段可能返回 null，表示取不到有效值。
        :type LocalFqdnName: str
        :param _RemoteFqdnName: 对端标识，当remoteIdentity选为FQDN时，RemoteFqdnName必填
注意：此字段可能返回 null，表示取不到有效值。
        :type RemoteFqdnName: str
        :param _DhGroupName: DH group，指定IKE交换密钥时使用的DH组，可选值：'GROUP1', 'GROUP2', 'GROUP5', 'GROUP14', 'GROUP24'，
注意：此字段可能返回 null，表示取不到有效值。
        :type DhGroupName: str
        :param _IKESaLifetimeSeconds: IKE SA Lifetime，单位：秒，设置IKE SA的生存周期，取值范围：60-604800
注意：此字段可能返回 null，表示取不到有效值。
        :type IKESaLifetimeSeconds: int
        :param _IKEVersion: IKE版本
注意：此字段可能返回 null，表示取不到有效值。
        :type IKEVersion: str
        """
        self._PropoEncryAlgorithm = None
        self._PropoAuthenAlgorithm = None
        self._ExchangeMode = None
        self._LocalIdentity = None
        self._RemoteIdentity = None
        self._LocalAddress = None
        self._RemoteAddress = None
        self._LocalFqdnName = None
        self._RemoteFqdnName = None
        self._DhGroupName = None
        self._IKESaLifetimeSeconds = None
        self._IKEVersion = None

    @property
    def PropoEncryAlgorithm(self):
        return self._PropoEncryAlgorithm

    @PropoEncryAlgorithm.setter
    def PropoEncryAlgorithm(self, PropoEncryAlgorithm):
        self._PropoEncryAlgorithm = PropoEncryAlgorithm

    @property
    def PropoAuthenAlgorithm(self):
        return self._PropoAuthenAlgorithm

    @PropoAuthenAlgorithm.setter
    def PropoAuthenAlgorithm(self, PropoAuthenAlgorithm):
        self._PropoAuthenAlgorithm = PropoAuthenAlgorithm

    @property
    def ExchangeMode(self):
        return self._ExchangeMode

    @ExchangeMode.setter
    def ExchangeMode(self, ExchangeMode):
        self._ExchangeMode = ExchangeMode

    @property
    def LocalIdentity(self):
        return self._LocalIdentity

    @LocalIdentity.setter
    def LocalIdentity(self, LocalIdentity):
        self._LocalIdentity = LocalIdentity

    @property
    def RemoteIdentity(self):
        return self._RemoteIdentity

    @RemoteIdentity.setter
    def RemoteIdentity(self, RemoteIdentity):
        self._RemoteIdentity = RemoteIdentity

    @property
    def LocalAddress(self):
        return self._LocalAddress

    @LocalAddress.setter
    def LocalAddress(self, LocalAddress):
        self._LocalAddress = LocalAddress

    @property
    def RemoteAddress(self):
        return self._RemoteAddress

    @RemoteAddress.setter
    def RemoteAddress(self, RemoteAddress):
        self._RemoteAddress = RemoteAddress

    @property
    def LocalFqdnName(self):
        return self._LocalFqdnName

    @LocalFqdnName.setter
    def LocalFqdnName(self, LocalFqdnName):
        self._LocalFqdnName = LocalFqdnName

    @property
    def RemoteFqdnName(self):
        return self._RemoteFqdnName

    @RemoteFqdnName.setter
    def RemoteFqdnName(self, RemoteFqdnName):
        self._RemoteFqdnName = RemoteFqdnName

    @property
    def DhGroupName(self):
        return self._DhGroupName

    @DhGroupName.setter
    def DhGroupName(self, DhGroupName):
        self._DhGroupName = DhGroupName

    @property
    def IKESaLifetimeSeconds(self):
        return self._IKESaLifetimeSeconds

    @IKESaLifetimeSeconds.setter
    def IKESaLifetimeSeconds(self, IKESaLifetimeSeconds):
        self._IKESaLifetimeSeconds = IKESaLifetimeSeconds

    @property
    def IKEVersion(self):
        return self._IKEVersion

    @IKEVersion.setter
    def IKEVersion(self, IKEVersion):
        self._IKEVersion = IKEVersion


    def _deserialize(self, params):
        self._PropoEncryAlgorithm = params.get("PropoEncryAlgorithm")
        self._PropoAuthenAlgorithm = params.get("PropoAuthenAlgorithm")
        self._ExchangeMode = params.get("ExchangeMode")
        self._LocalIdentity = params.get("LocalIdentity")
        self._RemoteIdentity = params.get("RemoteIdentity")
        self._LocalAddress = params.get("LocalAddress")
        self._RemoteAddress = params.get("RemoteAddress")
        self._LocalFqdnName = params.get("LocalFqdnName")
        self._RemoteFqdnName = params.get("RemoteFqdnName")
        self._DhGroupName = params.get("DhGroupName")
        self._IKESaLifetimeSeconds = params.get("IKESaLifetimeSeconds")
        self._IKEVersion = params.get("IKEVersion")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class IPSECOptionsSpecification(AbstractModel):
    """IPSec配置，腾讯云提供IPSec安全会话设置

    """

    def __init__(self):
        r"""
        :param _EncryptAlgorithm: 加密算法，可选值：'3DES-CBC', 'AES-CBC-128', 'AES-CBC-192', 'AES-CBC-256', 'DES-CBC', 'SM4', 'NULL'， 默认为AES-CBC-128
注意：此字段可能返回 null，表示取不到有效值。
        :type EncryptAlgorithm: str
        :param _IntegrityAlgorith: 认证算法：可选值：'MD5', 'SHA1'，'SHA-256' 默认为
注意：此字段可能返回 null，表示取不到有效值。
        :type IntegrityAlgorith: str
        :param _IPSECSaLifetimeSeconds: IPsec SA lifetime(s)：单位秒，取值范围：180-604800
注意：此字段可能返回 null，表示取不到有效值。
        :type IPSECSaLifetimeSeconds: int
        :param _PfsDhGroup: PFS：可选值：'NULL', 'DH-GROUP1', 'DH-GROUP2', 'DH-GROUP5', 'DH-GROUP14', 'DH-GROUP24'，默认为NULL
注意：此字段可能返回 null，表示取不到有效值。
        :type PfsDhGroup: str
        :param _IPSECSaLifetimeTraffic: IPsec SA lifetime(KB)：单位KB，取值范围：2560-604800
注意：此字段可能返回 null，表示取不到有效值。
        :type IPSECSaLifetimeTraffic: int
        :param _IntegrityAlgorithm: 认证算法：可选值：'MD5', 'SHA1'，'SHA-256' 默认为
注意：此字段可能返回 null，表示取不到有效值。
        :type IntegrityAlgorithm: str
        """
        self._EncryptAlgorithm = None
        self._IntegrityAlgorith = None
        self._IPSECSaLifetimeSeconds = None
        self._PfsDhGroup = None
        self._IPSECSaLifetimeTraffic = None
        self._IntegrityAlgorithm = None

    @property
    def EncryptAlgorithm(self):
        return self._EncryptAlgorithm

    @EncryptAlgorithm.setter
    def EncryptAlgorithm(self, EncryptAlgorithm):
        self._EncryptAlgorithm = EncryptAlgorithm

    @property
    def IntegrityAlgorith(self):
        warnings.warn("parameter `IntegrityAlgorith` is deprecated", DeprecationWarning) 

        return self._IntegrityAlgorith

    @IntegrityAlgorith.setter
    def IntegrityAlgorith(self, IntegrityAlgorith):
        warnings.warn("parameter `IntegrityAlgorith` is deprecated", DeprecationWarning) 

        self._IntegrityAlgorith = IntegrityAlgorith

    @property
    def IPSECSaLifetimeSeconds(self):
        return self._IPSECSaLifetimeSeconds

    @IPSECSaLifetimeSeconds.setter
    def IPSECSaLifetimeSeconds(self, IPSECSaLifetimeSeconds):
        self._IPSECSaLifetimeSeconds = IPSECSaLifetimeSeconds

    @property
    def PfsDhGroup(self):
        return self._PfsDhGroup

    @PfsDhGroup.setter
    def PfsDhGroup(self, PfsDhGroup):
        self._PfsDhGroup = PfsDhGroup

    @property
    def IPSECSaLifetimeTraffic(self):
        return self._IPSECSaLifetimeTraffic

    @IPSECSaLifetimeTraffic.setter
    def IPSECSaLifetimeTraffic(self, IPSECSaLifetimeTraffic):
        self._IPSECSaLifetimeTraffic = IPSECSaLifetimeTraffic

    @property
    def IntegrityAlgorithm(self):
        return self._IntegrityAlgorithm

    @IntegrityAlgorithm.setter
    def IntegrityAlgorithm(self, IntegrityAlgorithm):
        self._IntegrityAlgorithm = IntegrityAlgorithm


    def _deserialize(self, params):
        self._EncryptAlgorithm = params.get("EncryptAlgorithm")
        self._IntegrityAlgorith = params.get("IntegrityAlgorith")
        self._IPSECSaLifetimeSeconds = params.get("IPSECSaLifetimeSeconds")
        self._PfsDhGroup = params.get("PfsDhGroup")
        self._IPSECSaLifetimeTraffic = params.get("IPSECSaLifetimeTraffic")
        self._IntegrityAlgorithm = params.get("IntegrityAlgorithm")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class InquirePriceCreateDirectConnectGatewayRequest(AbstractModel):
    """InquirePriceCreateDirectConnectGateway请求参数结构体

    """


class InquirePriceCreateDirectConnectGatewayResponse(AbstractModel):
    """InquirePriceCreateDirectConnectGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCost: 专线网关标准接入费用
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCost: int
        :param _RealTotalCost: 专线网关真实接入费用
注意：此字段可能返回 null，表示取不到有效值。
        :type RealTotalCost: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCost = None
        self._RealTotalCost = None
        self._RequestId = None

    @property
    def TotalCost(self):
        return self._TotalCost

    @TotalCost.setter
    def TotalCost(self, TotalCost):
        self._TotalCost = TotalCost

    @property
    def RealTotalCost(self):
        return self._RealTotalCost

    @RealTotalCost.setter
    def RealTotalCost(self, RealTotalCost):
        self._RealTotalCost = RealTotalCost

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCost = params.get("TotalCost")
        self._RealTotalCost = params.get("RealTotalCost")
        self._RequestId = params.get("RequestId")


class InquiryPriceCreateVpnGatewayRequest(AbstractModel):
    """InquiryPriceCreateVpnGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _InternetMaxBandwidthOut: 公网带宽设置。可选带宽规格：5, 10, 20, 50, 100；单位：Mbps。
        :type InternetMaxBandwidthOut: int
        :param _InstanceChargeType: VPN网关计费模式，PREPAID：表示预付费，即包年包月，POSTPAID_BY_HOUR：表示后付费，即按量计费。默认：POSTPAID_BY_HOUR，如果指定预付费模式，参数InstanceChargePrepaid必填。
        :type InstanceChargeType: str
        :param _InstanceChargePrepaid: 预付费模式，即包年包月相关参数设置。通过该参数可以指定包年包月实例的购买时长、是否设置自动续费等属性。若指定实例的付费模式为预付费则该参数必传。
        :type InstanceChargePrepaid: :class:`tencentcloud.vpc.v20170312.models.InstanceChargePrepaid`
        :param _MaxConnection: SSL VPN连接数设置，可选规格：5, 10, 20, 50, 100；单位：个。
        :type MaxConnection: int
        :param _Type: 查询的VPN类型，支持IPSEC和SSL两种类型，为SSL类型时，MaxConnection参数必传。
        :type Type: str
        """
        self._InternetMaxBandwidthOut = None
        self._InstanceChargeType = None
        self._InstanceChargePrepaid = None
        self._MaxConnection = None
        self._Type = None

    @property
    def InternetMaxBandwidthOut(self):
        return self._InternetMaxBandwidthOut

    @InternetMaxBandwidthOut.setter
    def InternetMaxBandwidthOut(self, InternetMaxBandwidthOut):
        self._InternetMaxBandwidthOut = InternetMaxBandwidthOut

    @property
    def InstanceChargeType(self):
        return self._InstanceChargeType

    @InstanceChargeType.setter
    def InstanceChargeType(self, InstanceChargeType):
        self._InstanceChargeType = InstanceChargeType

    @property
    def InstanceChargePrepaid(self):
        return self._InstanceChargePrepaid

    @InstanceChargePrepaid.setter
    def InstanceChargePrepaid(self, InstanceChargePrepaid):
        self._InstanceChargePrepaid = InstanceChargePrepaid

    @property
    def MaxConnection(self):
        return self._MaxConnection

    @MaxConnection.setter
    def MaxConnection(self, MaxConnection):
        self._MaxConnection = MaxConnection

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type


    def _deserialize(self, params):
        self._InternetMaxBandwidthOut = params.get("InternetMaxBandwidthOut")
        self._InstanceChargeType = params.get("InstanceChargeType")
        if params.get("InstanceChargePrepaid") is not None:
            self._InstanceChargePrepaid = InstanceChargePrepaid()
            self._InstanceChargePrepaid._deserialize(params.get("InstanceChargePrepaid"))
        self._MaxConnection = params.get("MaxConnection")
        self._Type = params.get("Type")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class InquiryPriceCreateVpnGatewayResponse(AbstractModel):
    """InquiryPriceCreateVpnGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Price: 商品价格。
        :type Price: :class:`tencentcloud.vpc.v20170312.models.Price`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Price = None
        self._RequestId = None

    @property
    def Price(self):
        return self._Price

    @Price.setter
    def Price(self, Price):
        self._Price = Price

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Price") is not None:
            self._Price = Price()
            self._Price._deserialize(params.get("Price"))
        self._RequestId = params.get("RequestId")


class InquiryPriceRenewVpnGatewayRequest(AbstractModel):
    """InquiryPriceRenewVpnGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关实例ID。
        :type VpnGatewayId: str
        :param _InstanceChargePrepaid: 预付费模式，即包年包月相关参数设置。通过该参数可以指定包年包月实例的购买时长、是否设置自动续费等属性。若指定实例的付费模式为预付费则该参数必传。
        :type InstanceChargePrepaid: :class:`tencentcloud.vpc.v20170312.models.InstanceChargePrepaid`
        """
        self._VpnGatewayId = None
        self._InstanceChargePrepaid = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def InstanceChargePrepaid(self):
        return self._InstanceChargePrepaid

    @InstanceChargePrepaid.setter
    def InstanceChargePrepaid(self, InstanceChargePrepaid):
        self._InstanceChargePrepaid = InstanceChargePrepaid


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        if params.get("InstanceChargePrepaid") is not None:
            self._InstanceChargePrepaid = InstanceChargePrepaid()
            self._InstanceChargePrepaid._deserialize(params.get("InstanceChargePrepaid"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class InquiryPriceRenewVpnGatewayResponse(AbstractModel):
    """InquiryPriceRenewVpnGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Price: 商品价格。
        :type Price: :class:`tencentcloud.vpc.v20170312.models.Price`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Price = None
        self._RequestId = None

    @property
    def Price(self):
        return self._Price

    @Price.setter
    def Price(self, Price):
        self._Price = Price

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Price") is not None:
            self._Price = Price()
            self._Price._deserialize(params.get("Price"))
        self._RequestId = params.get("RequestId")


class InquiryPriceResetVpnGatewayInternetMaxBandwidthRequest(AbstractModel):
    """InquiryPriceResetVpnGatewayInternetMaxBandwidth请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关实例ID。
        :type VpnGatewayId: str
        :param _InternetMaxBandwidthOut: 公网带宽设置。可选带宽规格：5, 10, 20, 50, 100；单位：Mbps。
        :type InternetMaxBandwidthOut: int
        """
        self._VpnGatewayId = None
        self._InternetMaxBandwidthOut = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def InternetMaxBandwidthOut(self):
        return self._InternetMaxBandwidthOut

    @InternetMaxBandwidthOut.setter
    def InternetMaxBandwidthOut(self, InternetMaxBandwidthOut):
        self._InternetMaxBandwidthOut = InternetMaxBandwidthOut


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        self._InternetMaxBandwidthOut = params.get("InternetMaxBandwidthOut")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class InquiryPriceResetVpnGatewayInternetMaxBandwidthResponse(AbstractModel):
    """InquiryPriceResetVpnGatewayInternetMaxBandwidth返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Price: 商品价格。
        :type Price: :class:`tencentcloud.vpc.v20170312.models.Price`
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Price = None
        self._RequestId = None

    @property
    def Price(self):
        return self._Price

    @Price.setter
    def Price(self, Price):
        self._Price = Price

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Price") is not None:
            self._Price = Price()
            self._Price._deserialize(params.get("Price"))
        self._RequestId = params.get("RequestId")


class InstanceChargePrepaid(AbstractModel):
    """预付费（包年包月）计费对象。

    """

    def __init__(self):
        r"""
        :param _Period: 购买实例的时长，单位：月。取值范围：1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36。
        :type Period: int
        :param _RenewFlag: 自动续费标识。取值范围： NOTIFY_AND_AUTO_RENEW：通知过期且自动续费， NOTIFY_AND_MANUAL_RENEW：通知过期不自动续费。默认：NOTIFY_AND_AUTO_RENEW
        :type RenewFlag: str
        """
        self._Period = None
        self._RenewFlag = None

    @property
    def Period(self):
        return self._Period

    @Period.setter
    def Period(self, Period):
        self._Period = Period

    @property
    def RenewFlag(self):
        return self._RenewFlag

    @RenewFlag.setter
    def RenewFlag(self, RenewFlag):
        self._RenewFlag = RenewFlag


    def _deserialize(self, params):
        self._Period = params.get("Period")
        self._RenewFlag = params.get("RenewFlag")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class InstanceStatistic(AbstractModel):
    """用于描述实例的统计信息

    """

    def __init__(self):
        r"""
        :param _InstanceType: 实例的类型
        :type InstanceType: str
        :param _InstanceCount: 实例的个数
        :type InstanceCount: int
        """
        self._InstanceType = None
        self._InstanceCount = None

    @property
    def InstanceType(self):
        return self._InstanceType

    @InstanceType.setter
    def InstanceType(self, InstanceType):
        self._InstanceType = InstanceType

    @property
    def InstanceCount(self):
        return self._InstanceCount

    @InstanceCount.setter
    def InstanceCount(self, InstanceCount):
        self._InstanceCount = InstanceCount


    def _deserialize(self, params):
        self._InstanceType = params.get("InstanceType")
        self._InstanceCount = params.get("InstanceCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Ip6Rule(AbstractModel):
    """IPV6转换规则

    """

    def __init__(self):
        r"""
        :param _Ip6RuleId: IPV6转换规则唯一ID，形如rule6-xxxxxxxx
        :type Ip6RuleId: str
        :param _Ip6RuleName: IPV6转换规则名称
        :type Ip6RuleName: str
        :param _Vip6: IPV6地址
        :type Vip6: str
        :param _Vport6: IPV6端口号
        :type Vport6: int
        :param _Protocol: 协议类型，支持TCP/UDP
        :type Protocol: str
        :param _Vip: IPV4地址
        :type Vip: str
        :param _Vport: IPV4端口号
        :type Vport: int
        :param _RuleStatus: 转换规则状态，限于CREATING,RUNNING,DELETING,MODIFYING
        :type RuleStatus: str
        :param _CreatedTime: 转换规则创建时间
        :type CreatedTime: str
        """
        self._Ip6RuleId = None
        self._Ip6RuleName = None
        self._Vip6 = None
        self._Vport6 = None
        self._Protocol = None
        self._Vip = None
        self._Vport = None
        self._RuleStatus = None
        self._CreatedTime = None

    @property
    def Ip6RuleId(self):
        return self._Ip6RuleId

    @Ip6RuleId.setter
    def Ip6RuleId(self, Ip6RuleId):
        self._Ip6RuleId = Ip6RuleId

    @property
    def Ip6RuleName(self):
        return self._Ip6RuleName

    @Ip6RuleName.setter
    def Ip6RuleName(self, Ip6RuleName):
        self._Ip6RuleName = Ip6RuleName

    @property
    def Vip6(self):
        return self._Vip6

    @Vip6.setter
    def Vip6(self, Vip6):
        self._Vip6 = Vip6

    @property
    def Vport6(self):
        return self._Vport6

    @Vport6.setter
    def Vport6(self, Vport6):
        self._Vport6 = Vport6

    @property
    def Protocol(self):
        return self._Protocol

    @Protocol.setter
    def Protocol(self, Protocol):
        self._Protocol = Protocol

    @property
    def Vip(self):
        return self._Vip

    @Vip.setter
    def Vip(self, Vip):
        self._Vip = Vip

    @property
    def Vport(self):
        return self._Vport

    @Vport.setter
    def Vport(self, Vport):
        self._Vport = Vport

    @property
    def RuleStatus(self):
        return self._RuleStatus

    @RuleStatus.setter
    def RuleStatus(self, RuleStatus):
        self._RuleStatus = RuleStatus

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime


    def _deserialize(self, params):
        self._Ip6RuleId = params.get("Ip6RuleId")
        self._Ip6RuleName = params.get("Ip6RuleName")
        self._Vip6 = params.get("Vip6")
        self._Vport6 = params.get("Vport6")
        self._Protocol = params.get("Protocol")
        self._Vip = params.get("Vip")
        self._Vport = params.get("Vport")
        self._RuleStatus = params.get("RuleStatus")
        self._CreatedTime = params.get("CreatedTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Ip6RuleInfo(AbstractModel):
    """IPV6转换规则

    """

    def __init__(self):
        r"""
        :param _Vport6: IPV6端口号，可在0~65535范围取值
        :type Vport6: int
        :param _Protocol: 协议类型，支持TCP/UDP
        :type Protocol: str
        :param _Vip: IPV4地址
        :type Vip: str
        :param _Vport: IPV4端口号，可在0~65535范围取值
        :type Vport: int
        """
        self._Vport6 = None
        self._Protocol = None
        self._Vip = None
        self._Vport = None

    @property
    def Vport6(self):
        return self._Vport6

    @Vport6.setter
    def Vport6(self, Vport6):
        self._Vport6 = Vport6

    @property
    def Protocol(self):
        return self._Protocol

    @Protocol.setter
    def Protocol(self, Protocol):
        self._Protocol = Protocol

    @property
    def Vip(self):
        return self._Vip

    @Vip.setter
    def Vip(self, Vip):
        self._Vip = Vip

    @property
    def Vport(self):
        return self._Vport

    @Vport.setter
    def Vport(self, Vport):
        self._Vport = Vport


    def _deserialize(self, params):
        self._Vport6 = params.get("Vport6")
        self._Protocol = params.get("Protocol")
        self._Vip = params.get("Vip")
        self._Vport = params.get("Vport")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Ip6Translator(AbstractModel):
    """IPV6转换实例信息

    """

    def __init__(self):
        r"""
        :param _Ip6TranslatorId: IPV6转换实例唯一ID，形如ip6-xxxxxxxx
        :type Ip6TranslatorId: str
        :param _Ip6TranslatorName: IPV6转换实例名称
        :type Ip6TranslatorName: str
        :param _Vip6: IPV6地址
        :type Vip6: str
        :param _IspName: IPV6转换地址所属运营商
        :type IspName: str
        :param _TranslatorStatus: 转换实例状态，限于CREATING,RUNNING,DELETING,MODIFYING
        :type TranslatorStatus: str
        :param _CreatedTime: IPV6转换实例创建时间
        :type CreatedTime: str
        :param _Ip6RuleCount: 绑定的IPV6转换规则数量
        :type Ip6RuleCount: int
        :param _IP6RuleSet: IPV6转换规则信息
        :type IP6RuleSet: list of Ip6Rule
        """
        self._Ip6TranslatorId = None
        self._Ip6TranslatorName = None
        self._Vip6 = None
        self._IspName = None
        self._TranslatorStatus = None
        self._CreatedTime = None
        self._Ip6RuleCount = None
        self._IP6RuleSet = None

    @property
    def Ip6TranslatorId(self):
        return self._Ip6TranslatorId

    @Ip6TranslatorId.setter
    def Ip6TranslatorId(self, Ip6TranslatorId):
        self._Ip6TranslatorId = Ip6TranslatorId

    @property
    def Ip6TranslatorName(self):
        return self._Ip6TranslatorName

    @Ip6TranslatorName.setter
    def Ip6TranslatorName(self, Ip6TranslatorName):
        self._Ip6TranslatorName = Ip6TranslatorName

    @property
    def Vip6(self):
        return self._Vip6

    @Vip6.setter
    def Vip6(self, Vip6):
        self._Vip6 = Vip6

    @property
    def IspName(self):
        return self._IspName

    @IspName.setter
    def IspName(self, IspName):
        self._IspName = IspName

    @property
    def TranslatorStatus(self):
        return self._TranslatorStatus

    @TranslatorStatus.setter
    def TranslatorStatus(self, TranslatorStatus):
        self._TranslatorStatus = TranslatorStatus

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def Ip6RuleCount(self):
        return self._Ip6RuleCount

    @Ip6RuleCount.setter
    def Ip6RuleCount(self, Ip6RuleCount):
        self._Ip6RuleCount = Ip6RuleCount

    @property
    def IP6RuleSet(self):
        return self._IP6RuleSet

    @IP6RuleSet.setter
    def IP6RuleSet(self, IP6RuleSet):
        self._IP6RuleSet = IP6RuleSet


    def _deserialize(self, params):
        self._Ip6TranslatorId = params.get("Ip6TranslatorId")
        self._Ip6TranslatorName = params.get("Ip6TranslatorName")
        self._Vip6 = params.get("Vip6")
        self._IspName = params.get("IspName")
        self._TranslatorStatus = params.get("TranslatorStatus")
        self._CreatedTime = params.get("CreatedTime")
        self._Ip6RuleCount = params.get("Ip6RuleCount")
        if params.get("IP6RuleSet") is not None:
            self._IP6RuleSet = []
            for item in params.get("IP6RuleSet"):
                obj = Ip6Rule()
                obj._deserialize(item)
                self._IP6RuleSet.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class IpAddressStates(AbstractModel):
    """占用ip的资源信息

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。
        :type VpcId: str
        :param _SubnetId: 子网实例ID。
        :type SubnetId: str
        :param _IpAddress: IP地址。
        :type IpAddress: str
        :param _ResourceType: 资源类型
        :type ResourceType: str
        :param _ResourceId: 资源ID
        :type ResourceId: str
        """
        self._VpcId = None
        self._SubnetId = None
        self._IpAddress = None
        self._ResourceType = None
        self._ResourceId = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def IpAddress(self):
        return self._IpAddress

    @IpAddress.setter
    def IpAddress(self, IpAddress):
        self._IpAddress = IpAddress

    @property
    def ResourceType(self):
        return self._ResourceType

    @ResourceType.setter
    def ResourceType(self, ResourceType):
        self._ResourceType = ResourceType

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._IpAddress = params.get("IpAddress")
        self._ResourceType = params.get("ResourceType")
        self._ResourceId = params.get("ResourceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class IpField(AbstractModel):
    """IP在线查询的字段信息

    """

    def __init__(self):
        r"""
        :param _Country: 国家字段信息
        :type Country: bool
        :param _Province: 省、州、郡一级行政区域字段信息
        :type Province: bool
        :param _City: 市一级行政区域字段信息
        :type City: bool
        :param _Region: 市内区域字段信息
        :type Region: bool
        :param _Isp: 接入运营商字段信息
        :type Isp: bool
        :param _AsName: 骨干运营商字段信息
        :type AsName: bool
        :param _AsId: 骨干As号
        :type AsId: bool
        :param _Comment: 注释字段
        :type Comment: bool
        """
        self._Country = None
        self._Province = None
        self._City = None
        self._Region = None
        self._Isp = None
        self._AsName = None
        self._AsId = None
        self._Comment = None

    @property
    def Country(self):
        return self._Country

    @Country.setter
    def Country(self, Country):
        self._Country = Country

    @property
    def Province(self):
        return self._Province

    @Province.setter
    def Province(self, Province):
        self._Province = Province

    @property
    def City(self):
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def Region(self):
        return self._Region

    @Region.setter
    def Region(self, Region):
        self._Region = Region

    @property
    def Isp(self):
        return self._Isp

    @Isp.setter
    def Isp(self, Isp):
        self._Isp = Isp

    @property
    def AsName(self):
        return self._AsName

    @AsName.setter
    def AsName(self, AsName):
        self._AsName = AsName

    @property
    def AsId(self):
        return self._AsId

    @AsId.setter
    def AsId(self, AsId):
        self._AsId = AsId

    @property
    def Comment(self):
        return self._Comment

    @Comment.setter
    def Comment(self, Comment):
        self._Comment = Comment


    def _deserialize(self, params):
        self._Country = params.get("Country")
        self._Province = params.get("Province")
        self._City = params.get("City")
        self._Region = params.get("Region")
        self._Isp = params.get("Isp")
        self._AsName = params.get("AsName")
        self._AsId = params.get("AsId")
        self._Comment = params.get("Comment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class IpGeolocationInfo(AbstractModel):
    """IP地理位置信息

    """

    def __init__(self):
        r"""
        :param _Country: 国家信息
注意：此字段可能返回 null，表示取不到有效值。
        :type Country: str
        :param _Province: 省、州、郡一级行政区域信息
注意：此字段可能返回 null，表示取不到有效值。
        :type Province: str
        :param _City: 市一级行政区域信息
注意：此字段可能返回 null，表示取不到有效值。
        :type City: str
        :param _Region: 市内区域信息
注意：此字段可能返回 null，表示取不到有效值。
        :type Region: str
        :param _Isp: 接入运营商信息
注意：此字段可能返回 null，表示取不到有效值。
        :type Isp: str
        :param _AsName: 骨干运营商名称
注意：此字段可能返回 null，表示取不到有效值。
        :type AsName: str
        :param _AsId: 骨干运营商AS号
注意：此字段可能返回 null，表示取不到有效值。
        :type AsId: str
        :param _Comment: 注释信息。目前的填充值为移动接入用户的APN值，如无APN属性则为空
注意：此字段可能返回 null，表示取不到有效值。
        :type Comment: str
        :param _AddressIp: IP地址
注意：此字段可能返回 null，表示取不到有效值。
        :type AddressIp: str
        """
        self._Country = None
        self._Province = None
        self._City = None
        self._Region = None
        self._Isp = None
        self._AsName = None
        self._AsId = None
        self._Comment = None
        self._AddressIp = None

    @property
    def Country(self):
        return self._Country

    @Country.setter
    def Country(self, Country):
        self._Country = Country

    @property
    def Province(self):
        return self._Province

    @Province.setter
    def Province(self, Province):
        self._Province = Province

    @property
    def City(self):
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def Region(self):
        return self._Region

    @Region.setter
    def Region(self, Region):
        self._Region = Region

    @property
    def Isp(self):
        return self._Isp

    @Isp.setter
    def Isp(self, Isp):
        self._Isp = Isp

    @property
    def AsName(self):
        return self._AsName

    @AsName.setter
    def AsName(self, AsName):
        self._AsName = AsName

    @property
    def AsId(self):
        return self._AsId

    @AsId.setter
    def AsId(self, AsId):
        self._AsId = AsId

    @property
    def Comment(self):
        return self._Comment

    @Comment.setter
    def Comment(self, Comment):
        self._Comment = Comment

    @property
    def AddressIp(self):
        return self._AddressIp

    @AddressIp.setter
    def AddressIp(self, AddressIp):
        self._AddressIp = AddressIp


    def _deserialize(self, params):
        self._Country = params.get("Country")
        self._Province = params.get("Province")
        self._City = params.get("City")
        self._Region = params.get("Region")
        self._Isp = params.get("Isp")
        self._AsName = params.get("AsName")
        self._AsId = params.get("AsId")
        self._Comment = params.get("Comment")
        self._AddressIp = params.get("AddressIp")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Ipv6Address(AbstractModel):
    """`IPv6`地址信息。

    """

    def __init__(self):
        r"""
        :param _Address: `IPv6`地址，形如：`3402:4e00:20:100:0:8cd9:2a67:71f3`
        :type Address: str
        :param _Primary: 是否是主`IP`。
        :type Primary: bool
        :param _AddressId: `EIP`实例`ID`，形如：`eip-hxlqja90`。
        :type AddressId: str
        :param _Description: 描述信息。
        :type Description: str
        :param _IsWanIpBlocked: 公网IP是否被封堵。
        :type IsWanIpBlocked: bool
        :param _State: `IPv6`地址状态：
<li>`PENDING`：生产中</li>
<li>`MIGRATING`：迁移中</li>
<li>`DELETING`：删除中</li>
<li>`AVAILABLE`：可用的</li>
        :type State: str
        """
        self._Address = None
        self._Primary = None
        self._AddressId = None
        self._Description = None
        self._IsWanIpBlocked = None
        self._State = None

    @property
    def Address(self):
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def Primary(self):
        return self._Primary

    @Primary.setter
    def Primary(self, Primary):
        self._Primary = Primary

    @property
    def AddressId(self):
        return self._AddressId

    @AddressId.setter
    def AddressId(self, AddressId):
        self._AddressId = AddressId

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def IsWanIpBlocked(self):
        return self._IsWanIpBlocked

    @IsWanIpBlocked.setter
    def IsWanIpBlocked(self, IsWanIpBlocked):
        self._IsWanIpBlocked = IsWanIpBlocked

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State


    def _deserialize(self, params):
        self._Address = params.get("Address")
        self._Primary = params.get("Primary")
        self._AddressId = params.get("AddressId")
        self._Description = params.get("Description")
        self._IsWanIpBlocked = params.get("IsWanIpBlocked")
        self._State = params.get("State")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Ipv6SubnetCidrBlock(AbstractModel):
    """IPv6子网段对象。

    """

    def __init__(self):
        r"""
        :param _SubnetId: 子网实例`ID`。形如：`subnet-pxir56ns`。
        :type SubnetId: str
        :param _Ipv6CidrBlock: `IPv6`子网段。形如：`3402:4e00:20:1001::/64`
        :type Ipv6CidrBlock: str
        """
        self._SubnetId = None
        self._Ipv6CidrBlock = None

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def Ipv6CidrBlock(self):
        return self._Ipv6CidrBlock

    @Ipv6CidrBlock.setter
    def Ipv6CidrBlock(self, Ipv6CidrBlock):
        self._Ipv6CidrBlock = Ipv6CidrBlock


    def _deserialize(self, params):
        self._SubnetId = params.get("SubnetId")
        self._Ipv6CidrBlock = params.get("Ipv6CidrBlock")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ItemPrice(AbstractModel):
    """单项计费价格信息

    """

    def __init__(self):
        r"""
        :param _UnitPrice: 按量计费后付费单价，单位：元。
        :type UnitPrice: float
        :param _ChargeUnit: 按量计费后付费计价单元，可取值范围： HOUR：表示计价单元是按每小时来计算。当前涉及该计价单元的场景有：实例按小时后付费（POSTPAID_BY_HOUR）、带宽按小时后付费（BANDWIDTH_POSTPAID_BY_HOUR）： GB：表示计价单元是按每GB来计算。当前涉及该计价单元的场景有：流量按小时后付费（TRAFFIC_POSTPAID_BY_HOUR）。
        :type ChargeUnit: str
        :param _OriginalPrice: 预付费商品的原价，单位：元。
        :type OriginalPrice: float
        :param _DiscountPrice: 预付费商品的折扣价，单位：元。
        :type DiscountPrice: float
        """
        self._UnitPrice = None
        self._ChargeUnit = None
        self._OriginalPrice = None
        self._DiscountPrice = None

    @property
    def UnitPrice(self):
        return self._UnitPrice

    @UnitPrice.setter
    def UnitPrice(self, UnitPrice):
        self._UnitPrice = UnitPrice

    @property
    def ChargeUnit(self):
        return self._ChargeUnit

    @ChargeUnit.setter
    def ChargeUnit(self, ChargeUnit):
        self._ChargeUnit = ChargeUnit

    @property
    def OriginalPrice(self):
        return self._OriginalPrice

    @OriginalPrice.setter
    def OriginalPrice(self, OriginalPrice):
        self._OriginalPrice = OriginalPrice

    @property
    def DiscountPrice(self):
        return self._DiscountPrice

    @DiscountPrice.setter
    def DiscountPrice(self, DiscountPrice):
        self._DiscountPrice = DiscountPrice


    def _deserialize(self, params):
        self._UnitPrice = params.get("UnitPrice")
        self._ChargeUnit = params.get("ChargeUnit")
        self._OriginalPrice = params.get("OriginalPrice")
        self._DiscountPrice = params.get("DiscountPrice")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class LocalGateway(AbstractModel):
    """本地网关信息

    """

    def __init__(self):
        r"""
        :param _CdcId: CDC实例ID
        :type CdcId: str
        :param _VpcId: VPC实例ID
        :type VpcId: str
        :param _UniqLocalGwId: 本地网关实例ID
        :type UniqLocalGwId: str
        :param _LocalGatewayName: 本地网关名称
        :type LocalGatewayName: str
        :param _LocalGwIp: 本地网关IP地址
        :type LocalGwIp: str
        :param _CreateTime: 本地网关创建时间
        :type CreateTime: str
        """
        self._CdcId = None
        self._VpcId = None
        self._UniqLocalGwId = None
        self._LocalGatewayName = None
        self._LocalGwIp = None
        self._CreateTime = None

    @property
    def CdcId(self):
        return self._CdcId

    @CdcId.setter
    def CdcId(self, CdcId):
        self._CdcId = CdcId

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def UniqLocalGwId(self):
        return self._UniqLocalGwId

    @UniqLocalGwId.setter
    def UniqLocalGwId(self, UniqLocalGwId):
        self._UniqLocalGwId = UniqLocalGwId

    @property
    def LocalGatewayName(self):
        return self._LocalGatewayName

    @LocalGatewayName.setter
    def LocalGatewayName(self, LocalGatewayName):
        self._LocalGatewayName = LocalGatewayName

    @property
    def LocalGwIp(self):
        return self._LocalGwIp

    @LocalGwIp.setter
    def LocalGwIp(self, LocalGwIp):
        self._LocalGwIp = LocalGwIp

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime


    def _deserialize(self, params):
        self._CdcId = params.get("CdcId")
        self._VpcId = params.get("VpcId")
        self._UniqLocalGwId = params.get("UniqLocalGwId")
        self._LocalGatewayName = params.get("LocalGatewayName")
        self._LocalGwIp = params.get("LocalGwIp")
        self._CreateTime = params.get("CreateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class LockCcnBandwidthsRequest(AbstractModel):
    """LockCcnBandwidths请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Instances: 带宽实例的唯一ID数组。
        :type Instances: list of CcnFlowLock
        """
        self._Instances = None

    @property
    def Instances(self):
        return self._Instances

    @Instances.setter
    def Instances(self, Instances):
        self._Instances = Instances


    def _deserialize(self, params):
        if params.get("Instances") is not None:
            self._Instances = []
            for item in params.get("Instances"):
                obj = CcnFlowLock()
                obj._deserialize(item)
                self._Instances.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class LockCcnBandwidthsResponse(AbstractModel):
    """LockCcnBandwidths返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class LockCcnsRequest(AbstractModel):
    """LockCcns请求参数结构体

    """


class LockCcnsResponse(AbstractModel):
    """LockCcns返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class MemberInfo(AbstractModel):
    """模板对象成员信息

    """

    def __init__(self):
        r"""
        :param _Member: 模板对象成员
        :type Member: str
        :param _Description: 模板对象成员描述信息
        :type Description: str
        """
        self._Member = None
        self._Description = None

    @property
    def Member(self):
        return self._Member

    @Member.setter
    def Member(self, Member):
        self._Member = Member

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description


    def _deserialize(self, params):
        self._Member = params.get("Member")
        self._Description = params.get("Description")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MigrateNetworkInterfaceRequest(AbstractModel):
    """MigrateNetworkInterface请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceId: 弹性网卡实例ID，例如：eni-m6dyj72l。
        :type NetworkInterfaceId: str
        :param _SourceInstanceId: 弹性网卡当前绑定的CVM实例ID。形如：ins-r8hr2upy。
        :type SourceInstanceId: str
        :param _DestinationInstanceId: 待迁移的目的CVM实例ID。
        :type DestinationInstanceId: str
        :param _AttachType: 网卡绑定类型：0 标准型 1 扩展型。
        :type AttachType: int
        """
        self._NetworkInterfaceId = None
        self._SourceInstanceId = None
        self._DestinationInstanceId = None
        self._AttachType = None

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId

    @property
    def SourceInstanceId(self):
        return self._SourceInstanceId

    @SourceInstanceId.setter
    def SourceInstanceId(self, SourceInstanceId):
        self._SourceInstanceId = SourceInstanceId

    @property
    def DestinationInstanceId(self):
        return self._DestinationInstanceId

    @DestinationInstanceId.setter
    def DestinationInstanceId(self, DestinationInstanceId):
        self._DestinationInstanceId = DestinationInstanceId

    @property
    def AttachType(self):
        return self._AttachType

    @AttachType.setter
    def AttachType(self, AttachType):
        self._AttachType = AttachType


    def _deserialize(self, params):
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        self._SourceInstanceId = params.get("SourceInstanceId")
        self._DestinationInstanceId = params.get("DestinationInstanceId")
        self._AttachType = params.get("AttachType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MigrateNetworkInterfaceResponse(AbstractModel):
    """MigrateNetworkInterface返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class MigratePrivateIpAddressRequest(AbstractModel):
    """MigratePrivateIpAddress请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SourceNetworkInterfaceId: 当内网IP绑定的弹性网卡实例ID，例如：eni-m6dyj72l。
        :type SourceNetworkInterfaceId: str
        :param _DestinationNetworkInterfaceId: 待迁移的目的弹性网卡实例ID。
        :type DestinationNetworkInterfaceId: str
        :param _PrivateIpAddress: 迁移的内网IP地址，例如：10.0.0.6。
        :type PrivateIpAddress: str
        """
        self._SourceNetworkInterfaceId = None
        self._DestinationNetworkInterfaceId = None
        self._PrivateIpAddress = None

    @property
    def SourceNetworkInterfaceId(self):
        return self._SourceNetworkInterfaceId

    @SourceNetworkInterfaceId.setter
    def SourceNetworkInterfaceId(self, SourceNetworkInterfaceId):
        self._SourceNetworkInterfaceId = SourceNetworkInterfaceId

    @property
    def DestinationNetworkInterfaceId(self):
        return self._DestinationNetworkInterfaceId

    @DestinationNetworkInterfaceId.setter
    def DestinationNetworkInterfaceId(self, DestinationNetworkInterfaceId):
        self._DestinationNetworkInterfaceId = DestinationNetworkInterfaceId

    @property
    def PrivateIpAddress(self):
        return self._PrivateIpAddress

    @PrivateIpAddress.setter
    def PrivateIpAddress(self, PrivateIpAddress):
        self._PrivateIpAddress = PrivateIpAddress


    def _deserialize(self, params):
        self._SourceNetworkInterfaceId = params.get("SourceNetworkInterfaceId")
        self._DestinationNetworkInterfaceId = params.get("DestinationNetworkInterfaceId")
        self._PrivateIpAddress = params.get("PrivateIpAddress")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MigratePrivateIpAddressResponse(AbstractModel):
    """MigratePrivateIpAddress返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyAddressAttributeRequest(AbstractModel):
    """ModifyAddressAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressId: 标识 EIP 的唯一 ID。EIP 唯一 ID 形如：`eip-11112222`。
        :type AddressId: str
        :param _AddressName: 修改后的 EIP 名称。长度上限为128个字符。
        :type AddressName: str
        :param _EipDirectConnection: 设定EIP是否直通，"TRUE"表示直通，"FALSE"表示非直通。注意该参数仅对EIP直通功能可见的用户可以设定。
        :type EipDirectConnection: str
        """
        self._AddressId = None
        self._AddressName = None
        self._EipDirectConnection = None

    @property
    def AddressId(self):
        return self._AddressId

    @AddressId.setter
    def AddressId(self, AddressId):
        self._AddressId = AddressId

    @property
    def AddressName(self):
        return self._AddressName

    @AddressName.setter
    def AddressName(self, AddressName):
        self._AddressName = AddressName

    @property
    def EipDirectConnection(self):
        return self._EipDirectConnection

    @EipDirectConnection.setter
    def EipDirectConnection(self, EipDirectConnection):
        self._EipDirectConnection = EipDirectConnection


    def _deserialize(self, params):
        self._AddressId = params.get("AddressId")
        self._AddressName = params.get("AddressName")
        self._EipDirectConnection = params.get("EipDirectConnection")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyAddressAttributeResponse(AbstractModel):
    """ModifyAddressAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyAddressInternetChargeTypeRequest(AbstractModel):
    """ModifyAddressInternetChargeType请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressId: 弹性公网IP的唯一ID，形如eip-xxx
        :type AddressId: str
        :param _InternetChargeType: 弹性公网IP调整目标计费模式，支持 "BANDWIDTH_PREPAID_BY_MONTH"、"TRAFFIC_POSTPAID_BY_HOUR"、"BANDWIDTH_POSTPAID_BY_HOUR"
        :type InternetChargeType: str
        :param _InternetMaxBandwidthOut: 弹性公网IP调整目标带宽值
        :type InternetMaxBandwidthOut: int
        :param _AddressChargePrepaid: 包月带宽网络计费模式参数。弹性公网IP的调整目标计费模式是"BANDWIDTH_PREPAID_BY_MONTH"时，必传该参数。
        :type AddressChargePrepaid: :class:`tencentcloud.vpc.v20170312.models.AddressChargePrepaid`
        """
        self._AddressId = None
        self._InternetChargeType = None
        self._InternetMaxBandwidthOut = None
        self._AddressChargePrepaid = None

    @property
    def AddressId(self):
        return self._AddressId

    @AddressId.setter
    def AddressId(self, AddressId):
        self._AddressId = AddressId

    @property
    def InternetChargeType(self):
        return self._InternetChargeType

    @InternetChargeType.setter
    def InternetChargeType(self, InternetChargeType):
        self._InternetChargeType = InternetChargeType

    @property
    def InternetMaxBandwidthOut(self):
        return self._InternetMaxBandwidthOut

    @InternetMaxBandwidthOut.setter
    def InternetMaxBandwidthOut(self, InternetMaxBandwidthOut):
        self._InternetMaxBandwidthOut = InternetMaxBandwidthOut

    @property
    def AddressChargePrepaid(self):
        return self._AddressChargePrepaid

    @AddressChargePrepaid.setter
    def AddressChargePrepaid(self, AddressChargePrepaid):
        self._AddressChargePrepaid = AddressChargePrepaid


    def _deserialize(self, params):
        self._AddressId = params.get("AddressId")
        self._InternetChargeType = params.get("InternetChargeType")
        self._InternetMaxBandwidthOut = params.get("InternetMaxBandwidthOut")
        if params.get("AddressChargePrepaid") is not None:
            self._AddressChargePrepaid = AddressChargePrepaid()
            self._AddressChargePrepaid._deserialize(params.get("AddressChargePrepaid"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyAddressInternetChargeTypeResponse(AbstractModel):
    """ModifyAddressInternetChargeType返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyAddressTemplateAttributeRequest(AbstractModel):
    """ModifyAddressTemplateAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressTemplateId: IP地址模板实例ID，例如：ipm-mdunqeb6。
        :type AddressTemplateId: str
        :param _AddressTemplateName: IP地址模板名称。
        :type AddressTemplateName: str
        :param _Addresses: 地址信息，支持 IP、CIDR、IP 范围。
        :type Addresses: list of str
        :param _AddressesExtra: 支持添加备注的地址信息，支持 IP、CIDR、IP 范围。
        :type AddressesExtra: list of AddressInfo
        """
        self._AddressTemplateId = None
        self._AddressTemplateName = None
        self._Addresses = None
        self._AddressesExtra = None

    @property
    def AddressTemplateId(self):
        return self._AddressTemplateId

    @AddressTemplateId.setter
    def AddressTemplateId(self, AddressTemplateId):
        self._AddressTemplateId = AddressTemplateId

    @property
    def AddressTemplateName(self):
        return self._AddressTemplateName

    @AddressTemplateName.setter
    def AddressTemplateName(self, AddressTemplateName):
        self._AddressTemplateName = AddressTemplateName

    @property
    def Addresses(self):
        return self._Addresses

    @Addresses.setter
    def Addresses(self, Addresses):
        self._Addresses = Addresses

    @property
    def AddressesExtra(self):
        return self._AddressesExtra

    @AddressesExtra.setter
    def AddressesExtra(self, AddressesExtra):
        self._AddressesExtra = AddressesExtra


    def _deserialize(self, params):
        self._AddressTemplateId = params.get("AddressTemplateId")
        self._AddressTemplateName = params.get("AddressTemplateName")
        self._Addresses = params.get("Addresses")
        if params.get("AddressesExtra") is not None:
            self._AddressesExtra = []
            for item in params.get("AddressesExtra"):
                obj = AddressInfo()
                obj._deserialize(item)
                self._AddressesExtra.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyAddressTemplateAttributeResponse(AbstractModel):
    """ModifyAddressTemplateAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyAddressTemplateGroupAttributeRequest(AbstractModel):
    """ModifyAddressTemplateGroupAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressTemplateGroupId: IP地址模板集合实例ID，例如：ipmg-2uw6ujo6。
        :type AddressTemplateGroupId: str
        :param _AddressTemplateGroupName: IP地址模板集合名称。
        :type AddressTemplateGroupName: str
        :param _AddressTemplateIds: IP地址模板实例ID， 例如：ipm-mdunqeb6。
        :type AddressTemplateIds: list of str
        """
        self._AddressTemplateGroupId = None
        self._AddressTemplateGroupName = None
        self._AddressTemplateIds = None

    @property
    def AddressTemplateGroupId(self):
        return self._AddressTemplateGroupId

    @AddressTemplateGroupId.setter
    def AddressTemplateGroupId(self, AddressTemplateGroupId):
        self._AddressTemplateGroupId = AddressTemplateGroupId

    @property
    def AddressTemplateGroupName(self):
        return self._AddressTemplateGroupName

    @AddressTemplateGroupName.setter
    def AddressTemplateGroupName(self, AddressTemplateGroupName):
        self._AddressTemplateGroupName = AddressTemplateGroupName

    @property
    def AddressTemplateIds(self):
        return self._AddressTemplateIds

    @AddressTemplateIds.setter
    def AddressTemplateIds(self, AddressTemplateIds):
        self._AddressTemplateIds = AddressTemplateIds


    def _deserialize(self, params):
        self._AddressTemplateGroupId = params.get("AddressTemplateGroupId")
        self._AddressTemplateGroupName = params.get("AddressTemplateGroupName")
        self._AddressTemplateIds = params.get("AddressTemplateIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyAddressTemplateGroupAttributeResponse(AbstractModel):
    """ModifyAddressTemplateGroupAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyAddressesBandwidthRequest(AbstractModel):
    """ModifyAddressesBandwidth请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressIds: EIP唯一标识ID列表，形如'eip-xxxx'
        :type AddressIds: list of str
        :param _InternetMaxBandwidthOut: 调整带宽目标值
        :type InternetMaxBandwidthOut: int
        :param _StartTime: 包月带宽起始时间(已废弃，输入无效)
        :type StartTime: str
        :param _EndTime: 包月带宽结束时间(已废弃，输入无效)
        :type EndTime: str
        """
        self._AddressIds = None
        self._InternetMaxBandwidthOut = None
        self._StartTime = None
        self._EndTime = None

    @property
    def AddressIds(self):
        return self._AddressIds

    @AddressIds.setter
    def AddressIds(self, AddressIds):
        self._AddressIds = AddressIds

    @property
    def InternetMaxBandwidthOut(self):
        return self._InternetMaxBandwidthOut

    @InternetMaxBandwidthOut.setter
    def InternetMaxBandwidthOut(self, InternetMaxBandwidthOut):
        self._InternetMaxBandwidthOut = InternetMaxBandwidthOut

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime


    def _deserialize(self, params):
        self._AddressIds = params.get("AddressIds")
        self._InternetMaxBandwidthOut = params.get("InternetMaxBandwidthOut")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyAddressesBandwidthResponse(AbstractModel):
    """ModifyAddressesBandwidth返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步任务TaskId。可以使用[DescribeTaskResult](https://cloud.tencent.com/document/api/215/36271)接口查询任务状态。
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ModifyAssistantCidrRequest(AbstractModel):
    """ModifyAssistantCidr请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: `VPC`实例`ID`。形如：`vpc-6v2ht8q5`。
        :type VpcId: str
        :param _NewCidrBlocks: 待添加的辅助CIDR。CIDR数组，格式如["10.0.0.0/16", "172.16.0.0/16"]，入参NewCidrBlocks和OldCidrBlocks至少需要其一。
        :type NewCidrBlocks: list of str
        :param _OldCidrBlocks: 待删除的辅助CIDR。CIDR数组，格式如["10.0.0.0/16", "172.16.0.0/16"]，入参NewCidrBlocks和OldCidrBlocks至少需要其一。
        :type OldCidrBlocks: list of str
        """
        self._VpcId = None
        self._NewCidrBlocks = None
        self._OldCidrBlocks = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def NewCidrBlocks(self):
        return self._NewCidrBlocks

    @NewCidrBlocks.setter
    def NewCidrBlocks(self, NewCidrBlocks):
        self._NewCidrBlocks = NewCidrBlocks

    @property
    def OldCidrBlocks(self):
        return self._OldCidrBlocks

    @OldCidrBlocks.setter
    def OldCidrBlocks(self, OldCidrBlocks):
        self._OldCidrBlocks = OldCidrBlocks


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._NewCidrBlocks = params.get("NewCidrBlocks")
        self._OldCidrBlocks = params.get("OldCidrBlocks")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyAssistantCidrResponse(AbstractModel):
    """ModifyAssistantCidr返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AssistantCidrSet: 辅助CIDR数组。
注意：此字段可能返回 null，表示取不到有效值。
        :type AssistantCidrSet: list of AssistantCidr
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AssistantCidrSet = None
        self._RequestId = None

    @property
    def AssistantCidrSet(self):
        return self._AssistantCidrSet

    @AssistantCidrSet.setter
    def AssistantCidrSet(self, AssistantCidrSet):
        self._AssistantCidrSet = AssistantCidrSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("AssistantCidrSet") is not None:
            self._AssistantCidrSet = []
            for item in params.get("AssistantCidrSet"):
                obj = AssistantCidr()
                obj._deserialize(item)
                self._AssistantCidrSet.append(obj)
        self._RequestId = params.get("RequestId")


class ModifyBandwidthPackageAttributeRequest(AbstractModel):
    """ModifyBandwidthPackageAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BandwidthPackageId: 带宽包唯一标识ID
        :type BandwidthPackageId: str
        :param _BandwidthPackageName: 带宽包名称
        :type BandwidthPackageName: str
        :param _ChargeType: 带宽包计费模式，示例 ：
'TOP5_POSTPAID_BY_MONTH'（后付费-TOP5计费）
        :type ChargeType: str
        """
        self._BandwidthPackageId = None
        self._BandwidthPackageName = None
        self._ChargeType = None

    @property
    def BandwidthPackageId(self):
        return self._BandwidthPackageId

    @BandwidthPackageId.setter
    def BandwidthPackageId(self, BandwidthPackageId):
        self._BandwidthPackageId = BandwidthPackageId

    @property
    def BandwidthPackageName(self):
        return self._BandwidthPackageName

    @BandwidthPackageName.setter
    def BandwidthPackageName(self, BandwidthPackageName):
        self._BandwidthPackageName = BandwidthPackageName

    @property
    def ChargeType(self):
        return self._ChargeType

    @ChargeType.setter
    def ChargeType(self, ChargeType):
        self._ChargeType = ChargeType


    def _deserialize(self, params):
        self._BandwidthPackageId = params.get("BandwidthPackageId")
        self._BandwidthPackageName = params.get("BandwidthPackageName")
        self._ChargeType = params.get("ChargeType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyBandwidthPackageAttributeResponse(AbstractModel):
    """ModifyBandwidthPackageAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyCcnAttachedInstancesAttributeRequest(AbstractModel):
    """ModifyCcnAttachedInstancesAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnId: CCN实例ID。形如：ccn-f49l6u0z。
        :type CcnId: str
        :param _Instances: 关联网络实例列表
        :type Instances: list of CcnInstance
        """
        self._CcnId = None
        self._Instances = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def Instances(self):
        return self._Instances

    @Instances.setter
    def Instances(self, Instances):
        self._Instances = Instances


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        if params.get("Instances") is not None:
            self._Instances = []
            for item in params.get("Instances"):
                obj = CcnInstance()
                obj._deserialize(item)
                self._Instances.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyCcnAttachedInstancesAttributeResponse(AbstractModel):
    """ModifyCcnAttachedInstancesAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyCcnAttributeRequest(AbstractModel):
    """ModifyCcnAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnId: CCN实例ID。形如：ccn-f49l6u0z。
        :type CcnId: str
        :param _CcnName: CCN名称，最大长度不能超过60个字节，限制：CcnName和CcnDescription必须至少选择一个参数输入，否则报错。
        :type CcnName: str
        :param _CcnDescription: CCN描述信息，最大长度不能超过100个字节，限制：CcnName和CcnDescription必须至少选择一个参数输入，否则报错。
        :type CcnDescription: str
        :param _RouteECMPFlag: 是否开启等价路由功能。`False` 不开启，`True` 开启。
        :type RouteECMPFlag: bool
        :param _RouteOverlapFlag: 是否开启路由重叠功能。`False` 不开启，`True` 开启。
        :type RouteOverlapFlag: bool
        """
        self._CcnId = None
        self._CcnName = None
        self._CcnDescription = None
        self._RouteECMPFlag = None
        self._RouteOverlapFlag = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def CcnName(self):
        return self._CcnName

    @CcnName.setter
    def CcnName(self, CcnName):
        self._CcnName = CcnName

    @property
    def CcnDescription(self):
        return self._CcnDescription

    @CcnDescription.setter
    def CcnDescription(self, CcnDescription):
        self._CcnDescription = CcnDescription

    @property
    def RouteECMPFlag(self):
        return self._RouteECMPFlag

    @RouteECMPFlag.setter
    def RouteECMPFlag(self, RouteECMPFlag):
        self._RouteECMPFlag = RouteECMPFlag

    @property
    def RouteOverlapFlag(self):
        return self._RouteOverlapFlag

    @RouteOverlapFlag.setter
    def RouteOverlapFlag(self, RouteOverlapFlag):
        self._RouteOverlapFlag = RouteOverlapFlag


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        self._CcnName = params.get("CcnName")
        self._CcnDescription = params.get("CcnDescription")
        self._RouteECMPFlag = params.get("RouteECMPFlag")
        self._RouteOverlapFlag = params.get("RouteOverlapFlag")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyCcnAttributeResponse(AbstractModel):
    """ModifyCcnAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyCcnRegionBandwidthLimitsTypeRequest(AbstractModel):
    """ModifyCcnRegionBandwidthLimitsType请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnId: 云联网实例ID。
        :type CcnId: str
        :param _BandwidthLimitType: 云联网限速类型，INTER_REGION_LIMIT：地域间限速，OUTER_REGION_LIMIT：地域出口限速。默认值：OUTER_REGION_LIMIT。
        :type BandwidthLimitType: str
        """
        self._CcnId = None
        self._BandwidthLimitType = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def BandwidthLimitType(self):
        return self._BandwidthLimitType

    @BandwidthLimitType.setter
    def BandwidthLimitType(self, BandwidthLimitType):
        self._BandwidthLimitType = BandwidthLimitType


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        self._BandwidthLimitType = params.get("BandwidthLimitType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyCcnRegionBandwidthLimitsTypeResponse(AbstractModel):
    """ModifyCcnRegionBandwidthLimitsType返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyCustomerGatewayAttributeRequest(AbstractModel):
    """ModifyCustomerGatewayAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CustomerGatewayId: 对端网关ID，例如：cgw-2wqq41m9，可通过[DescribeCustomerGateways](https://cloud.tencent.com/document/api/215/17516)接口查询对端网关。
        :type CustomerGatewayId: str
        :param _CustomerGatewayName: 对端网关名称，可任意命名，但不得超过60个字符。
        :type CustomerGatewayName: str
        :param _BgpAsn: BGP ASN。只有开启BGP白名单才可以修改此参数。
        :type BgpAsn: int
        """
        self._CustomerGatewayId = None
        self._CustomerGatewayName = None
        self._BgpAsn = None

    @property
    def CustomerGatewayId(self):
        return self._CustomerGatewayId

    @CustomerGatewayId.setter
    def CustomerGatewayId(self, CustomerGatewayId):
        self._CustomerGatewayId = CustomerGatewayId

    @property
    def CustomerGatewayName(self):
        return self._CustomerGatewayName

    @CustomerGatewayName.setter
    def CustomerGatewayName(self, CustomerGatewayName):
        self._CustomerGatewayName = CustomerGatewayName

    @property
    def BgpAsn(self):
        return self._BgpAsn

    @BgpAsn.setter
    def BgpAsn(self, BgpAsn):
        self._BgpAsn = BgpAsn


    def _deserialize(self, params):
        self._CustomerGatewayId = params.get("CustomerGatewayId")
        self._CustomerGatewayName = params.get("CustomerGatewayName")
        self._BgpAsn = params.get("BgpAsn")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyCustomerGatewayAttributeResponse(AbstractModel):
    """ModifyCustomerGatewayAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyDhcpIpAttributeRequest(AbstractModel):
    """ModifyDhcpIpAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DhcpIpId: `DhcpIp`唯一`ID`，形如：`dhcpip-9o233uri`。
        :type DhcpIpId: str
        :param _DhcpIpName: `DhcpIp`名称，可任意命名，但不得超过60个字符。
        :type DhcpIpName: str
        """
        self._DhcpIpId = None
        self._DhcpIpName = None

    @property
    def DhcpIpId(self):
        return self._DhcpIpId

    @DhcpIpId.setter
    def DhcpIpId(self, DhcpIpId):
        self._DhcpIpId = DhcpIpId

    @property
    def DhcpIpName(self):
        return self._DhcpIpName

    @DhcpIpName.setter
    def DhcpIpName(self, DhcpIpName):
        self._DhcpIpName = DhcpIpName


    def _deserialize(self, params):
        self._DhcpIpId = params.get("DhcpIpId")
        self._DhcpIpName = params.get("DhcpIpName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyDhcpIpAttributeResponse(AbstractModel):
    """ModifyDhcpIpAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyDirectConnectGatewayAttributeRequest(AbstractModel):
    """ModifyDirectConnectGatewayAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DirectConnectGatewayId: 专线网关唯一`ID`，形如：`dcg-9o233uri`。
        :type DirectConnectGatewayId: str
        :param _DirectConnectGatewayName: 专线网关名称，可任意命名，但不得超过60个字符。
        :type DirectConnectGatewayName: str
        :param _CcnRouteType: 云联网路由学习类型，可选值：`BGP`（自动学习）、`STATIC`（静态，即用户配置）。只有云联网类型专线网关且开启了BGP功能才支持修改`CcnRouteType`。
        :type CcnRouteType: str
        :param _ModeType: 云联网路由发布模式，可选值：`standard`（标准模式）、`exquisite`（精细模式）。只有云联网类型专线网关才支持修改`ModeType`。
        :type ModeType: str
        """
        self._DirectConnectGatewayId = None
        self._DirectConnectGatewayName = None
        self._CcnRouteType = None
        self._ModeType = None

    @property
    def DirectConnectGatewayId(self):
        return self._DirectConnectGatewayId

    @DirectConnectGatewayId.setter
    def DirectConnectGatewayId(self, DirectConnectGatewayId):
        self._DirectConnectGatewayId = DirectConnectGatewayId

    @property
    def DirectConnectGatewayName(self):
        return self._DirectConnectGatewayName

    @DirectConnectGatewayName.setter
    def DirectConnectGatewayName(self, DirectConnectGatewayName):
        self._DirectConnectGatewayName = DirectConnectGatewayName

    @property
    def CcnRouteType(self):
        return self._CcnRouteType

    @CcnRouteType.setter
    def CcnRouteType(self, CcnRouteType):
        self._CcnRouteType = CcnRouteType

    @property
    def ModeType(self):
        return self._ModeType

    @ModeType.setter
    def ModeType(self, ModeType):
        self._ModeType = ModeType


    def _deserialize(self, params):
        self._DirectConnectGatewayId = params.get("DirectConnectGatewayId")
        self._DirectConnectGatewayName = params.get("DirectConnectGatewayName")
        self._CcnRouteType = params.get("CcnRouteType")
        self._ModeType = params.get("ModeType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyDirectConnectGatewayAttributeResponse(AbstractModel):
    """ModifyDirectConnectGatewayAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyFlowLogAttributeRequest(AbstractModel):
    """ModifyFlowLogAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _FlowLogId: 流日志唯一ID。
        :type FlowLogId: str
        :param _VpcId: 私用网络ID或者统一ID，建议使用统一ID，修改云联网流日志属性时可不填，其他流日志类型必填。
        :type VpcId: str
        :param _FlowLogName: 流日志实例名字。
        :type FlowLogName: str
        :param _FlowLogDescription: 流日志实例描述。
        :type FlowLogDescription: str
        """
        self._FlowLogId = None
        self._VpcId = None
        self._FlowLogName = None
        self._FlowLogDescription = None

    @property
    def FlowLogId(self):
        return self._FlowLogId

    @FlowLogId.setter
    def FlowLogId(self, FlowLogId):
        self._FlowLogId = FlowLogId

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def FlowLogName(self):
        return self._FlowLogName

    @FlowLogName.setter
    def FlowLogName(self, FlowLogName):
        self._FlowLogName = FlowLogName

    @property
    def FlowLogDescription(self):
        return self._FlowLogDescription

    @FlowLogDescription.setter
    def FlowLogDescription(self, FlowLogDescription):
        self._FlowLogDescription = FlowLogDescription


    def _deserialize(self, params):
        self._FlowLogId = params.get("FlowLogId")
        self._VpcId = params.get("VpcId")
        self._FlowLogName = params.get("FlowLogName")
        self._FlowLogDescription = params.get("FlowLogDescription")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyFlowLogAttributeResponse(AbstractModel):
    """ModifyFlowLogAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyGatewayFlowQosRequest(AbstractModel):
    """ModifyGatewayFlowQos请求参数结构体

    """

    def __init__(self):
        r"""
        :param _GatewayId: 网关实例ID，目前我们支持的网关实例类型有，
专线网关实例ID，形如，`dcg-ltjahce6`；
Nat网关实例ID，形如，`nat-ltjahce6`；
VPN网关实例ID，形如，`vpn-ltjahce6`。
        :type GatewayId: str
        :param _Bandwidth: 流控带宽值。取值大于0，表示限流到指定的Mbps；取值等于0，表示完全限流；取值为-1，不限流。
        :type Bandwidth: int
        :param _IpAddresses: 限流的云服务器内网IP。
        :type IpAddresses: list of str
        """
        self._GatewayId = None
        self._Bandwidth = None
        self._IpAddresses = None

    @property
    def GatewayId(self):
        return self._GatewayId

    @GatewayId.setter
    def GatewayId(self, GatewayId):
        self._GatewayId = GatewayId

    @property
    def Bandwidth(self):
        return self._Bandwidth

    @Bandwidth.setter
    def Bandwidth(self, Bandwidth):
        self._Bandwidth = Bandwidth

    @property
    def IpAddresses(self):
        return self._IpAddresses

    @IpAddresses.setter
    def IpAddresses(self, IpAddresses):
        self._IpAddresses = IpAddresses


    def _deserialize(self, params):
        self._GatewayId = params.get("GatewayId")
        self._Bandwidth = params.get("Bandwidth")
        self._IpAddresses = params.get("IpAddresses")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyGatewayFlowQosResponse(AbstractModel):
    """ModifyGatewayFlowQos返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyHaVipAttributeRequest(AbstractModel):
    """ModifyHaVipAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _HaVipId: `HAVIP`唯一`ID`，形如：`havip-9o233uri`。
        :type HaVipId: str
        :param _HaVipName: `HAVIP`名称，可任意命名，但不得超过60个字符。
        :type HaVipName: str
        """
        self._HaVipId = None
        self._HaVipName = None

    @property
    def HaVipId(self):
        return self._HaVipId

    @HaVipId.setter
    def HaVipId(self, HaVipId):
        self._HaVipId = HaVipId

    @property
    def HaVipName(self):
        return self._HaVipName

    @HaVipName.setter
    def HaVipName(self, HaVipName):
        self._HaVipName = HaVipName


    def _deserialize(self, params):
        self._HaVipId = params.get("HaVipId")
        self._HaVipName = params.get("HaVipName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyHaVipAttributeResponse(AbstractModel):
    """ModifyHaVipAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyIp6AddressesBandwidthRequest(AbstractModel):
    """ModifyIp6AddressesBandwidth请求参数结构体

    """

    def __init__(self):
        r"""
        :param _InternetMaxBandwidthOut: 修改的目标带宽，单位Mbps
        :type InternetMaxBandwidthOut: int
        :param _Ip6Addresses: IPV6地址。Ip6Addresses和Ip6AddressId必须且只能传一个
        :type Ip6Addresses: list of str
        :param _Ip6AddressIds: IPV6地址对应的唯一ID，形如eip-xxxxxxxx。Ip6Addresses和Ip6AddressId必须且只能传一个
        :type Ip6AddressIds: list of str
        """
        self._InternetMaxBandwidthOut = None
        self._Ip6Addresses = None
        self._Ip6AddressIds = None

    @property
    def InternetMaxBandwidthOut(self):
        return self._InternetMaxBandwidthOut

    @InternetMaxBandwidthOut.setter
    def InternetMaxBandwidthOut(self, InternetMaxBandwidthOut):
        self._InternetMaxBandwidthOut = InternetMaxBandwidthOut

    @property
    def Ip6Addresses(self):
        return self._Ip6Addresses

    @Ip6Addresses.setter
    def Ip6Addresses(self, Ip6Addresses):
        self._Ip6Addresses = Ip6Addresses

    @property
    def Ip6AddressIds(self):
        return self._Ip6AddressIds

    @Ip6AddressIds.setter
    def Ip6AddressIds(self, Ip6AddressIds):
        self._Ip6AddressIds = Ip6AddressIds


    def _deserialize(self, params):
        self._InternetMaxBandwidthOut = params.get("InternetMaxBandwidthOut")
        self._Ip6Addresses = params.get("Ip6Addresses")
        self._Ip6AddressIds = params.get("Ip6AddressIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyIp6AddressesBandwidthResponse(AbstractModel):
    """ModifyIp6AddressesBandwidth返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ModifyIp6RuleRequest(AbstractModel):
    """ModifyIp6Rule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip6TranslatorId: IPV6转换实例唯一ID，形如ip6-xxxxxxxx
        :type Ip6TranslatorId: str
        :param _Ip6RuleId: IPV6转换规则唯一ID，形如rule6-xxxxxxxx
        :type Ip6RuleId: str
        :param _Ip6RuleName: IPV6转换规则修改后的名称
        :type Ip6RuleName: str
        :param _Vip: IPV6转换规则修改后的IPV4地址
        :type Vip: str
        :param _Vport: IPV6转换规则修改后的IPV4端口号
        :type Vport: int
        """
        self._Ip6TranslatorId = None
        self._Ip6RuleId = None
        self._Ip6RuleName = None
        self._Vip = None
        self._Vport = None

    @property
    def Ip6TranslatorId(self):
        return self._Ip6TranslatorId

    @Ip6TranslatorId.setter
    def Ip6TranslatorId(self, Ip6TranslatorId):
        self._Ip6TranslatorId = Ip6TranslatorId

    @property
    def Ip6RuleId(self):
        return self._Ip6RuleId

    @Ip6RuleId.setter
    def Ip6RuleId(self, Ip6RuleId):
        self._Ip6RuleId = Ip6RuleId

    @property
    def Ip6RuleName(self):
        return self._Ip6RuleName

    @Ip6RuleName.setter
    def Ip6RuleName(self, Ip6RuleName):
        self._Ip6RuleName = Ip6RuleName

    @property
    def Vip(self):
        return self._Vip

    @Vip.setter
    def Vip(self, Vip):
        self._Vip = Vip

    @property
    def Vport(self):
        return self._Vport

    @Vport.setter
    def Vport(self, Vport):
        self._Vport = Vport


    def _deserialize(self, params):
        self._Ip6TranslatorId = params.get("Ip6TranslatorId")
        self._Ip6RuleId = params.get("Ip6RuleId")
        self._Ip6RuleName = params.get("Ip6RuleName")
        self._Vip = params.get("Vip")
        self._Vport = params.get("Vport")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyIp6RuleResponse(AbstractModel):
    """ModifyIp6Rule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyIp6TranslatorRequest(AbstractModel):
    """ModifyIp6Translator请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip6TranslatorId: IPV6转换实例唯一ID，形如ip6-xxxxxxxxx
        :type Ip6TranslatorId: str
        :param _Ip6TranslatorName: IPV6转换实例修改名称
        :type Ip6TranslatorName: str
        """
        self._Ip6TranslatorId = None
        self._Ip6TranslatorName = None

    @property
    def Ip6TranslatorId(self):
        return self._Ip6TranslatorId

    @Ip6TranslatorId.setter
    def Ip6TranslatorId(self, Ip6TranslatorId):
        self._Ip6TranslatorId = Ip6TranslatorId

    @property
    def Ip6TranslatorName(self):
        return self._Ip6TranslatorName

    @Ip6TranslatorName.setter
    def Ip6TranslatorName(self, Ip6TranslatorName):
        self._Ip6TranslatorName = Ip6TranslatorName


    def _deserialize(self, params):
        self._Ip6TranslatorId = params.get("Ip6TranslatorId")
        self._Ip6TranslatorName = params.get("Ip6TranslatorName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyIp6TranslatorResponse(AbstractModel):
    """ModifyIp6Translator返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyIpv6AddressesAttributeRequest(AbstractModel):
    """ModifyIpv6AddressesAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceId: 弹性网卡实例`ID`，形如：`eni-m6dyj72l`。
        :type NetworkInterfaceId: str
        :param _Ipv6Addresses: 指定的内网IPv6地址信息。
        :type Ipv6Addresses: list of Ipv6Address
        """
        self._NetworkInterfaceId = None
        self._Ipv6Addresses = None

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId

    @property
    def Ipv6Addresses(self):
        return self._Ipv6Addresses

    @Ipv6Addresses.setter
    def Ipv6Addresses(self, Ipv6Addresses):
        self._Ipv6Addresses = Ipv6Addresses


    def _deserialize(self, params):
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        if params.get("Ipv6Addresses") is not None:
            self._Ipv6Addresses = []
            for item in params.get("Ipv6Addresses"):
                obj = Ipv6Address()
                obj._deserialize(item)
                self._Ipv6Addresses.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyIpv6AddressesAttributeResponse(AbstractModel):
    """ModifyIpv6AddressesAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyLocalGatewayRequest(AbstractModel):
    """ModifyLocalGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _LocalGatewayName: 本地网关名称。
        :type LocalGatewayName: str
        :param _CdcId: CDC实例ID。
        :type CdcId: str
        :param _LocalGatewayId: 本地网关实例ID。
        :type LocalGatewayId: str
        :param _VpcId: VPC实例ID。
        :type VpcId: str
        """
        self._LocalGatewayName = None
        self._CdcId = None
        self._LocalGatewayId = None
        self._VpcId = None

    @property
    def LocalGatewayName(self):
        return self._LocalGatewayName

    @LocalGatewayName.setter
    def LocalGatewayName(self, LocalGatewayName):
        self._LocalGatewayName = LocalGatewayName

    @property
    def CdcId(self):
        return self._CdcId

    @CdcId.setter
    def CdcId(self, CdcId):
        self._CdcId = CdcId

    @property
    def LocalGatewayId(self):
        return self._LocalGatewayId

    @LocalGatewayId.setter
    def LocalGatewayId(self, LocalGatewayId):
        self._LocalGatewayId = LocalGatewayId

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId


    def _deserialize(self, params):
        self._LocalGatewayName = params.get("LocalGatewayName")
        self._CdcId = params.get("CdcId")
        self._LocalGatewayId = params.get("LocalGatewayId")
        self._VpcId = params.get("VpcId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyLocalGatewayResponse(AbstractModel):
    """ModifyLocalGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyNatGatewayAttributeRequest(AbstractModel):
    """ModifyNatGatewayAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayId: NAT网关的ID，形如：`nat-df45454`。
        :type NatGatewayId: str
        :param _NatGatewayName: NAT网关的名称，形如：`test_nat`。
        :type NatGatewayName: str
        :param _InternetMaxBandwidthOut: NAT网关最大外网出带宽(单位:Mbps)。
        :type InternetMaxBandwidthOut: int
        :param _ModifySecurityGroup: 是否修改NAT网关绑定的安全组。
        :type ModifySecurityGroup: bool
        :param _SecurityGroupIds: NAT网关绑定的安全组列表，最终状态，空列表表示删除所有安全组，形如: `['sg-1n232323', 'sg-o4242424']`
        :type SecurityGroupIds: list of str
        """
        self._NatGatewayId = None
        self._NatGatewayName = None
        self._InternetMaxBandwidthOut = None
        self._ModifySecurityGroup = None
        self._SecurityGroupIds = None

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def NatGatewayName(self):
        return self._NatGatewayName

    @NatGatewayName.setter
    def NatGatewayName(self, NatGatewayName):
        self._NatGatewayName = NatGatewayName

    @property
    def InternetMaxBandwidthOut(self):
        return self._InternetMaxBandwidthOut

    @InternetMaxBandwidthOut.setter
    def InternetMaxBandwidthOut(self, InternetMaxBandwidthOut):
        self._InternetMaxBandwidthOut = InternetMaxBandwidthOut

    @property
    def ModifySecurityGroup(self):
        return self._ModifySecurityGroup

    @ModifySecurityGroup.setter
    def ModifySecurityGroup(self, ModifySecurityGroup):
        self._ModifySecurityGroup = ModifySecurityGroup

    @property
    def SecurityGroupIds(self):
        return self._SecurityGroupIds

    @SecurityGroupIds.setter
    def SecurityGroupIds(self, SecurityGroupIds):
        self._SecurityGroupIds = SecurityGroupIds


    def _deserialize(self, params):
        self._NatGatewayId = params.get("NatGatewayId")
        self._NatGatewayName = params.get("NatGatewayName")
        self._InternetMaxBandwidthOut = params.get("InternetMaxBandwidthOut")
        self._ModifySecurityGroup = params.get("ModifySecurityGroup")
        self._SecurityGroupIds = params.get("SecurityGroupIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyNatGatewayAttributeResponse(AbstractModel):
    """ModifyNatGatewayAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyNatGatewayDestinationIpPortTranslationNatRuleRequest(AbstractModel):
    """ModifyNatGatewayDestinationIpPortTranslationNatRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayId: NAT网关的ID，形如：`nat-df45454`。
        :type NatGatewayId: str
        :param _SourceNatRule: 源NAT网关的端口转换规则。
        :type SourceNatRule: :class:`tencentcloud.vpc.v20170312.models.DestinationIpPortTranslationNatRule`
        :param _DestinationNatRule: 目的NAT网关的端口转换规则。
        :type DestinationNatRule: :class:`tencentcloud.vpc.v20170312.models.DestinationIpPortTranslationNatRule`
        """
        self._NatGatewayId = None
        self._SourceNatRule = None
        self._DestinationNatRule = None

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def SourceNatRule(self):
        return self._SourceNatRule

    @SourceNatRule.setter
    def SourceNatRule(self, SourceNatRule):
        self._SourceNatRule = SourceNatRule

    @property
    def DestinationNatRule(self):
        return self._DestinationNatRule

    @DestinationNatRule.setter
    def DestinationNatRule(self, DestinationNatRule):
        self._DestinationNatRule = DestinationNatRule


    def _deserialize(self, params):
        self._NatGatewayId = params.get("NatGatewayId")
        if params.get("SourceNatRule") is not None:
            self._SourceNatRule = DestinationIpPortTranslationNatRule()
            self._SourceNatRule._deserialize(params.get("SourceNatRule"))
        if params.get("DestinationNatRule") is not None:
            self._DestinationNatRule = DestinationIpPortTranslationNatRule()
            self._DestinationNatRule._deserialize(params.get("DestinationNatRule"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyNatGatewayDestinationIpPortTranslationNatRuleResponse(AbstractModel):
    """ModifyNatGatewayDestinationIpPortTranslationNatRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyNatGatewaySourceIpTranslationNatRuleRequest(AbstractModel):
    """ModifyNatGatewaySourceIpTranslationNatRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayId: NAT网关的ID，形如：`nat-df453454`。
        :type NatGatewayId: str
        :param _SourceIpTranslationNatRule: NAT网关的SNAT转换规则。
        :type SourceIpTranslationNatRule: :class:`tencentcloud.vpc.v20170312.models.SourceIpTranslationNatRule`
        """
        self._NatGatewayId = None
        self._SourceIpTranslationNatRule = None

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def SourceIpTranslationNatRule(self):
        return self._SourceIpTranslationNatRule

    @SourceIpTranslationNatRule.setter
    def SourceIpTranslationNatRule(self, SourceIpTranslationNatRule):
        self._SourceIpTranslationNatRule = SourceIpTranslationNatRule


    def _deserialize(self, params):
        self._NatGatewayId = params.get("NatGatewayId")
        if params.get("SourceIpTranslationNatRule") is not None:
            self._SourceIpTranslationNatRule = SourceIpTranslationNatRule()
            self._SourceIpTranslationNatRule._deserialize(params.get("SourceIpTranslationNatRule"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyNatGatewaySourceIpTranslationNatRuleResponse(AbstractModel):
    """ModifyNatGatewaySourceIpTranslationNatRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyNetDetectRequest(AbstractModel):
    """ModifyNetDetect请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetDetectId: 网络探测实例`ID`。形如：`netd-12345678`
        :type NetDetectId: str
        :param _NetDetectName: 网络探测名称，最大长度不能超过60个字节。
        :type NetDetectName: str
        :param _DetectDestinationIp: 探测目的IPv4地址数组，最多两个。
        :type DetectDestinationIp: list of str
        :param _NextHopType: 下一跳类型，目前我们支持的类型有：
VPN：VPN网关；
DIRECTCONNECT：专线网关；
PEERCONNECTION：对等连接；
NAT：NAT网关；
NORMAL_CVM：普通云服务器；
CCN：云联网网关；
NONEXTHOP：无下一跳；
        :type NextHopType: str
        :param _NextHopDestination: 下一跳目的网关，取值与“下一跳类型”相关：
下一跳类型为VPN，取值VPN网关ID，形如：vpngw-12345678；
下一跳类型为DIRECTCONNECT，取值专线网关ID，形如：dcg-12345678；
下一跳类型为PEERCONNECTION，取值对等连接ID，形如：pcx-12345678；
下一跳类型为NAT，取值Nat网关，形如：nat-12345678；
下一跳类型为NORMAL_CVM，取值云服务器IPv4地址，形如：10.0.0.12；
下一跳类型为CCN，取值云联网ID，形如：ccn-12345678；
下一跳类型为NONEXTHOP，指定网络探测为无下一跳的网络探测；
        :type NextHopDestination: str
        :param _NetDetectDescription: 网络探测描述。
        :type NetDetectDescription: str
        """
        self._NetDetectId = None
        self._NetDetectName = None
        self._DetectDestinationIp = None
        self._NextHopType = None
        self._NextHopDestination = None
        self._NetDetectDescription = None

    @property
    def NetDetectId(self):
        return self._NetDetectId

    @NetDetectId.setter
    def NetDetectId(self, NetDetectId):
        self._NetDetectId = NetDetectId

    @property
    def NetDetectName(self):
        return self._NetDetectName

    @NetDetectName.setter
    def NetDetectName(self, NetDetectName):
        self._NetDetectName = NetDetectName

    @property
    def DetectDestinationIp(self):
        return self._DetectDestinationIp

    @DetectDestinationIp.setter
    def DetectDestinationIp(self, DetectDestinationIp):
        self._DetectDestinationIp = DetectDestinationIp

    @property
    def NextHopType(self):
        return self._NextHopType

    @NextHopType.setter
    def NextHopType(self, NextHopType):
        self._NextHopType = NextHopType

    @property
    def NextHopDestination(self):
        return self._NextHopDestination

    @NextHopDestination.setter
    def NextHopDestination(self, NextHopDestination):
        self._NextHopDestination = NextHopDestination

    @property
    def NetDetectDescription(self):
        return self._NetDetectDescription

    @NetDetectDescription.setter
    def NetDetectDescription(self, NetDetectDescription):
        self._NetDetectDescription = NetDetectDescription


    def _deserialize(self, params):
        self._NetDetectId = params.get("NetDetectId")
        self._NetDetectName = params.get("NetDetectName")
        self._DetectDestinationIp = params.get("DetectDestinationIp")
        self._NextHopType = params.get("NextHopType")
        self._NextHopDestination = params.get("NextHopDestination")
        self._NetDetectDescription = params.get("NetDetectDescription")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyNetDetectResponse(AbstractModel):
    """ModifyNetDetect返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyNetworkAclAttributeRequest(AbstractModel):
    """ModifyNetworkAclAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkAclId: 网络ACL实例ID。例如：acl-12345678。
        :type NetworkAclId: str
        :param _NetworkAclName: 网络ACL名称，最大长度不能超过60个字节。
        :type NetworkAclName: str
        """
        self._NetworkAclId = None
        self._NetworkAclName = None

    @property
    def NetworkAclId(self):
        return self._NetworkAclId

    @NetworkAclId.setter
    def NetworkAclId(self, NetworkAclId):
        self._NetworkAclId = NetworkAclId

    @property
    def NetworkAclName(self):
        return self._NetworkAclName

    @NetworkAclName.setter
    def NetworkAclName(self, NetworkAclName):
        self._NetworkAclName = NetworkAclName


    def _deserialize(self, params):
        self._NetworkAclId = params.get("NetworkAclId")
        self._NetworkAclName = params.get("NetworkAclName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyNetworkAclAttributeResponse(AbstractModel):
    """ModifyNetworkAclAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyNetworkAclEntriesRequest(AbstractModel):
    """ModifyNetworkAclEntries请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkAclId: 网络ACL实例ID。例如：acl-12345678。
        :type NetworkAclId: str
        :param _NetworkAclEntrySet: 网络ACL规则集。NetworkAclEntrySet和NetworkAclQuintupleSet只能输入一个。
        :type NetworkAclEntrySet: :class:`tencentcloud.vpc.v20170312.models.NetworkAclEntrySet`
        :param _NetworkAclQuintupleSet: 网络ACL五元组规则集。NetworkAclEntrySet和NetworkAclQuintupleSet只能输入一个。
        :type NetworkAclQuintupleSet: :class:`tencentcloud.vpc.v20170312.models.NetworkAclQuintupleEntries`
        :param _EnableUpdateAclEntries: 三元组的增量更新。该接口的默认语义为全量覆盖。当需要实现增量更新语义时，设置该参数为True。
        :type EnableUpdateAclEntries: bool
        """
        self._NetworkAclId = None
        self._NetworkAclEntrySet = None
        self._NetworkAclQuintupleSet = None
        self._EnableUpdateAclEntries = None

    @property
    def NetworkAclId(self):
        return self._NetworkAclId

    @NetworkAclId.setter
    def NetworkAclId(self, NetworkAclId):
        self._NetworkAclId = NetworkAclId

    @property
    def NetworkAclEntrySet(self):
        return self._NetworkAclEntrySet

    @NetworkAclEntrySet.setter
    def NetworkAclEntrySet(self, NetworkAclEntrySet):
        self._NetworkAclEntrySet = NetworkAclEntrySet

    @property
    def NetworkAclQuintupleSet(self):
        return self._NetworkAclQuintupleSet

    @NetworkAclQuintupleSet.setter
    def NetworkAclQuintupleSet(self, NetworkAclQuintupleSet):
        self._NetworkAclQuintupleSet = NetworkAclQuintupleSet

    @property
    def EnableUpdateAclEntries(self):
        return self._EnableUpdateAclEntries

    @EnableUpdateAclEntries.setter
    def EnableUpdateAclEntries(self, EnableUpdateAclEntries):
        self._EnableUpdateAclEntries = EnableUpdateAclEntries


    def _deserialize(self, params):
        self._NetworkAclId = params.get("NetworkAclId")
        if params.get("NetworkAclEntrySet") is not None:
            self._NetworkAclEntrySet = NetworkAclEntrySet()
            self._NetworkAclEntrySet._deserialize(params.get("NetworkAclEntrySet"))
        if params.get("NetworkAclQuintupleSet") is not None:
            self._NetworkAclQuintupleSet = NetworkAclQuintupleEntries()
            self._NetworkAclQuintupleSet._deserialize(params.get("NetworkAclQuintupleSet"))
        self._EnableUpdateAclEntries = params.get("EnableUpdateAclEntries")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyNetworkAclEntriesResponse(AbstractModel):
    """ModifyNetworkAclEntries返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyNetworkAclQuintupleEntriesRequest(AbstractModel):
    """ModifyNetworkAclQuintupleEntries请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkAclId: 网络ACL实例ID。例如：acl-12345678。
        :type NetworkAclId: str
        :param _NetworkAclQuintupleSet: 网络五元组ACL规则集。
        :type NetworkAclQuintupleSet: :class:`tencentcloud.vpc.v20170312.models.NetworkAclQuintupleEntries`
        """
        self._NetworkAclId = None
        self._NetworkAclQuintupleSet = None

    @property
    def NetworkAclId(self):
        return self._NetworkAclId

    @NetworkAclId.setter
    def NetworkAclId(self, NetworkAclId):
        self._NetworkAclId = NetworkAclId

    @property
    def NetworkAclQuintupleSet(self):
        return self._NetworkAclQuintupleSet

    @NetworkAclQuintupleSet.setter
    def NetworkAclQuintupleSet(self, NetworkAclQuintupleSet):
        self._NetworkAclQuintupleSet = NetworkAclQuintupleSet


    def _deserialize(self, params):
        self._NetworkAclId = params.get("NetworkAclId")
        if params.get("NetworkAclQuintupleSet") is not None:
            self._NetworkAclQuintupleSet = NetworkAclQuintupleEntries()
            self._NetworkAclQuintupleSet._deserialize(params.get("NetworkAclQuintupleSet"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyNetworkAclQuintupleEntriesResponse(AbstractModel):
    """ModifyNetworkAclQuintupleEntries返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyNetworkInterfaceAttributeRequest(AbstractModel):
    """ModifyNetworkInterfaceAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceId: 弹性网卡实例ID，例如：eni-pxir56ns。
        :type NetworkInterfaceId: str
        :param _NetworkInterfaceName: 弹性网卡名称，最大长度不能超过60个字节。
        :type NetworkInterfaceName: str
        :param _NetworkInterfaceDescription: 弹性网卡描述，可任意命名，但不得超过60个字符。
        :type NetworkInterfaceDescription: str
        :param _SecurityGroupIds: 指定绑定的安全组，例如:['sg-1dd51d']。
        :type SecurityGroupIds: list of str
        :param _TrunkingFlag: 网卡trunking模式设置，Enable-开启，Disable--关闭，默认关闭。
        :type TrunkingFlag: str
        """
        self._NetworkInterfaceId = None
        self._NetworkInterfaceName = None
        self._NetworkInterfaceDescription = None
        self._SecurityGroupIds = None
        self._TrunkingFlag = None

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId

    @property
    def NetworkInterfaceName(self):
        return self._NetworkInterfaceName

    @NetworkInterfaceName.setter
    def NetworkInterfaceName(self, NetworkInterfaceName):
        self._NetworkInterfaceName = NetworkInterfaceName

    @property
    def NetworkInterfaceDescription(self):
        return self._NetworkInterfaceDescription

    @NetworkInterfaceDescription.setter
    def NetworkInterfaceDescription(self, NetworkInterfaceDescription):
        self._NetworkInterfaceDescription = NetworkInterfaceDescription

    @property
    def SecurityGroupIds(self):
        return self._SecurityGroupIds

    @SecurityGroupIds.setter
    def SecurityGroupIds(self, SecurityGroupIds):
        self._SecurityGroupIds = SecurityGroupIds

    @property
    def TrunkingFlag(self):
        return self._TrunkingFlag

    @TrunkingFlag.setter
    def TrunkingFlag(self, TrunkingFlag):
        self._TrunkingFlag = TrunkingFlag


    def _deserialize(self, params):
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        self._NetworkInterfaceName = params.get("NetworkInterfaceName")
        self._NetworkInterfaceDescription = params.get("NetworkInterfaceDescription")
        self._SecurityGroupIds = params.get("SecurityGroupIds")
        self._TrunkingFlag = params.get("TrunkingFlag")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyNetworkInterfaceAttributeResponse(AbstractModel):
    """ModifyNetworkInterfaceAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyNetworkInterfaceQosRequest(AbstractModel):
    """ModifyNetworkInterfaceQos请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceIds: 弹性网卡ID，支持批量修改。
        :type NetworkInterfaceIds: list of str
        :param _QosLevel: 服务质量，可选值：PT、AU、AG、DEFAULT，分别代表云金、云银、云铜、默认四个等级。
        :type QosLevel: str
        :param _DirectSendMaxPort: DirectSend端口范围最大值。
        :type DirectSendMaxPort: int
        """
        self._NetworkInterfaceIds = None
        self._QosLevel = None
        self._DirectSendMaxPort = None

    @property
    def NetworkInterfaceIds(self):
        return self._NetworkInterfaceIds

    @NetworkInterfaceIds.setter
    def NetworkInterfaceIds(self, NetworkInterfaceIds):
        self._NetworkInterfaceIds = NetworkInterfaceIds

    @property
    def QosLevel(self):
        return self._QosLevel

    @QosLevel.setter
    def QosLevel(self, QosLevel):
        self._QosLevel = QosLevel

    @property
    def DirectSendMaxPort(self):
        return self._DirectSendMaxPort

    @DirectSendMaxPort.setter
    def DirectSendMaxPort(self, DirectSendMaxPort):
        self._DirectSendMaxPort = DirectSendMaxPort


    def _deserialize(self, params):
        self._NetworkInterfaceIds = params.get("NetworkInterfaceIds")
        self._QosLevel = params.get("QosLevel")
        self._DirectSendMaxPort = params.get("DirectSendMaxPort")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyNetworkInterfaceQosResponse(AbstractModel):
    """ModifyNetworkInterfaceQos返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyPrivateIpAddressesAttributeRequest(AbstractModel):
    """ModifyPrivateIpAddressesAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceId: 弹性网卡实例ID，例如：eni-m6dyj72l。
        :type NetworkInterfaceId: str
        :param _PrivateIpAddresses: 指定的内网IP信息。
        :type PrivateIpAddresses: list of PrivateIpAddressSpecification
        """
        self._NetworkInterfaceId = None
        self._PrivateIpAddresses = None

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId

    @property
    def PrivateIpAddresses(self):
        return self._PrivateIpAddresses

    @PrivateIpAddresses.setter
    def PrivateIpAddresses(self, PrivateIpAddresses):
        self._PrivateIpAddresses = PrivateIpAddresses


    def _deserialize(self, params):
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        if params.get("PrivateIpAddresses") is not None:
            self._PrivateIpAddresses = []
            for item in params.get("PrivateIpAddresses"):
                obj = PrivateIpAddressSpecification()
                obj._deserialize(item)
                self._PrivateIpAddresses.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyPrivateIpAddressesAttributeResponse(AbstractModel):
    """ModifyPrivateIpAddressesAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyRouteTableAttributeRequest(AbstractModel):
    """ModifyRouteTableAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RouteTableId: 路由表实例ID，例如：rtb-azd4dt1c。
        :type RouteTableId: str
        :param _RouteTableName: 路由表名称。
        :type RouteTableName: str
        """
        self._RouteTableId = None
        self._RouteTableName = None

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId

    @property
    def RouteTableName(self):
        return self._RouteTableName

    @RouteTableName.setter
    def RouteTableName(self, RouteTableName):
        self._RouteTableName = RouteTableName


    def _deserialize(self, params):
        self._RouteTableId = params.get("RouteTableId")
        self._RouteTableName = params.get("RouteTableName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyRouteTableAttributeResponse(AbstractModel):
    """ModifyRouteTableAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifySecurityGroupAttributeRequest(AbstractModel):
    """ModifySecurityGroupAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupId: 安全组实例ID，例如sg-33ocnj9n，可通过<a href="https://cloud.tencent.com/document/product/215/15808">DescribeSecurityGroups</a>获取。
        :type SecurityGroupId: str
        :param _GroupName: 安全组名称，可任意命名，但不得超过60个字符。
        :type GroupName: str
        :param _GroupDescription: 安全组备注，最多100个字符。
        :type GroupDescription: str
        """
        self._SecurityGroupId = None
        self._GroupName = None
        self._GroupDescription = None

    @property
    def SecurityGroupId(self):
        return self._SecurityGroupId

    @SecurityGroupId.setter
    def SecurityGroupId(self, SecurityGroupId):
        self._SecurityGroupId = SecurityGroupId

    @property
    def GroupName(self):
        return self._GroupName

    @GroupName.setter
    def GroupName(self, GroupName):
        self._GroupName = GroupName

    @property
    def GroupDescription(self):
        return self._GroupDescription

    @GroupDescription.setter
    def GroupDescription(self, GroupDescription):
        self._GroupDescription = GroupDescription


    def _deserialize(self, params):
        self._SecurityGroupId = params.get("SecurityGroupId")
        self._GroupName = params.get("GroupName")
        self._GroupDescription = params.get("GroupDescription")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifySecurityGroupAttributeResponse(AbstractModel):
    """ModifySecurityGroupAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifySecurityGroupPoliciesRequest(AbstractModel):
    """ModifySecurityGroupPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupId: 安全组实例ID，例如sg-33ocnj9n，可通过<a href="https://cloud.tencent.com/document/product/215/15808">DescribeSecurityGroups</a>获取。
        :type SecurityGroupId: str
        :param _SecurityGroupPolicySet: 安全组规则集合。 SecurityGroupPolicySet对象必须同时指定新的出（Egress）入（Ingress）站规则。 SecurityGroupPolicy对象不支持自定义索引（PolicyIndex）。
        :type SecurityGroupPolicySet: :class:`tencentcloud.vpc.v20170312.models.SecurityGroupPolicySet`
        :param _SortPolicys: 排序安全组标识，默认值为False。当SortPolicys为False时，不改变安全组规则排序；当SortPolicys为True时，系统将严格按照SecurityGroupPolicySet参数传入的安全组规则及顺序进行重置，考虑到人为输入参数可能存在遗漏风险，建议通过控制台对安全组规则进行排序。
        :type SortPolicys: bool
        """
        self._SecurityGroupId = None
        self._SecurityGroupPolicySet = None
        self._SortPolicys = None

    @property
    def SecurityGroupId(self):
        return self._SecurityGroupId

    @SecurityGroupId.setter
    def SecurityGroupId(self, SecurityGroupId):
        self._SecurityGroupId = SecurityGroupId

    @property
    def SecurityGroupPolicySet(self):
        return self._SecurityGroupPolicySet

    @SecurityGroupPolicySet.setter
    def SecurityGroupPolicySet(self, SecurityGroupPolicySet):
        self._SecurityGroupPolicySet = SecurityGroupPolicySet

    @property
    def SortPolicys(self):
        return self._SortPolicys

    @SortPolicys.setter
    def SortPolicys(self, SortPolicys):
        self._SortPolicys = SortPolicys


    def _deserialize(self, params):
        self._SecurityGroupId = params.get("SecurityGroupId")
        if params.get("SecurityGroupPolicySet") is not None:
            self._SecurityGroupPolicySet = SecurityGroupPolicySet()
            self._SecurityGroupPolicySet._deserialize(params.get("SecurityGroupPolicySet"))
        self._SortPolicys = params.get("SortPolicys")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifySecurityGroupPoliciesResponse(AbstractModel):
    """ModifySecurityGroupPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyServiceTemplateAttributeRequest(AbstractModel):
    """ModifyServiceTemplateAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ServiceTemplateId: 协议端口模板实例ID，例如：ppm-529nwwj8。
        :type ServiceTemplateId: str
        :param _ServiceTemplateName: 协议端口模板名称。
        :type ServiceTemplateName: str
        :param _Services: 支持单个端口、多个端口、连续端口及所有端口，协议支持：TCP、UDP、ICMP、GRE 协议。
        :type Services: list of str
        :param _ServicesExtra: 支持添加备注的协议端口信息，支持单个端口、多个端口、连续端口及所有端口，协议支持：TCP、UDP、ICMP、GRE 协议。
        :type ServicesExtra: list of ServicesInfo
        """
        self._ServiceTemplateId = None
        self._ServiceTemplateName = None
        self._Services = None
        self._ServicesExtra = None

    @property
    def ServiceTemplateId(self):
        return self._ServiceTemplateId

    @ServiceTemplateId.setter
    def ServiceTemplateId(self, ServiceTemplateId):
        self._ServiceTemplateId = ServiceTemplateId

    @property
    def ServiceTemplateName(self):
        return self._ServiceTemplateName

    @ServiceTemplateName.setter
    def ServiceTemplateName(self, ServiceTemplateName):
        self._ServiceTemplateName = ServiceTemplateName

    @property
    def Services(self):
        return self._Services

    @Services.setter
    def Services(self, Services):
        self._Services = Services

    @property
    def ServicesExtra(self):
        return self._ServicesExtra

    @ServicesExtra.setter
    def ServicesExtra(self, ServicesExtra):
        self._ServicesExtra = ServicesExtra


    def _deserialize(self, params):
        self._ServiceTemplateId = params.get("ServiceTemplateId")
        self._ServiceTemplateName = params.get("ServiceTemplateName")
        self._Services = params.get("Services")
        if params.get("ServicesExtra") is not None:
            self._ServicesExtra = []
            for item in params.get("ServicesExtra"):
                obj = ServicesInfo()
                obj._deserialize(item)
                self._ServicesExtra.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyServiceTemplateAttributeResponse(AbstractModel):
    """ModifyServiceTemplateAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyServiceTemplateGroupAttributeRequest(AbstractModel):
    """ModifyServiceTemplateGroupAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ServiceTemplateGroupId: 协议端口模板集合实例ID，例如：ppmg-ei8hfd9a。
        :type ServiceTemplateGroupId: str
        :param _ServiceTemplateGroupName: 协议端口模板集合名称。
        :type ServiceTemplateGroupName: str
        :param _ServiceTemplateIds: 协议端口模板实例ID，例如：ppm-4dw6agho。
        :type ServiceTemplateIds: list of str
        """
        self._ServiceTemplateGroupId = None
        self._ServiceTemplateGroupName = None
        self._ServiceTemplateIds = None

    @property
    def ServiceTemplateGroupId(self):
        return self._ServiceTemplateGroupId

    @ServiceTemplateGroupId.setter
    def ServiceTemplateGroupId(self, ServiceTemplateGroupId):
        self._ServiceTemplateGroupId = ServiceTemplateGroupId

    @property
    def ServiceTemplateGroupName(self):
        return self._ServiceTemplateGroupName

    @ServiceTemplateGroupName.setter
    def ServiceTemplateGroupName(self, ServiceTemplateGroupName):
        self._ServiceTemplateGroupName = ServiceTemplateGroupName

    @property
    def ServiceTemplateIds(self):
        return self._ServiceTemplateIds

    @ServiceTemplateIds.setter
    def ServiceTemplateIds(self, ServiceTemplateIds):
        self._ServiceTemplateIds = ServiceTemplateIds


    def _deserialize(self, params):
        self._ServiceTemplateGroupId = params.get("ServiceTemplateGroupId")
        self._ServiceTemplateGroupName = params.get("ServiceTemplateGroupName")
        self._ServiceTemplateIds = params.get("ServiceTemplateIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyServiceTemplateGroupAttributeResponse(AbstractModel):
    """ModifyServiceTemplateGroupAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifySnapshotPoliciesRequest(AbstractModel):
    """ModifySnapshotPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SnapshotPoliciesInfo: 快照策略修改信息。
        :type SnapshotPoliciesInfo: list of BatchModifySnapshotPolicy
        """
        self._SnapshotPoliciesInfo = None

    @property
    def SnapshotPoliciesInfo(self):
        return self._SnapshotPoliciesInfo

    @SnapshotPoliciesInfo.setter
    def SnapshotPoliciesInfo(self, SnapshotPoliciesInfo):
        self._SnapshotPoliciesInfo = SnapshotPoliciesInfo


    def _deserialize(self, params):
        if params.get("SnapshotPoliciesInfo") is not None:
            self._SnapshotPoliciesInfo = []
            for item in params.get("SnapshotPoliciesInfo"):
                obj = BatchModifySnapshotPolicy()
                obj._deserialize(item)
                self._SnapshotPoliciesInfo.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifySnapshotPoliciesResponse(AbstractModel):
    """ModifySnapshotPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifySubnetAttributeRequest(AbstractModel):
    """ModifySubnetAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SubnetId: 子网实例ID。形如：subnet-pxir56ns。
        :type SubnetId: str
        :param _SubnetName: 子网名称，最大长度不能超过60个字节。
        :type SubnetName: str
        :param _EnableBroadcast: 子网是否开启广播。
        :type EnableBroadcast: str
        """
        self._SubnetId = None
        self._SubnetName = None
        self._EnableBroadcast = None

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def SubnetName(self):
        return self._SubnetName

    @SubnetName.setter
    def SubnetName(self, SubnetName):
        self._SubnetName = SubnetName

    @property
    def EnableBroadcast(self):
        return self._EnableBroadcast

    @EnableBroadcast.setter
    def EnableBroadcast(self, EnableBroadcast):
        self._EnableBroadcast = EnableBroadcast


    def _deserialize(self, params):
        self._SubnetId = params.get("SubnetId")
        self._SubnetName = params.get("SubnetName")
        self._EnableBroadcast = params.get("EnableBroadcast")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifySubnetAttributeResponse(AbstractModel):
    """ModifySubnetAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyTemplateMemberRequest(AbstractModel):
    """ModifyTemplateMember请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TemplateId: 参数模板实例ID，支持IP地址、协议端口、IP地址组、协议端口组四种参数模板的实例ID。
        :type TemplateId: str
        :param _OriginalTemplateMember: 需要修改的参数模板成员信息，支持IP地址、协议端口、IP地址组、协议端口组四种类型，类型需要与TemplateId参数类型一致，修改顺序与TemplateMember参数顺序一一对应，入参长度需要与TemplateMember参数保持一致。
        :type OriginalTemplateMember: list of MemberInfo
        :param _TemplateMember: 新的参数模板成员信息，支持IP地址、协议端口、IP地址组、协议端口组四种类型，类型需要与TemplateId参数类型一致，修改顺序与OriginalTemplateMember参数顺序一一对应，入参长度需要与OriginalTemplateMember参数保持一致。
        :type TemplateMember: list of MemberInfo
        """
        self._TemplateId = None
        self._OriginalTemplateMember = None
        self._TemplateMember = None

    @property
    def TemplateId(self):
        return self._TemplateId

    @TemplateId.setter
    def TemplateId(self, TemplateId):
        self._TemplateId = TemplateId

    @property
    def OriginalTemplateMember(self):
        return self._OriginalTemplateMember

    @OriginalTemplateMember.setter
    def OriginalTemplateMember(self, OriginalTemplateMember):
        self._OriginalTemplateMember = OriginalTemplateMember

    @property
    def TemplateMember(self):
        return self._TemplateMember

    @TemplateMember.setter
    def TemplateMember(self, TemplateMember):
        self._TemplateMember = TemplateMember


    def _deserialize(self, params):
        self._TemplateId = params.get("TemplateId")
        if params.get("OriginalTemplateMember") is not None:
            self._OriginalTemplateMember = []
            for item in params.get("OriginalTemplateMember"):
                obj = MemberInfo()
                obj._deserialize(item)
                self._OriginalTemplateMember.append(obj)
        if params.get("TemplateMember") is not None:
            self._TemplateMember = []
            for item in params.get("TemplateMember"):
                obj = MemberInfo()
                obj._deserialize(item)
                self._TemplateMember.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyTemplateMemberResponse(AbstractModel):
    """ModifyTemplateMember返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyVpcAttributeRequest(AbstractModel):
    """ModifyVpcAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。形如：vpc-f49l6u0z。
        :type VpcId: str
        :param _VpcName: 私有网络名称，可任意命名，但不得超过60个字符。
        :type VpcName: str
        :param _EnableMulticast: 是否开启组播。true: 开启, false: 关闭。
        :type EnableMulticast: str
        :param _DnsServers: DNS地址，最多支持4个，第1个默认为主，其余为备。
        :type DnsServers: list of str
        :param _DomainName: 域名。
        :type DomainName: str
        :param _EnableCdcPublish: 发布cdc 子网到云联网的开关。true: 发布, false: 不发布。
        :type EnableCdcPublish: bool
        """
        self._VpcId = None
        self._VpcName = None
        self._EnableMulticast = None
        self._DnsServers = None
        self._DomainName = None
        self._EnableCdcPublish = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def VpcName(self):
        return self._VpcName

    @VpcName.setter
    def VpcName(self, VpcName):
        self._VpcName = VpcName

    @property
    def EnableMulticast(self):
        return self._EnableMulticast

    @EnableMulticast.setter
    def EnableMulticast(self, EnableMulticast):
        self._EnableMulticast = EnableMulticast

    @property
    def DnsServers(self):
        return self._DnsServers

    @DnsServers.setter
    def DnsServers(self, DnsServers):
        self._DnsServers = DnsServers

    @property
    def DomainName(self):
        return self._DomainName

    @DomainName.setter
    def DomainName(self, DomainName):
        self._DomainName = DomainName

    @property
    def EnableCdcPublish(self):
        return self._EnableCdcPublish

    @EnableCdcPublish.setter
    def EnableCdcPublish(self, EnableCdcPublish):
        self._EnableCdcPublish = EnableCdcPublish


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._VpcName = params.get("VpcName")
        self._EnableMulticast = params.get("EnableMulticast")
        self._DnsServers = params.get("DnsServers")
        self._DomainName = params.get("DomainName")
        self._EnableCdcPublish = params.get("EnableCdcPublish")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyVpcAttributeResponse(AbstractModel):
    """ModifyVpcAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyVpcEndPointAttributeRequest(AbstractModel):
    """ModifyVpcEndPointAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _EndPointId: 终端节点ID。
        :type EndPointId: str
        :param _EndPointName: 终端节点名称。
        :type EndPointName: str
        :param _SecurityGroupIds: 安全组ID列表。
        :type SecurityGroupIds: list of str
        """
        self._EndPointId = None
        self._EndPointName = None
        self._SecurityGroupIds = None

    @property
    def EndPointId(self):
        return self._EndPointId

    @EndPointId.setter
    def EndPointId(self, EndPointId):
        self._EndPointId = EndPointId

    @property
    def EndPointName(self):
        return self._EndPointName

    @EndPointName.setter
    def EndPointName(self, EndPointName):
        self._EndPointName = EndPointName

    @property
    def SecurityGroupIds(self):
        return self._SecurityGroupIds

    @SecurityGroupIds.setter
    def SecurityGroupIds(self, SecurityGroupIds):
        self._SecurityGroupIds = SecurityGroupIds


    def _deserialize(self, params):
        self._EndPointId = params.get("EndPointId")
        self._EndPointName = params.get("EndPointName")
        self._SecurityGroupIds = params.get("SecurityGroupIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyVpcEndPointAttributeResponse(AbstractModel):
    """ModifyVpcEndPointAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyVpcEndPointServiceAttributeRequest(AbstractModel):
    """ModifyVpcEndPointServiceAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _EndPointServiceId: 终端节点服务ID。
        :type EndPointServiceId: str
        :param _VpcId: VPCID。
        :type VpcId: str
        :param _EndPointServiceName: 终端节点服务名称。
        :type EndPointServiceName: str
        :param _AutoAcceptFlag: 是否自动接受终端节点的连接请求。<ui><li>true：自动接受<li>false：不自动接受</ul>
        :type AutoAcceptFlag: bool
        :param _ServiceInstanceId: 后端服务的ID，比如lb-xxx。
        :type ServiceInstanceId: str
        """
        self._EndPointServiceId = None
        self._VpcId = None
        self._EndPointServiceName = None
        self._AutoAcceptFlag = None
        self._ServiceInstanceId = None

    @property
    def EndPointServiceId(self):
        return self._EndPointServiceId

    @EndPointServiceId.setter
    def EndPointServiceId(self, EndPointServiceId):
        self._EndPointServiceId = EndPointServiceId

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def EndPointServiceName(self):
        return self._EndPointServiceName

    @EndPointServiceName.setter
    def EndPointServiceName(self, EndPointServiceName):
        self._EndPointServiceName = EndPointServiceName

    @property
    def AutoAcceptFlag(self):
        return self._AutoAcceptFlag

    @AutoAcceptFlag.setter
    def AutoAcceptFlag(self, AutoAcceptFlag):
        self._AutoAcceptFlag = AutoAcceptFlag

    @property
    def ServiceInstanceId(self):
        return self._ServiceInstanceId

    @ServiceInstanceId.setter
    def ServiceInstanceId(self, ServiceInstanceId):
        self._ServiceInstanceId = ServiceInstanceId


    def _deserialize(self, params):
        self._EndPointServiceId = params.get("EndPointServiceId")
        self._VpcId = params.get("VpcId")
        self._EndPointServiceName = params.get("EndPointServiceName")
        self._AutoAcceptFlag = params.get("AutoAcceptFlag")
        self._ServiceInstanceId = params.get("ServiceInstanceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyVpcEndPointServiceAttributeResponse(AbstractModel):
    """ModifyVpcEndPointServiceAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyVpcEndPointServiceWhiteListRequest(AbstractModel):
    """ModifyVpcEndPointServiceWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _UserUin: 用户UIN。
        :type UserUin: str
        :param _EndPointServiceId: 终端节点服务ID。
        :type EndPointServiceId: str
        :param _Description: 白名单描述信息。
        :type Description: str
        """
        self._UserUin = None
        self._EndPointServiceId = None
        self._Description = None

    @property
    def UserUin(self):
        return self._UserUin

    @UserUin.setter
    def UserUin(self, UserUin):
        self._UserUin = UserUin

    @property
    def EndPointServiceId(self):
        return self._EndPointServiceId

    @EndPointServiceId.setter
    def EndPointServiceId(self, EndPointServiceId):
        self._EndPointServiceId = EndPointServiceId

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description


    def _deserialize(self, params):
        self._UserUin = params.get("UserUin")
        self._EndPointServiceId = params.get("EndPointServiceId")
        self._Description = params.get("Description")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyVpcEndPointServiceWhiteListResponse(AbstractModel):
    """ModifyVpcEndPointServiceWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyVpcPeeringConnectionRequest(AbstractModel):
    """ModifyVpcPeeringConnection请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PeeringConnectionId: 对等连接ID。
        :type PeeringConnectionId: str
        :param _PeeringConnectionName: 对等连接名称。
        :type PeeringConnectionName: str
        :param _Bandwidth: 带宽上限，单位Mbps。
        :type Bandwidth: int
        :param _ChargeType: 计费模式，日峰值POSTPAID_BY_DAY_MAX，月95 POSTPAID_BY_MONTH_95。
        :type ChargeType: str
        """
        self._PeeringConnectionId = None
        self._PeeringConnectionName = None
        self._Bandwidth = None
        self._ChargeType = None

    @property
    def PeeringConnectionId(self):
        return self._PeeringConnectionId

    @PeeringConnectionId.setter
    def PeeringConnectionId(self, PeeringConnectionId):
        self._PeeringConnectionId = PeeringConnectionId

    @property
    def PeeringConnectionName(self):
        return self._PeeringConnectionName

    @PeeringConnectionName.setter
    def PeeringConnectionName(self, PeeringConnectionName):
        self._PeeringConnectionName = PeeringConnectionName

    @property
    def Bandwidth(self):
        return self._Bandwidth

    @Bandwidth.setter
    def Bandwidth(self, Bandwidth):
        self._Bandwidth = Bandwidth

    @property
    def ChargeType(self):
        return self._ChargeType

    @ChargeType.setter
    def ChargeType(self, ChargeType):
        self._ChargeType = ChargeType


    def _deserialize(self, params):
        self._PeeringConnectionId = params.get("PeeringConnectionId")
        self._PeeringConnectionName = params.get("PeeringConnectionName")
        self._Bandwidth = params.get("Bandwidth")
        self._ChargeType = params.get("ChargeType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyVpcPeeringConnectionResponse(AbstractModel):
    """ModifyVpcPeeringConnection返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyVpnConnectionAttributeRequest(AbstractModel):
    """ModifyVpnConnectionAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnConnectionId: VPN通道实例ID。形如：vpnx-f49l6u0z。
        :type VpnConnectionId: str
        :param _VpnConnectionName: VPN通道名称，可任意命名，但不得超过60个字符。
        :type VpnConnectionName: str
        :param _PreShareKey: 预共享密钥。
        :type PreShareKey: str
        :param _SecurityPolicyDatabases: SPD策略组，例如：{"10.0.0.5/24":["172.123.10.5/16"]}，10.0.0.5/24是vpc内网段，172.123.10.5/16是IDC网段。用户指定VPC内哪些网段可以和您IDC中哪些网段通信。
        :type SecurityPolicyDatabases: list of SecurityPolicyDatabase
        :param _IKEOptionsSpecification: IKE配置（Internet Key Exchange，因特网密钥交换），IKE具有一套自我保护机制，用户配置网络安全协议。
        :type IKEOptionsSpecification: :class:`tencentcloud.vpc.v20170312.models.IKEOptionsSpecification`
        :param _IPSECOptionsSpecification: IPSec配置，腾讯云提供IPSec安全会话设置。
        :type IPSECOptionsSpecification: :class:`tencentcloud.vpc.v20170312.models.IPSECOptionsSpecification`
        :param _EnableHealthCheck: 是否启用通道健康检查，默认为False。
        :type EnableHealthCheck: bool
        :param _HealthCheckLocalIp: 本端通道探测IP。
        :type HealthCheckLocalIp: str
        :param _HealthCheckRemoteIp: 对端通道探测IP。
        :type HealthCheckRemoteIp: str
        :param _NegotiationType: 协商类型，默认为active（主动协商）。可选值：active（主动协商），passive（被动协商），flowTrigger（流量协商）
        :type NegotiationType: str
        :param _DpdEnable: DPD探测开关。默认为0，表示关闭DPD探测。可选值：0（关闭），1（开启）
        :type DpdEnable: int
        :param _DpdTimeout: DPD超时时间。即探测确认对端不存在需要的时间。dpdEnable为1（开启）时有效。默认30，单位为秒
        :type DpdTimeout: str
        :param _DpdAction: DPD超时后的动作。默认为clear。dpdEnable为1（开启）时有效。可取值为clear（断开）和restart（重试）
        :type DpdAction: str
        :param _CustomerGatewayId: 对端网关ID，4.0及以上网关下的通道支持更新。
        :type CustomerGatewayId: str
        """
        self._VpnConnectionId = None
        self._VpnConnectionName = None
        self._PreShareKey = None
        self._SecurityPolicyDatabases = None
        self._IKEOptionsSpecification = None
        self._IPSECOptionsSpecification = None
        self._EnableHealthCheck = None
        self._HealthCheckLocalIp = None
        self._HealthCheckRemoteIp = None
        self._NegotiationType = None
        self._DpdEnable = None
        self._DpdTimeout = None
        self._DpdAction = None
        self._CustomerGatewayId = None

    @property
    def VpnConnectionId(self):
        return self._VpnConnectionId

    @VpnConnectionId.setter
    def VpnConnectionId(self, VpnConnectionId):
        self._VpnConnectionId = VpnConnectionId

    @property
    def VpnConnectionName(self):
        return self._VpnConnectionName

    @VpnConnectionName.setter
    def VpnConnectionName(self, VpnConnectionName):
        self._VpnConnectionName = VpnConnectionName

    @property
    def PreShareKey(self):
        return self._PreShareKey

    @PreShareKey.setter
    def PreShareKey(self, PreShareKey):
        self._PreShareKey = PreShareKey

    @property
    def SecurityPolicyDatabases(self):
        return self._SecurityPolicyDatabases

    @SecurityPolicyDatabases.setter
    def SecurityPolicyDatabases(self, SecurityPolicyDatabases):
        self._SecurityPolicyDatabases = SecurityPolicyDatabases

    @property
    def IKEOptionsSpecification(self):
        return self._IKEOptionsSpecification

    @IKEOptionsSpecification.setter
    def IKEOptionsSpecification(self, IKEOptionsSpecification):
        self._IKEOptionsSpecification = IKEOptionsSpecification

    @property
    def IPSECOptionsSpecification(self):
        return self._IPSECOptionsSpecification

    @IPSECOptionsSpecification.setter
    def IPSECOptionsSpecification(self, IPSECOptionsSpecification):
        self._IPSECOptionsSpecification = IPSECOptionsSpecification

    @property
    def EnableHealthCheck(self):
        return self._EnableHealthCheck

    @EnableHealthCheck.setter
    def EnableHealthCheck(self, EnableHealthCheck):
        self._EnableHealthCheck = EnableHealthCheck

    @property
    def HealthCheckLocalIp(self):
        return self._HealthCheckLocalIp

    @HealthCheckLocalIp.setter
    def HealthCheckLocalIp(self, HealthCheckLocalIp):
        self._HealthCheckLocalIp = HealthCheckLocalIp

    @property
    def HealthCheckRemoteIp(self):
        return self._HealthCheckRemoteIp

    @HealthCheckRemoteIp.setter
    def HealthCheckRemoteIp(self, HealthCheckRemoteIp):
        self._HealthCheckRemoteIp = HealthCheckRemoteIp

    @property
    def NegotiationType(self):
        return self._NegotiationType

    @NegotiationType.setter
    def NegotiationType(self, NegotiationType):
        self._NegotiationType = NegotiationType

    @property
    def DpdEnable(self):
        return self._DpdEnable

    @DpdEnable.setter
    def DpdEnable(self, DpdEnable):
        self._DpdEnable = DpdEnable

    @property
    def DpdTimeout(self):
        return self._DpdTimeout

    @DpdTimeout.setter
    def DpdTimeout(self, DpdTimeout):
        self._DpdTimeout = DpdTimeout

    @property
    def DpdAction(self):
        return self._DpdAction

    @DpdAction.setter
    def DpdAction(self, DpdAction):
        self._DpdAction = DpdAction

    @property
    def CustomerGatewayId(self):
        return self._CustomerGatewayId

    @CustomerGatewayId.setter
    def CustomerGatewayId(self, CustomerGatewayId):
        self._CustomerGatewayId = CustomerGatewayId


    def _deserialize(self, params):
        self._VpnConnectionId = params.get("VpnConnectionId")
        self._VpnConnectionName = params.get("VpnConnectionName")
        self._PreShareKey = params.get("PreShareKey")
        if params.get("SecurityPolicyDatabases") is not None:
            self._SecurityPolicyDatabases = []
            for item in params.get("SecurityPolicyDatabases"):
                obj = SecurityPolicyDatabase()
                obj._deserialize(item)
                self._SecurityPolicyDatabases.append(obj)
        if params.get("IKEOptionsSpecification") is not None:
            self._IKEOptionsSpecification = IKEOptionsSpecification()
            self._IKEOptionsSpecification._deserialize(params.get("IKEOptionsSpecification"))
        if params.get("IPSECOptionsSpecification") is not None:
            self._IPSECOptionsSpecification = IPSECOptionsSpecification()
            self._IPSECOptionsSpecification._deserialize(params.get("IPSECOptionsSpecification"))
        self._EnableHealthCheck = params.get("EnableHealthCheck")
        self._HealthCheckLocalIp = params.get("HealthCheckLocalIp")
        self._HealthCheckRemoteIp = params.get("HealthCheckRemoteIp")
        self._NegotiationType = params.get("NegotiationType")
        self._DpdEnable = params.get("DpdEnable")
        self._DpdTimeout = params.get("DpdTimeout")
        self._DpdAction = params.get("DpdAction")
        self._CustomerGatewayId = params.get("CustomerGatewayId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyVpnConnectionAttributeResponse(AbstractModel):
    """ModifyVpnConnectionAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyVpnGatewayAttributeRequest(AbstractModel):
    """ModifyVpnGatewayAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关实例ID。
        :type VpnGatewayId: str
        :param _VpnGatewayName: VPN网关名称，最大长度不能超过60个字节。
        :type VpnGatewayName: str
        :param _InstanceChargeType: VPN网关计费模式，目前只支持预付费（即包年包月）到后付费（即按量计费）的转换。即参数只支持：POSTPAID_BY_HOUR。
        :type InstanceChargeType: str
        :param _BgpAsn: BGP ASN。ASN取值范围为1- 4294967295，默认值64551，其中139341、45090和58835不可用。
        :type BgpAsn: int
        """
        self._VpnGatewayId = None
        self._VpnGatewayName = None
        self._InstanceChargeType = None
        self._BgpAsn = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def VpnGatewayName(self):
        return self._VpnGatewayName

    @VpnGatewayName.setter
    def VpnGatewayName(self, VpnGatewayName):
        self._VpnGatewayName = VpnGatewayName

    @property
    def InstanceChargeType(self):
        return self._InstanceChargeType

    @InstanceChargeType.setter
    def InstanceChargeType(self, InstanceChargeType):
        self._InstanceChargeType = InstanceChargeType

    @property
    def BgpAsn(self):
        return self._BgpAsn

    @BgpAsn.setter
    def BgpAsn(self, BgpAsn):
        self._BgpAsn = BgpAsn


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        self._VpnGatewayName = params.get("VpnGatewayName")
        self._InstanceChargeType = params.get("InstanceChargeType")
        self._BgpAsn = params.get("BgpAsn")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyVpnGatewayAttributeResponse(AbstractModel):
    """ModifyVpnGatewayAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyVpnGatewayCcnRoutesRequest(AbstractModel):
    """ModifyVpnGatewayCcnRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关实例ID。
        :type VpnGatewayId: str
        :param _Routes: 云联网路由（IDC网段）列表。
        :type Routes: list of VpngwCcnRoutes
        """
        self._VpnGatewayId = None
        self._Routes = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def Routes(self):
        return self._Routes

    @Routes.setter
    def Routes(self, Routes):
        self._Routes = Routes


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        if params.get("Routes") is not None:
            self._Routes = []
            for item in params.get("Routes"):
                obj = VpngwCcnRoutes()
                obj._deserialize(item)
                self._Routes.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyVpnGatewayCcnRoutesResponse(AbstractModel):
    """ModifyVpnGatewayCcnRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyVpnGatewayRoutesRequest(AbstractModel):
    """ModifyVpnGatewayRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关实例ID。
        :type VpnGatewayId: str
        :param _Routes: 路由修改参数。
        :type Routes: list of VpnGatewayRouteModify
        """
        self._VpnGatewayId = None
        self._Routes = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def Routes(self):
        return self._Routes

    @Routes.setter
    def Routes(self, Routes):
        self._Routes = Routes


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        if params.get("Routes") is not None:
            self._Routes = []
            for item in params.get("Routes"):
                obj = VpnGatewayRouteModify()
                obj._deserialize(item)
                self._Routes.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyVpnGatewayRoutesResponse(AbstractModel):
    """ModifyVpnGatewayRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Routes: VPN路由信息
注意：此字段可能返回 null，表示取不到有效值。
        :type Routes: list of VpnGatewayRoute
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Routes = None
        self._RequestId = None

    @property
    def Routes(self):
        return self._Routes

    @Routes.setter
    def Routes(self, Routes):
        self._Routes = Routes

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Routes") is not None:
            self._Routes = []
            for item in params.get("Routes"):
                obj = VpnGatewayRoute()
                obj._deserialize(item)
                self._Routes.append(obj)
        self._RequestId = params.get("RequestId")


class ModifyVpnGatewaySslServerRequest(AbstractModel):
    """ModifyVpnGatewaySslServer请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SslVpnServerId: SSL-VPN SERVER 实例ID
        :type SslVpnServerId: str
        :param _SslVpnServerName: SSL-VPN SERVER NAME
        :type SslVpnServerName: str
        :param _LocalAddress: 本端地址
        :type LocalAddress: list of str
        :param _RemoteAddress: 客户端地址
        :type RemoteAddress: str
        :param _SslVpnProtocol: SSL VPN服务端监听协议。当前仅支持 UDP。默认UDP
        :type SslVpnProtocol: str
        :param _SslVpnPort: SSL VPN服务端监听协议端口。
        :type SslVpnPort: int
        :param _EncryptAlgorithm: 加密算法。可选 'AES-128-CBC', 'AES-192-CBC', 'AES-256-CBC', 'NONE'。默认NONE
        :type EncryptAlgorithm: str
        :param _IntegrityAlgorithm: 认证算法。可选 'SHA1', 'MD5', 'NONE'。默认NONE
        :type IntegrityAlgorithm: str
        :param _Compress: 是否支持压缩。当前仅支持不支持压缩。默认False
        :type Compress: bool
        :param _SsoEnabled: 是否开启SSO认证，默认False
        :type SsoEnabled: bool
        :param _SamlData: SAML-DATA
        :type SamlData: str
        """
        self._SslVpnServerId = None
        self._SslVpnServerName = None
        self._LocalAddress = None
        self._RemoteAddress = None
        self._SslVpnProtocol = None
        self._SslVpnPort = None
        self._EncryptAlgorithm = None
        self._IntegrityAlgorithm = None
        self._Compress = None
        self._SsoEnabled = None
        self._SamlData = None

    @property
    def SslVpnServerId(self):
        return self._SslVpnServerId

    @SslVpnServerId.setter
    def SslVpnServerId(self, SslVpnServerId):
        self._SslVpnServerId = SslVpnServerId

    @property
    def SslVpnServerName(self):
        return self._SslVpnServerName

    @SslVpnServerName.setter
    def SslVpnServerName(self, SslVpnServerName):
        self._SslVpnServerName = SslVpnServerName

    @property
    def LocalAddress(self):
        return self._LocalAddress

    @LocalAddress.setter
    def LocalAddress(self, LocalAddress):
        self._LocalAddress = LocalAddress

    @property
    def RemoteAddress(self):
        return self._RemoteAddress

    @RemoteAddress.setter
    def RemoteAddress(self, RemoteAddress):
        self._RemoteAddress = RemoteAddress

    @property
    def SslVpnProtocol(self):
        return self._SslVpnProtocol

    @SslVpnProtocol.setter
    def SslVpnProtocol(self, SslVpnProtocol):
        self._SslVpnProtocol = SslVpnProtocol

    @property
    def SslVpnPort(self):
        return self._SslVpnPort

    @SslVpnPort.setter
    def SslVpnPort(self, SslVpnPort):
        self._SslVpnPort = SslVpnPort

    @property
    def EncryptAlgorithm(self):
        return self._EncryptAlgorithm

    @EncryptAlgorithm.setter
    def EncryptAlgorithm(self, EncryptAlgorithm):
        self._EncryptAlgorithm = EncryptAlgorithm

    @property
    def IntegrityAlgorithm(self):
        return self._IntegrityAlgorithm

    @IntegrityAlgorithm.setter
    def IntegrityAlgorithm(self, IntegrityAlgorithm):
        self._IntegrityAlgorithm = IntegrityAlgorithm

    @property
    def Compress(self):
        return self._Compress

    @Compress.setter
    def Compress(self, Compress):
        self._Compress = Compress

    @property
    def SsoEnabled(self):
        return self._SsoEnabled

    @SsoEnabled.setter
    def SsoEnabled(self, SsoEnabled):
        self._SsoEnabled = SsoEnabled

    @property
    def SamlData(self):
        return self._SamlData

    @SamlData.setter
    def SamlData(self, SamlData):
        self._SamlData = SamlData


    def _deserialize(self, params):
        self._SslVpnServerId = params.get("SslVpnServerId")
        self._SslVpnServerName = params.get("SslVpnServerName")
        self._LocalAddress = params.get("LocalAddress")
        self._RemoteAddress = params.get("RemoteAddress")
        self._SslVpnProtocol = params.get("SslVpnProtocol")
        self._SslVpnPort = params.get("SslVpnPort")
        self._EncryptAlgorithm = params.get("EncryptAlgorithm")
        self._IntegrityAlgorithm = params.get("IntegrityAlgorithm")
        self._Compress = params.get("Compress")
        self._SsoEnabled = params.get("SsoEnabled")
        self._SamlData = params.get("SamlData")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyVpnGatewaySslServerResponse(AbstractModel):
    """ModifyVpnGatewaySslServer返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步任务TASKID
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class NatDirectConnectGatewayRoute(AbstractModel):
    """查询nat路由的返回路由对象

    """

    def __init__(self):
        r"""
        :param _DestinationCidrBlock: 子网的 `IPv4` `CIDR`
        :type DestinationCidrBlock: str
        :param _GatewayType: 下一跳网关的类型，目前此接口支持的类型有：
DIRECTCONNECT：专线网关
        :type GatewayType: str
        :param _GatewayId: 下一跳网关ID
        :type GatewayId: str
        :param _CreateTime: 路由的创建时间
        :type CreateTime: str
        :param _UpdateTime: 路由的更新时间
        :type UpdateTime: str
        """
        self._DestinationCidrBlock = None
        self._GatewayType = None
        self._GatewayId = None
        self._CreateTime = None
        self._UpdateTime = None

    @property
    def DestinationCidrBlock(self):
        return self._DestinationCidrBlock

    @DestinationCidrBlock.setter
    def DestinationCidrBlock(self, DestinationCidrBlock):
        self._DestinationCidrBlock = DestinationCidrBlock

    @property
    def GatewayType(self):
        return self._GatewayType

    @GatewayType.setter
    def GatewayType(self, GatewayType):
        self._GatewayType = GatewayType

    @property
    def GatewayId(self):
        return self._GatewayId

    @GatewayId.setter
    def GatewayId(self, GatewayId):
        self._GatewayId = GatewayId

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime


    def _deserialize(self, params):
        self._DestinationCidrBlock = params.get("DestinationCidrBlock")
        self._GatewayType = params.get("GatewayType")
        self._GatewayId = params.get("GatewayId")
        self._CreateTime = params.get("CreateTime")
        self._UpdateTime = params.get("UpdateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NatGateway(AbstractModel):
    """NAT网关对象。

    """

    def __init__(self):
        r"""
        :param _NatGatewayId: NAT网关的ID。
        :type NatGatewayId: str
        :param _NatGatewayName: NAT网关的名称。
        :type NatGatewayName: str
        :param _CreatedTime: NAT网关创建的时间。
        :type CreatedTime: str
        :param _State: NAT网关的状态。
 'PENDING'：生产中，'DELETING'：删除中，'AVAILABLE'：运行中，'UPDATING'：升级中，
‘FAILED’：失败。
        :type State: str
        :param _InternetMaxBandwidthOut: 网关最大外网出带宽(单位:Mbps)。
        :type InternetMaxBandwidthOut: int
        :param _MaxConcurrentConnection: 网关并发连接上限。
        :type MaxConcurrentConnection: int
        :param _PublicIpAddressSet: 绑定NAT网关的公网IP对象数组。
        :type PublicIpAddressSet: list of NatGatewayAddress
        :param _NetworkState: NAT网关网络状态。“AVAILABLE”:运行中, “UNAVAILABLE”:不可用, “INSUFFICIENT”:欠费停服。
        :type NetworkState: str
        :param _DestinationIpPortTranslationNatRuleSet: NAT网关的端口转发规则。
        :type DestinationIpPortTranslationNatRuleSet: list of DestinationIpPortTranslationNatRule
        :param _VpcId: VPC实例ID。
        :type VpcId: str
        :param _Zone: NAT网关所在的可用区。
        :type Zone: str
        :param _DirectConnectGatewayIds: 绑定的专线网关ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type DirectConnectGatewayIds: list of str
        :param _SubnetId: 所属子网ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type SubnetId: str
        :param _TagSet: 标签键值对。
        :type TagSet: list of Tag
        :param _SecurityGroupSet: NAT网关绑定的安全组列表
注意：此字段可能返回 null，表示取不到有效值。
        :type SecurityGroupSet: list of str
        :param _SourceIpTranslationNatRuleSet: NAT网关的SNAT转发规则。
注意：此字段可能返回 null，表示取不到有效值。
        :type SourceIpTranslationNatRuleSet: list of SourceIpTranslationNatRule
        :param _IsExclusive: 是否独享型NAT。
注意：此字段可能返回 null，表示取不到有效值。
        :type IsExclusive: bool
        :param _ExclusiveGatewayBandwidth: 独享型NAT所在的网关集群的带宽(单位:Mbps)，当IsExclusive为false时无此字段。
注意：此字段可能返回 null，表示取不到有效值。
        :type ExclusiveGatewayBandwidth: int
        :param _RestrictState: NAT网关是否被封禁。“NORMAL”：未被封禁，“RESTRICTED”：已被封禁。
注意：此字段可能返回 null，表示取不到有效值。
        :type RestrictState: str
        :param _NatProductVersion: NAT网关大版本号，传统型=1，标准型=2
注意：此字段可能返回 null，表示取不到有效值。
        :type NatProductVersion: int
        :param _SmartScheduleMode: 是否启用根据目的网段选择SNAT使用的EIP功能	
注意：此字段可能返回 null，表示取不到有效值。
        :type SmartScheduleMode: bool
        :param _DedicatedClusterId: NAT实例归属的专属集群id
注意：此字段可能返回 null，表示取不到有效值。
        :type DedicatedClusterId: str
        """
        self._NatGatewayId = None
        self._NatGatewayName = None
        self._CreatedTime = None
        self._State = None
        self._InternetMaxBandwidthOut = None
        self._MaxConcurrentConnection = None
        self._PublicIpAddressSet = None
        self._NetworkState = None
        self._DestinationIpPortTranslationNatRuleSet = None
        self._VpcId = None
        self._Zone = None
        self._DirectConnectGatewayIds = None
        self._SubnetId = None
        self._TagSet = None
        self._SecurityGroupSet = None
        self._SourceIpTranslationNatRuleSet = None
        self._IsExclusive = None
        self._ExclusiveGatewayBandwidth = None
        self._RestrictState = None
        self._NatProductVersion = None
        self._SmartScheduleMode = None
        self._DedicatedClusterId = None

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def NatGatewayName(self):
        return self._NatGatewayName

    @NatGatewayName.setter
    def NatGatewayName(self, NatGatewayName):
        self._NatGatewayName = NatGatewayName

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def InternetMaxBandwidthOut(self):
        return self._InternetMaxBandwidthOut

    @InternetMaxBandwidthOut.setter
    def InternetMaxBandwidthOut(self, InternetMaxBandwidthOut):
        self._InternetMaxBandwidthOut = InternetMaxBandwidthOut

    @property
    def MaxConcurrentConnection(self):
        return self._MaxConcurrentConnection

    @MaxConcurrentConnection.setter
    def MaxConcurrentConnection(self, MaxConcurrentConnection):
        self._MaxConcurrentConnection = MaxConcurrentConnection

    @property
    def PublicIpAddressSet(self):
        return self._PublicIpAddressSet

    @PublicIpAddressSet.setter
    def PublicIpAddressSet(self, PublicIpAddressSet):
        self._PublicIpAddressSet = PublicIpAddressSet

    @property
    def NetworkState(self):
        return self._NetworkState

    @NetworkState.setter
    def NetworkState(self, NetworkState):
        self._NetworkState = NetworkState

    @property
    def DestinationIpPortTranslationNatRuleSet(self):
        return self._DestinationIpPortTranslationNatRuleSet

    @DestinationIpPortTranslationNatRuleSet.setter
    def DestinationIpPortTranslationNatRuleSet(self, DestinationIpPortTranslationNatRuleSet):
        self._DestinationIpPortTranslationNatRuleSet = DestinationIpPortTranslationNatRuleSet

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def DirectConnectGatewayIds(self):
        return self._DirectConnectGatewayIds

    @DirectConnectGatewayIds.setter
    def DirectConnectGatewayIds(self, DirectConnectGatewayIds):
        self._DirectConnectGatewayIds = DirectConnectGatewayIds

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def TagSet(self):
        return self._TagSet

    @TagSet.setter
    def TagSet(self, TagSet):
        self._TagSet = TagSet

    @property
    def SecurityGroupSet(self):
        return self._SecurityGroupSet

    @SecurityGroupSet.setter
    def SecurityGroupSet(self, SecurityGroupSet):
        self._SecurityGroupSet = SecurityGroupSet

    @property
    def SourceIpTranslationNatRuleSet(self):
        return self._SourceIpTranslationNatRuleSet

    @SourceIpTranslationNatRuleSet.setter
    def SourceIpTranslationNatRuleSet(self, SourceIpTranslationNatRuleSet):
        self._SourceIpTranslationNatRuleSet = SourceIpTranslationNatRuleSet

    @property
    def IsExclusive(self):
        return self._IsExclusive

    @IsExclusive.setter
    def IsExclusive(self, IsExclusive):
        self._IsExclusive = IsExclusive

    @property
    def ExclusiveGatewayBandwidth(self):
        return self._ExclusiveGatewayBandwidth

    @ExclusiveGatewayBandwidth.setter
    def ExclusiveGatewayBandwidth(self, ExclusiveGatewayBandwidth):
        self._ExclusiveGatewayBandwidth = ExclusiveGatewayBandwidth

    @property
    def RestrictState(self):
        return self._RestrictState

    @RestrictState.setter
    def RestrictState(self, RestrictState):
        self._RestrictState = RestrictState

    @property
    def NatProductVersion(self):
        return self._NatProductVersion

    @NatProductVersion.setter
    def NatProductVersion(self, NatProductVersion):
        self._NatProductVersion = NatProductVersion

    @property
    def SmartScheduleMode(self):
        return self._SmartScheduleMode

    @SmartScheduleMode.setter
    def SmartScheduleMode(self, SmartScheduleMode):
        self._SmartScheduleMode = SmartScheduleMode

    @property
    def DedicatedClusterId(self):
        return self._DedicatedClusterId

    @DedicatedClusterId.setter
    def DedicatedClusterId(self, DedicatedClusterId):
        self._DedicatedClusterId = DedicatedClusterId


    def _deserialize(self, params):
        self._NatGatewayId = params.get("NatGatewayId")
        self._NatGatewayName = params.get("NatGatewayName")
        self._CreatedTime = params.get("CreatedTime")
        self._State = params.get("State")
        self._InternetMaxBandwidthOut = params.get("InternetMaxBandwidthOut")
        self._MaxConcurrentConnection = params.get("MaxConcurrentConnection")
        if params.get("PublicIpAddressSet") is not None:
            self._PublicIpAddressSet = []
            for item in params.get("PublicIpAddressSet"):
                obj = NatGatewayAddress()
                obj._deserialize(item)
                self._PublicIpAddressSet.append(obj)
        self._NetworkState = params.get("NetworkState")
        if params.get("DestinationIpPortTranslationNatRuleSet") is not None:
            self._DestinationIpPortTranslationNatRuleSet = []
            for item in params.get("DestinationIpPortTranslationNatRuleSet"):
                obj = DestinationIpPortTranslationNatRule()
                obj._deserialize(item)
                self._DestinationIpPortTranslationNatRuleSet.append(obj)
        self._VpcId = params.get("VpcId")
        self._Zone = params.get("Zone")
        self._DirectConnectGatewayIds = params.get("DirectConnectGatewayIds")
        self._SubnetId = params.get("SubnetId")
        if params.get("TagSet") is not None:
            self._TagSet = []
            for item in params.get("TagSet"):
                obj = Tag()
                obj._deserialize(item)
                self._TagSet.append(obj)
        self._SecurityGroupSet = params.get("SecurityGroupSet")
        if params.get("SourceIpTranslationNatRuleSet") is not None:
            self._SourceIpTranslationNatRuleSet = []
            for item in params.get("SourceIpTranslationNatRuleSet"):
                obj = SourceIpTranslationNatRule()
                obj._deserialize(item)
                self._SourceIpTranslationNatRuleSet.append(obj)
        self._IsExclusive = params.get("IsExclusive")
        self._ExclusiveGatewayBandwidth = params.get("ExclusiveGatewayBandwidth")
        self._RestrictState = params.get("RestrictState")
        self._NatProductVersion = params.get("NatProductVersion")
        self._SmartScheduleMode = params.get("SmartScheduleMode")
        self._DedicatedClusterId = params.get("DedicatedClusterId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NatGatewayAddress(AbstractModel):
    """NAT网关绑定的弹性IP

    """

    def __init__(self):
        r"""
        :param _AddressId: 弹性公网IP（EIP）的唯一 ID，形如：`eip-11112222`。
        :type AddressId: str
        :param _PublicIpAddress: 外网IP地址，形如：`123.121.34.33`。
        :type PublicIpAddress: str
        :param _IsBlocked: 资源封堵状态。true表示弹性ip处于封堵状态，false表示弹性ip处于未封堵状态。
        :type IsBlocked: bool
        :param _BlockType: 资源封堵类型。NORMAL表示未封禁，SECURITY表示安全封禁，USER表示用户封禁，OTHER表示其他封禁，多个原因封禁时用&连接，比如：SECURITY&USER&OTHER。
        :type BlockType: str
        """
        self._AddressId = None
        self._PublicIpAddress = None
        self._IsBlocked = None
        self._BlockType = None

    @property
    def AddressId(self):
        return self._AddressId

    @AddressId.setter
    def AddressId(self, AddressId):
        self._AddressId = AddressId

    @property
    def PublicIpAddress(self):
        return self._PublicIpAddress

    @PublicIpAddress.setter
    def PublicIpAddress(self, PublicIpAddress):
        self._PublicIpAddress = PublicIpAddress

    @property
    def IsBlocked(self):
        return self._IsBlocked

    @IsBlocked.setter
    def IsBlocked(self, IsBlocked):
        self._IsBlocked = IsBlocked

    @property
    def BlockType(self):
        return self._BlockType

    @BlockType.setter
    def BlockType(self, BlockType):
        self._BlockType = BlockType


    def _deserialize(self, params):
        self._AddressId = params.get("AddressId")
        self._PublicIpAddress = params.get("PublicIpAddress")
        self._IsBlocked = params.get("IsBlocked")
        self._BlockType = params.get("BlockType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NatGatewayDestinationIpPortTranslationNatRule(AbstractModel):
    """NAT网关的端口转发规则

    """

    def __init__(self):
        r"""
        :param _IpProtocol: 网络协议，可选值：`TCP`、`UDP`。
        :type IpProtocol: str
        :param _PublicIpAddress: 弹性IP。
        :type PublicIpAddress: str
        :param _PublicPort: 公网端口。
        :type PublicPort: int
        :param _PrivateIpAddress: 内网地址。
        :type PrivateIpAddress: str
        :param _PrivatePort: 内网端口。
        :type PrivatePort: int
        :param _Description: NAT网关转发规则描述。
        :type Description: str
        :param _NatGatewayId: NAT网关的ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type NatGatewayId: str
        :param _VpcId: 私有网络VPC的ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type VpcId: str
        :param _CreatedTime: NAT网关转发规则创建时间。
注意：此字段可能返回 null，表示取不到有效值。
        :type CreatedTime: str
        """
        self._IpProtocol = None
        self._PublicIpAddress = None
        self._PublicPort = None
        self._PrivateIpAddress = None
        self._PrivatePort = None
        self._Description = None
        self._NatGatewayId = None
        self._VpcId = None
        self._CreatedTime = None

    @property
    def IpProtocol(self):
        return self._IpProtocol

    @IpProtocol.setter
    def IpProtocol(self, IpProtocol):
        self._IpProtocol = IpProtocol

    @property
    def PublicIpAddress(self):
        return self._PublicIpAddress

    @PublicIpAddress.setter
    def PublicIpAddress(self, PublicIpAddress):
        self._PublicIpAddress = PublicIpAddress

    @property
    def PublicPort(self):
        return self._PublicPort

    @PublicPort.setter
    def PublicPort(self, PublicPort):
        self._PublicPort = PublicPort

    @property
    def PrivateIpAddress(self):
        return self._PrivateIpAddress

    @PrivateIpAddress.setter
    def PrivateIpAddress(self, PrivateIpAddress):
        self._PrivateIpAddress = PrivateIpAddress

    @property
    def PrivatePort(self):
        return self._PrivatePort

    @PrivatePort.setter
    def PrivatePort(self, PrivatePort):
        self._PrivatePort = PrivatePort

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime


    def _deserialize(self, params):
        self._IpProtocol = params.get("IpProtocol")
        self._PublicIpAddress = params.get("PublicIpAddress")
        self._PublicPort = params.get("PublicPort")
        self._PrivateIpAddress = params.get("PrivateIpAddress")
        self._PrivatePort = params.get("PrivatePort")
        self._Description = params.get("Description")
        self._NatGatewayId = params.get("NatGatewayId")
        self._VpcId = params.get("VpcId")
        self._CreatedTime = params.get("CreatedTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NetDetect(AbstractModel):
    """网络探测对象。

    """

    def __init__(self):
        r"""
        :param _VpcId: `VPC`实例`ID`。形如：`vpc-12345678`
        :type VpcId: str
        :param _VpcName: `VPC`实例名称。
        :type VpcName: str
        :param _SubnetId: 子网实例ID。形如：subnet-12345678。
        :type SubnetId: str
        :param _SubnetName: 子网实例名称。
        :type SubnetName: str
        :param _NetDetectId: 网络探测实例ID。形如：netd-12345678。
        :type NetDetectId: str
        :param _NetDetectName: 网络探测名称，最大长度不能超过60个字节。
        :type NetDetectName: str
        :param _DetectDestinationIp: 探测目的IPv4地址数组，最多两个。
        :type DetectDestinationIp: list of str
        :param _DetectSourceIp: 系统自动分配的探测源IPv4数组。长度为2。
        :type DetectSourceIp: list of str
        :param _NextHopType: 下一跳类型，目前我们支持的类型有：
VPN：VPN网关；
DIRECTCONNECT：专线网关；
PEERCONNECTION：对等连接；
NAT：NAT网关；
NORMAL_CVM：普通云服务器；
CCN：云联网网关；
NONEXTHOP：无下一跳；
        :type NextHopType: str
        :param _NextHopDestination: 下一跳目的网关，取值与“下一跳类型”相关：
下一跳类型为VPN，取值VPN网关ID，形如：vpngw-12345678；
下一跳类型为DIRECTCONNECT，取值专线网关ID，形如：dcg-12345678；
下一跳类型为PEERCONNECTION，取值对等连接ID，形如：pcx-12345678；
下一跳类型为NAT，取值Nat网关，形如：nat-12345678；
下一跳类型为NORMAL_CVM，取值云服务器IPv4地址，形如：10.0.0.12；
下一跳类型为CCN，取值云联网ID，形如：ccn-12345678；
下一跳类型为NONEXTHOP，指定网络探测为无下一跳的网络探测，添加和修改时，不需要指定值，查询时值为空字符串；
        :type NextHopDestination: str
        :param _NextHopName: 下一跳网关名称。
注意：此字段可能返回 null，表示取不到有效值。
        :type NextHopName: str
        :param _NetDetectDescription: 网络探测描述。
注意：此字段可能返回 null，表示取不到有效值。
        :type NetDetectDescription: str
        :param _CreateTime: 创建时间。
注意：此字段可能返回 null，表示取不到有效值。
        :type CreateTime: str
        """
        self._VpcId = None
        self._VpcName = None
        self._SubnetId = None
        self._SubnetName = None
        self._NetDetectId = None
        self._NetDetectName = None
        self._DetectDestinationIp = None
        self._DetectSourceIp = None
        self._NextHopType = None
        self._NextHopDestination = None
        self._NextHopName = None
        self._NetDetectDescription = None
        self._CreateTime = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def VpcName(self):
        return self._VpcName

    @VpcName.setter
    def VpcName(self, VpcName):
        self._VpcName = VpcName

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def SubnetName(self):
        return self._SubnetName

    @SubnetName.setter
    def SubnetName(self, SubnetName):
        self._SubnetName = SubnetName

    @property
    def NetDetectId(self):
        return self._NetDetectId

    @NetDetectId.setter
    def NetDetectId(self, NetDetectId):
        self._NetDetectId = NetDetectId

    @property
    def NetDetectName(self):
        return self._NetDetectName

    @NetDetectName.setter
    def NetDetectName(self, NetDetectName):
        self._NetDetectName = NetDetectName

    @property
    def DetectDestinationIp(self):
        return self._DetectDestinationIp

    @DetectDestinationIp.setter
    def DetectDestinationIp(self, DetectDestinationIp):
        self._DetectDestinationIp = DetectDestinationIp

    @property
    def DetectSourceIp(self):
        return self._DetectSourceIp

    @DetectSourceIp.setter
    def DetectSourceIp(self, DetectSourceIp):
        self._DetectSourceIp = DetectSourceIp

    @property
    def NextHopType(self):
        return self._NextHopType

    @NextHopType.setter
    def NextHopType(self, NextHopType):
        self._NextHopType = NextHopType

    @property
    def NextHopDestination(self):
        return self._NextHopDestination

    @NextHopDestination.setter
    def NextHopDestination(self, NextHopDestination):
        self._NextHopDestination = NextHopDestination

    @property
    def NextHopName(self):
        return self._NextHopName

    @NextHopName.setter
    def NextHopName(self, NextHopName):
        self._NextHopName = NextHopName

    @property
    def NetDetectDescription(self):
        return self._NetDetectDescription

    @NetDetectDescription.setter
    def NetDetectDescription(self, NetDetectDescription):
        self._NetDetectDescription = NetDetectDescription

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._VpcName = params.get("VpcName")
        self._SubnetId = params.get("SubnetId")
        self._SubnetName = params.get("SubnetName")
        self._NetDetectId = params.get("NetDetectId")
        self._NetDetectName = params.get("NetDetectName")
        self._DetectDestinationIp = params.get("DetectDestinationIp")
        self._DetectSourceIp = params.get("DetectSourceIp")
        self._NextHopType = params.get("NextHopType")
        self._NextHopDestination = params.get("NextHopDestination")
        self._NextHopName = params.get("NextHopName")
        self._NetDetectDescription = params.get("NetDetectDescription")
        self._CreateTime = params.get("CreateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NetDetectIpState(AbstractModel):
    """网络探测目的IP的验证结果。

    """

    def __init__(self):
        r"""
        :param _DetectDestinationIp: 探测目的IPv4地址。
        :type DetectDestinationIp: str
        :param _State: 探测结果。
0：成功；
-1：查询不到路由丢包；
-2：外出ACL丢包；
-3：IN ACL丢包；
-4：其他错误；
        :type State: int
        :param _Delay: 时延，单位毫秒
        :type Delay: int
        :param _PacketLossRate: 丢包率
        :type PacketLossRate: int
        """
        self._DetectDestinationIp = None
        self._State = None
        self._Delay = None
        self._PacketLossRate = None

    @property
    def DetectDestinationIp(self):
        return self._DetectDestinationIp

    @DetectDestinationIp.setter
    def DetectDestinationIp(self, DetectDestinationIp):
        self._DetectDestinationIp = DetectDestinationIp

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def Delay(self):
        return self._Delay

    @Delay.setter
    def Delay(self, Delay):
        self._Delay = Delay

    @property
    def PacketLossRate(self):
        return self._PacketLossRate

    @PacketLossRate.setter
    def PacketLossRate(self, PacketLossRate):
        self._PacketLossRate = PacketLossRate


    def _deserialize(self, params):
        self._DetectDestinationIp = params.get("DetectDestinationIp")
        self._State = params.get("State")
        self._Delay = params.get("Delay")
        self._PacketLossRate = params.get("PacketLossRate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NetDetectState(AbstractModel):
    """网络探测验证结果。

    """

    def __init__(self):
        r"""
        :param _NetDetectId: 网络探测实例ID。形如：netd-12345678。
        :type NetDetectId: str
        :param _NetDetectIpStateSet: 网络探测目的IP验证结果对象数组。
        :type NetDetectIpStateSet: list of NetDetectIpState
        """
        self._NetDetectId = None
        self._NetDetectIpStateSet = None

    @property
    def NetDetectId(self):
        return self._NetDetectId

    @NetDetectId.setter
    def NetDetectId(self, NetDetectId):
        self._NetDetectId = NetDetectId

    @property
    def NetDetectIpStateSet(self):
        return self._NetDetectIpStateSet

    @NetDetectIpStateSet.setter
    def NetDetectIpStateSet(self, NetDetectIpStateSet):
        self._NetDetectIpStateSet = NetDetectIpStateSet


    def _deserialize(self, params):
        self._NetDetectId = params.get("NetDetectId")
        if params.get("NetDetectIpStateSet") is not None:
            self._NetDetectIpStateSet = []
            for item in params.get("NetDetectIpStateSet"):
                obj = NetDetectIpState()
                obj._deserialize(item)
                self._NetDetectIpStateSet.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NetworkAcl(AbstractModel):
    """网络ACL

    """

    def __init__(self):
        r"""
        :param _VpcId: `VPC`实例`ID`。
        :type VpcId: str
        :param _NetworkAclId: 网络ACL实例`ID`。
        :type NetworkAclId: str
        :param _NetworkAclName: 网络ACL名称，最大长度为60。
        :type NetworkAclName: str
        :param _CreatedTime: 创建时间。
        :type CreatedTime: str
        :param _SubnetSet: 网络ACL关联的子网数组。
        :type SubnetSet: list of Subnet
        :param _IngressEntries: 该参数仅对三元组ACL有效，网络ACl入站规则。
        :type IngressEntries: list of NetworkAclEntry
        :param _EgressEntries: 该参数仅对三元组ACL有效，网络ACL出站规则。
        :type EgressEntries: list of NetworkAclEntry
        :param _NetworkAclType: 网络ACL类型。三元组：'TRIPLE'   五元组：'QUINTUPLE'
        :type NetworkAclType: str
        :param _TagSet: 标签键值对
        :type TagSet: list of Tag
        """
        self._VpcId = None
        self._NetworkAclId = None
        self._NetworkAclName = None
        self._CreatedTime = None
        self._SubnetSet = None
        self._IngressEntries = None
        self._EgressEntries = None
        self._NetworkAclType = None
        self._TagSet = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def NetworkAclId(self):
        return self._NetworkAclId

    @NetworkAclId.setter
    def NetworkAclId(self, NetworkAclId):
        self._NetworkAclId = NetworkAclId

    @property
    def NetworkAclName(self):
        return self._NetworkAclName

    @NetworkAclName.setter
    def NetworkAclName(self, NetworkAclName):
        self._NetworkAclName = NetworkAclName

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def SubnetSet(self):
        return self._SubnetSet

    @SubnetSet.setter
    def SubnetSet(self, SubnetSet):
        self._SubnetSet = SubnetSet

    @property
    def IngressEntries(self):
        return self._IngressEntries

    @IngressEntries.setter
    def IngressEntries(self, IngressEntries):
        self._IngressEntries = IngressEntries

    @property
    def EgressEntries(self):
        return self._EgressEntries

    @EgressEntries.setter
    def EgressEntries(self, EgressEntries):
        self._EgressEntries = EgressEntries

    @property
    def NetworkAclType(self):
        return self._NetworkAclType

    @NetworkAclType.setter
    def NetworkAclType(self, NetworkAclType):
        self._NetworkAclType = NetworkAclType

    @property
    def TagSet(self):
        return self._TagSet

    @TagSet.setter
    def TagSet(self, TagSet):
        self._TagSet = TagSet


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._NetworkAclId = params.get("NetworkAclId")
        self._NetworkAclName = params.get("NetworkAclName")
        self._CreatedTime = params.get("CreatedTime")
        if params.get("SubnetSet") is not None:
            self._SubnetSet = []
            for item in params.get("SubnetSet"):
                obj = Subnet()
                obj._deserialize(item)
                self._SubnetSet.append(obj)
        if params.get("IngressEntries") is not None:
            self._IngressEntries = []
            for item in params.get("IngressEntries"):
                obj = NetworkAclEntry()
                obj._deserialize(item)
                self._IngressEntries.append(obj)
        if params.get("EgressEntries") is not None:
            self._EgressEntries = []
            for item in params.get("EgressEntries"):
                obj = NetworkAclEntry()
                obj._deserialize(item)
                self._EgressEntries.append(obj)
        self._NetworkAclType = params.get("NetworkAclType")
        if params.get("TagSet") is not None:
            self._TagSet = []
            for item in params.get("TagSet"):
                obj = Tag()
                obj._deserialize(item)
                self._TagSet.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NetworkAclEntry(AbstractModel):
    """网络ACL规则。

    """

    def __init__(self):
        r"""
        :param _Protocol: 协议, 取值: TCP,UDP, ICMP, ALL。
        :type Protocol: str
        :param _Port: 端口(all, 单个port,  range)。当Protocol为ALL或ICMP时，不能指定Port。
        :type Port: str
        :param _CidrBlock: 网段或IP(互斥)。增量创建ACL规则时，CidrBlock和Ipv6CidrBlock至少提供一个。
        :type CidrBlock: str
        :param _Ipv6CidrBlock: 网段或IPv6(互斥)。
        :type Ipv6CidrBlock: str
        :param _Action: ACCEPT 或 DROP。
        :type Action: str
        :param _Description: 规则描述，最大长度100。
        :type Description: str
        :param _ModifyTime: 修改时间。
        :type ModifyTime: str
        :param _Priority: 优先级，从1开始。	
        :type Priority: int
        :param _NetworkAclIpv4EntryId: IPv4网络ACL条目唯一ID。当修改ACL条目时，NetworkAclIpv4EntryId和NetworkAclIpv6EntryID至少提供一个。
注意：此字段可能返回 null，表示取不到有效值。
        :type NetworkAclIpv4EntryId: str
        :param _NetworkAclIpv6EntryId: IPv6网络ACL条目唯一ID。当修改ACL条目时，NetworkAclIpv4EntryId和NetworkAclIpv6EntryId至少提供一个。
注意：此字段可能返回 null，表示取不到有效值。
        :type NetworkAclIpv6EntryId: str
        """
        self._Protocol = None
        self._Port = None
        self._CidrBlock = None
        self._Ipv6CidrBlock = None
        self._Action = None
        self._Description = None
        self._ModifyTime = None
        self._Priority = None
        self._NetworkAclIpv4EntryId = None
        self._NetworkAclIpv6EntryId = None

    @property
    def Protocol(self):
        return self._Protocol

    @Protocol.setter
    def Protocol(self, Protocol):
        self._Protocol = Protocol

    @property
    def Port(self):
        return self._Port

    @Port.setter
    def Port(self, Port):
        self._Port = Port

    @property
    def CidrBlock(self):
        return self._CidrBlock

    @CidrBlock.setter
    def CidrBlock(self, CidrBlock):
        self._CidrBlock = CidrBlock

    @property
    def Ipv6CidrBlock(self):
        return self._Ipv6CidrBlock

    @Ipv6CidrBlock.setter
    def Ipv6CidrBlock(self, Ipv6CidrBlock):
        self._Ipv6CidrBlock = Ipv6CidrBlock

    @property
    def Action(self):
        return self._Action

    @Action.setter
    def Action(self, Action):
        self._Action = Action

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Priority(self):
        return self._Priority

    @Priority.setter
    def Priority(self, Priority):
        self._Priority = Priority

    @property
    def NetworkAclIpv4EntryId(self):
        return self._NetworkAclIpv4EntryId

    @NetworkAclIpv4EntryId.setter
    def NetworkAclIpv4EntryId(self, NetworkAclIpv4EntryId):
        self._NetworkAclIpv4EntryId = NetworkAclIpv4EntryId

    @property
    def NetworkAclIpv6EntryId(self):
        return self._NetworkAclIpv6EntryId

    @NetworkAclIpv6EntryId.setter
    def NetworkAclIpv6EntryId(self, NetworkAclIpv6EntryId):
        self._NetworkAclIpv6EntryId = NetworkAclIpv6EntryId


    def _deserialize(self, params):
        self._Protocol = params.get("Protocol")
        self._Port = params.get("Port")
        self._CidrBlock = params.get("CidrBlock")
        self._Ipv6CidrBlock = params.get("Ipv6CidrBlock")
        self._Action = params.get("Action")
        self._Description = params.get("Description")
        self._ModifyTime = params.get("ModifyTime")
        self._Priority = params.get("Priority")
        self._NetworkAclIpv4EntryId = params.get("NetworkAclIpv4EntryId")
        self._NetworkAclIpv6EntryId = params.get("NetworkAclIpv6EntryId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NetworkAclEntrySet(AbstractModel):
    """网络ACL规则集合

    """

    def __init__(self):
        r"""
        :param _Ingress: 入站规则。
        :type Ingress: list of NetworkAclEntry
        :param _Egress: 出站规则。
        :type Egress: list of NetworkAclEntry
        """
        self._Ingress = None
        self._Egress = None

    @property
    def Ingress(self):
        return self._Ingress

    @Ingress.setter
    def Ingress(self, Ingress):
        self._Ingress = Ingress

    @property
    def Egress(self):
        return self._Egress

    @Egress.setter
    def Egress(self, Egress):
        self._Egress = Egress


    def _deserialize(self, params):
        if params.get("Ingress") is not None:
            self._Ingress = []
            for item in params.get("Ingress"):
                obj = NetworkAclEntry()
                obj._deserialize(item)
                self._Ingress.append(obj)
        if params.get("Egress") is not None:
            self._Egress = []
            for item in params.get("Egress"):
                obj = NetworkAclEntry()
                obj._deserialize(item)
                self._Egress.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NetworkAclQuintupleEntries(AbstractModel):
    """网络ACL五元组

    """

    def __init__(self):
        r"""
        :param _Ingress: 网络ACL五元组入站规则。
        :type Ingress: list of NetworkAclQuintupleEntry
        :param _Egress: 网络ACL五元组出站规则
        :type Egress: list of NetworkAclQuintupleEntry
        """
        self._Ingress = None
        self._Egress = None

    @property
    def Ingress(self):
        return self._Ingress

    @Ingress.setter
    def Ingress(self, Ingress):
        self._Ingress = Ingress

    @property
    def Egress(self):
        return self._Egress

    @Egress.setter
    def Egress(self, Egress):
        self._Egress = Egress


    def _deserialize(self, params):
        if params.get("Ingress") is not None:
            self._Ingress = []
            for item in params.get("Ingress"):
                obj = NetworkAclQuintupleEntry()
                obj._deserialize(item)
                self._Ingress.append(obj)
        if params.get("Egress") is not None:
            self._Egress = []
            for item in params.get("Egress"):
                obj = NetworkAclQuintupleEntry()
                obj._deserialize(item)
                self._Egress.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NetworkAclQuintupleEntry(AbstractModel):
    """网络ACL五元组Entry

    """

    def __init__(self):
        r"""
        :param _Protocol: 协议, 取值: TCP,UDP, ICMP, ALL。
        :type Protocol: str
        :param _Description: 描述。
        :type Description: str
        :param _SourcePort: 源端口(all, 单个port,  range)。当Protocol为ALL或ICMP时，不能指定Port。
        :type SourcePort: str
        :param _SourceCidr: 源CIDR。
        :type SourceCidr: str
        :param _DestinationPort: 目的端口(all, 单个port,  range)。当Protocol为ALL或ICMP时，不能指定Port。
        :type DestinationPort: str
        :param _DestinationCidr: 目的CIDR。
        :type DestinationCidr: str
        :param _Action: 动作，ACCEPT 或 DROP。
        :type Action: str
        :param _NetworkAclQuintupleEntryId: 网络ACL条目唯一ID。
        :type NetworkAclQuintupleEntryId: str
        :param _Priority: 优先级，从1开始。
        :type Priority: int
        :param _CreateTime: 创建时间，用于DescribeNetworkAclQuintupleEntries的出参。
        :type CreateTime: str
        :param _NetworkAclDirection: 方向，INGRESS或EGRESS，用于DescribeNetworkAclQuintupleEntries的出参。
        :type NetworkAclDirection: str
        """
        self._Protocol = None
        self._Description = None
        self._SourcePort = None
        self._SourceCidr = None
        self._DestinationPort = None
        self._DestinationCidr = None
        self._Action = None
        self._NetworkAclQuintupleEntryId = None
        self._Priority = None
        self._CreateTime = None
        self._NetworkAclDirection = None

    @property
    def Protocol(self):
        return self._Protocol

    @Protocol.setter
    def Protocol(self, Protocol):
        self._Protocol = Protocol

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def SourcePort(self):
        return self._SourcePort

    @SourcePort.setter
    def SourcePort(self, SourcePort):
        self._SourcePort = SourcePort

    @property
    def SourceCidr(self):
        return self._SourceCidr

    @SourceCidr.setter
    def SourceCidr(self, SourceCidr):
        self._SourceCidr = SourceCidr

    @property
    def DestinationPort(self):
        return self._DestinationPort

    @DestinationPort.setter
    def DestinationPort(self, DestinationPort):
        self._DestinationPort = DestinationPort

    @property
    def DestinationCidr(self):
        return self._DestinationCidr

    @DestinationCidr.setter
    def DestinationCidr(self, DestinationCidr):
        self._DestinationCidr = DestinationCidr

    @property
    def Action(self):
        return self._Action

    @Action.setter
    def Action(self, Action):
        self._Action = Action

    @property
    def NetworkAclQuintupleEntryId(self):
        return self._NetworkAclQuintupleEntryId

    @NetworkAclQuintupleEntryId.setter
    def NetworkAclQuintupleEntryId(self, NetworkAclQuintupleEntryId):
        self._NetworkAclQuintupleEntryId = NetworkAclQuintupleEntryId

    @property
    def Priority(self):
        return self._Priority

    @Priority.setter
    def Priority(self, Priority):
        self._Priority = Priority

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def NetworkAclDirection(self):
        return self._NetworkAclDirection

    @NetworkAclDirection.setter
    def NetworkAclDirection(self, NetworkAclDirection):
        self._NetworkAclDirection = NetworkAclDirection


    def _deserialize(self, params):
        self._Protocol = params.get("Protocol")
        self._Description = params.get("Description")
        self._SourcePort = params.get("SourcePort")
        self._SourceCidr = params.get("SourceCidr")
        self._DestinationPort = params.get("DestinationPort")
        self._DestinationCidr = params.get("DestinationCidr")
        self._Action = params.get("Action")
        self._NetworkAclQuintupleEntryId = params.get("NetworkAclQuintupleEntryId")
        self._Priority = params.get("Priority")
        self._CreateTime = params.get("CreateTime")
        self._NetworkAclDirection = params.get("NetworkAclDirection")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NetworkInterface(AbstractModel):
    """弹性网卡

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceId: 弹性网卡实例ID，例如：eni-f1xjkw1b。
        :type NetworkInterfaceId: str
        :param _NetworkInterfaceName: 弹性网卡名称。
        :type NetworkInterfaceName: str
        :param _NetworkInterfaceDescription: 弹性网卡描述。
        :type NetworkInterfaceDescription: str
        :param _SubnetId: 子网实例ID。
        :type SubnetId: str
        :param _VpcId: VPC实例ID。
        :type VpcId: str
        :param _GroupSet: 绑定的安全组。
        :type GroupSet: list of str
        :param _Primary: 是否是主网卡。
        :type Primary: bool
        :param _MacAddress: MAC地址。
        :type MacAddress: str
        :param _State: 弹性网卡状态：
<li>`PENDING`：创建中</li>
<li>`AVAILABLE`：可用的</li>
<li>`ATTACHING`：绑定中</li>
<li>`DETACHING`：解绑中</li>
<li>`DELETING`：删除中</li>
        :type State: str
        :param _PrivateIpAddressSet: 内网IP信息。
        :type PrivateIpAddressSet: list of PrivateIpAddressSpecification
        :param _Attachment: 绑定的云服务器对象。
注意：此字段可能返回 null，表示取不到有效值。
        :type Attachment: :class:`tencentcloud.vpc.v20170312.models.NetworkInterfaceAttachment`
        :param _Zone: 可用区。
        :type Zone: str
        :param _CreatedTime: 创建时间。
        :type CreatedTime: str
        :param _Ipv6AddressSet: `IPv6`地址列表。
        :type Ipv6AddressSet: list of Ipv6Address
        :param _TagSet: 标签键值对。
        :type TagSet: list of Tag
        :param _EniType: 网卡类型。0 - 弹性网卡；1 - evm弹性网卡。
        :type EniType: int
        :param _Business: 网卡绑定的子机类型：cvm，eks。
注意：此字段可能返回 null，表示取不到有效值。
        :type Business: str
        :param _CdcId: 网卡所关联的CDC实例ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type CdcId: str
        :param _AttachType: 弹性网卡类型：0:标准型/1:扩展型。默认值为0。
注意：此字段可能返回 null，表示取不到有效值。
        :type AttachType: int
        :param _ResourceId: 用于保留网卡主IP的资源ID用于保留网卡主IP的资源ID。用于删除网卡时作为入参数。
注意：此字段可能返回 null，表示取不到有效值。
        :type ResourceId: str
        :param _QosLevel: 服务质量级别：
<li>`DEFAULT`：默认</li>
<li>`PT`：云金</li>
<li>`AU`：云银</li>
<li>`AG`：云铜</li>
注意：此字段可能返回 null，表示取不到有效值。
        :type QosLevel: str
        """
        self._NetworkInterfaceId = None
        self._NetworkInterfaceName = None
        self._NetworkInterfaceDescription = None
        self._SubnetId = None
        self._VpcId = None
        self._GroupSet = None
        self._Primary = None
        self._MacAddress = None
        self._State = None
        self._PrivateIpAddressSet = None
        self._Attachment = None
        self._Zone = None
        self._CreatedTime = None
        self._Ipv6AddressSet = None
        self._TagSet = None
        self._EniType = None
        self._Business = None
        self._CdcId = None
        self._AttachType = None
        self._ResourceId = None
        self._QosLevel = None

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId

    @property
    def NetworkInterfaceName(self):
        return self._NetworkInterfaceName

    @NetworkInterfaceName.setter
    def NetworkInterfaceName(self, NetworkInterfaceName):
        self._NetworkInterfaceName = NetworkInterfaceName

    @property
    def NetworkInterfaceDescription(self):
        return self._NetworkInterfaceDescription

    @NetworkInterfaceDescription.setter
    def NetworkInterfaceDescription(self, NetworkInterfaceDescription):
        self._NetworkInterfaceDescription = NetworkInterfaceDescription

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def GroupSet(self):
        return self._GroupSet

    @GroupSet.setter
    def GroupSet(self, GroupSet):
        self._GroupSet = GroupSet

    @property
    def Primary(self):
        return self._Primary

    @Primary.setter
    def Primary(self, Primary):
        self._Primary = Primary

    @property
    def MacAddress(self):
        return self._MacAddress

    @MacAddress.setter
    def MacAddress(self, MacAddress):
        self._MacAddress = MacAddress

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def PrivateIpAddressSet(self):
        return self._PrivateIpAddressSet

    @PrivateIpAddressSet.setter
    def PrivateIpAddressSet(self, PrivateIpAddressSet):
        self._PrivateIpAddressSet = PrivateIpAddressSet

    @property
    def Attachment(self):
        return self._Attachment

    @Attachment.setter
    def Attachment(self, Attachment):
        self._Attachment = Attachment

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def Ipv6AddressSet(self):
        return self._Ipv6AddressSet

    @Ipv6AddressSet.setter
    def Ipv6AddressSet(self, Ipv6AddressSet):
        self._Ipv6AddressSet = Ipv6AddressSet

    @property
    def TagSet(self):
        return self._TagSet

    @TagSet.setter
    def TagSet(self, TagSet):
        self._TagSet = TagSet

    @property
    def EniType(self):
        return self._EniType

    @EniType.setter
    def EniType(self, EniType):
        self._EniType = EniType

    @property
    def Business(self):
        return self._Business

    @Business.setter
    def Business(self, Business):
        self._Business = Business

    @property
    def CdcId(self):
        return self._CdcId

    @CdcId.setter
    def CdcId(self, CdcId):
        self._CdcId = CdcId

    @property
    def AttachType(self):
        return self._AttachType

    @AttachType.setter
    def AttachType(self, AttachType):
        self._AttachType = AttachType

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def QosLevel(self):
        return self._QosLevel

    @QosLevel.setter
    def QosLevel(self, QosLevel):
        self._QosLevel = QosLevel


    def _deserialize(self, params):
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        self._NetworkInterfaceName = params.get("NetworkInterfaceName")
        self._NetworkInterfaceDescription = params.get("NetworkInterfaceDescription")
        self._SubnetId = params.get("SubnetId")
        self._VpcId = params.get("VpcId")
        self._GroupSet = params.get("GroupSet")
        self._Primary = params.get("Primary")
        self._MacAddress = params.get("MacAddress")
        self._State = params.get("State")
        if params.get("PrivateIpAddressSet") is not None:
            self._PrivateIpAddressSet = []
            for item in params.get("PrivateIpAddressSet"):
                obj = PrivateIpAddressSpecification()
                obj._deserialize(item)
                self._PrivateIpAddressSet.append(obj)
        if params.get("Attachment") is not None:
            self._Attachment = NetworkInterfaceAttachment()
            self._Attachment._deserialize(params.get("Attachment"))
        self._Zone = params.get("Zone")
        self._CreatedTime = params.get("CreatedTime")
        if params.get("Ipv6AddressSet") is not None:
            self._Ipv6AddressSet = []
            for item in params.get("Ipv6AddressSet"):
                obj = Ipv6Address()
                obj._deserialize(item)
                self._Ipv6AddressSet.append(obj)
        if params.get("TagSet") is not None:
            self._TagSet = []
            for item in params.get("TagSet"):
                obj = Tag()
                obj._deserialize(item)
                self._TagSet.append(obj)
        self._EniType = params.get("EniType")
        self._Business = params.get("Business")
        self._CdcId = params.get("CdcId")
        self._AttachType = params.get("AttachType")
        self._ResourceId = params.get("ResourceId")
        self._QosLevel = params.get("QosLevel")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NetworkInterfaceAttachment(AbstractModel):
    """弹性网卡绑定关系

    """

    def __init__(self):
        r"""
        :param _InstanceId: 云主机实例ID。
        :type InstanceId: str
        :param _DeviceIndex: 网卡在云主机实例内的序号。
        :type DeviceIndex: int
        :param _InstanceAccountId: 云主机所有者账户信息。
        :type InstanceAccountId: str
        :param _AttachTime: 绑定时间。
        :type AttachTime: str
        """
        self._InstanceId = None
        self._DeviceIndex = None
        self._InstanceAccountId = None
        self._AttachTime = None

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def DeviceIndex(self):
        return self._DeviceIndex

    @DeviceIndex.setter
    def DeviceIndex(self, DeviceIndex):
        self._DeviceIndex = DeviceIndex

    @property
    def InstanceAccountId(self):
        return self._InstanceAccountId

    @InstanceAccountId.setter
    def InstanceAccountId(self, InstanceAccountId):
        self._InstanceAccountId = InstanceAccountId

    @property
    def AttachTime(self):
        return self._AttachTime

    @AttachTime.setter
    def AttachTime(self, AttachTime):
        self._AttachTime = AttachTime


    def _deserialize(self, params):
        self._InstanceId = params.get("InstanceId")
        self._DeviceIndex = params.get("DeviceIndex")
        self._InstanceAccountId = params.get("InstanceAccountId")
        self._AttachTime = params.get("AttachTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NotifyRoutesRequest(AbstractModel):
    """NotifyRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RouteTableId: 路由表唯一ID。
        :type RouteTableId: str
        :param _RouteItemIds: 路由策略唯一ID。
        :type RouteItemIds: list of str
        """
        self._RouteTableId = None
        self._RouteItemIds = None

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId

    @property
    def RouteItemIds(self):
        return self._RouteItemIds

    @RouteItemIds.setter
    def RouteItemIds(self, RouteItemIds):
        self._RouteItemIds = RouteItemIds


    def _deserialize(self, params):
        self._RouteTableId = params.get("RouteTableId")
        self._RouteItemIds = params.get("RouteItemIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NotifyRoutesResponse(AbstractModel):
    """NotifyRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class PeerConnection(AbstractModel):
    """对等连接实例信息。

    """

    def __init__(self):
        r"""
        :param _SourceVpcId: 本端VPC唯一ID。
        :type SourceVpcId: str
        :param _PeerVpcId: 对端VPC唯一ID。
        :type PeerVpcId: str
        :param _PeeringConnectionId: 对等连接唯一ID。
        :type PeeringConnectionId: str
        :param _PeeringConnectionName: 对等连接名称。
        :type PeeringConnectionName: str
        :param _State: 对等连接状态，PENDING，投放中；ACTIVE，使用中；REJECTED，已拒绝‘DELETED，已删除；FAILED，失败；EXPIRED，已过期；ISOLATED，隔离中。
        :type State: str
        :param _IsNgw: 是否是新控制器，true: 是NewAfc；false:不是。
        :type IsNgw: bool
        :param _Bandwidth: 对等连接带宽值。
        :type Bandwidth: int
        :param _SourceRegion: 本端地域。
        :type SourceRegion: str
        :param _DestinationRegion: 对端地域。
        :type DestinationRegion: str
        :param _CreateTime: 创建时间。
        :type CreateTime: str
        :param _AppId: 本端APPID。
        :type AppId: int
        :param _PeerAppId: 对端APPID。
        :type PeerAppId: int
        :param _ChargeType: 计费类型，POSTPAID_BY_DAY_MAX：日峰值计费；POSTPAID_BY_MONTH_95：月95计费。
        :type ChargeType: str
        :param _SourceUin: 本端UIN。
        :type SourceUin: int
        :param _DestinationUin: 对端UIN。
        :type DestinationUin: int
        :param _TagSet: 资源标签数据。
        :type TagSet: list of Tag
        :param _QosLevel: 服务分级：PT、AU、AG。
注意：此字段可能返回 null，表示取不到有效值。
        :type QosLevel: str
        :param _Type: 互通类型，VPC_PEER：VPC间互通；VPC_BM_PEER：VPC与黑石网络互通。
注意：此字段可能返回 null，表示取不到有效值。
        :type Type: str
        """
        self._SourceVpcId = None
        self._PeerVpcId = None
        self._PeeringConnectionId = None
        self._PeeringConnectionName = None
        self._State = None
        self._IsNgw = None
        self._Bandwidth = None
        self._SourceRegion = None
        self._DestinationRegion = None
        self._CreateTime = None
        self._AppId = None
        self._PeerAppId = None
        self._ChargeType = None
        self._SourceUin = None
        self._DestinationUin = None
        self._TagSet = None
        self._QosLevel = None
        self._Type = None

    @property
    def SourceVpcId(self):
        return self._SourceVpcId

    @SourceVpcId.setter
    def SourceVpcId(self, SourceVpcId):
        self._SourceVpcId = SourceVpcId

    @property
    def PeerVpcId(self):
        return self._PeerVpcId

    @PeerVpcId.setter
    def PeerVpcId(self, PeerVpcId):
        self._PeerVpcId = PeerVpcId

    @property
    def PeeringConnectionId(self):
        return self._PeeringConnectionId

    @PeeringConnectionId.setter
    def PeeringConnectionId(self, PeeringConnectionId):
        self._PeeringConnectionId = PeeringConnectionId

    @property
    def PeeringConnectionName(self):
        return self._PeeringConnectionName

    @PeeringConnectionName.setter
    def PeeringConnectionName(self, PeeringConnectionName):
        self._PeeringConnectionName = PeeringConnectionName

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def IsNgw(self):
        return self._IsNgw

    @IsNgw.setter
    def IsNgw(self, IsNgw):
        self._IsNgw = IsNgw

    @property
    def Bandwidth(self):
        return self._Bandwidth

    @Bandwidth.setter
    def Bandwidth(self, Bandwidth):
        self._Bandwidth = Bandwidth

    @property
    def SourceRegion(self):
        return self._SourceRegion

    @SourceRegion.setter
    def SourceRegion(self, SourceRegion):
        self._SourceRegion = SourceRegion

    @property
    def DestinationRegion(self):
        return self._DestinationRegion

    @DestinationRegion.setter
    def DestinationRegion(self, DestinationRegion):
        self._DestinationRegion = DestinationRegion

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def AppId(self):
        return self._AppId

    @AppId.setter
    def AppId(self, AppId):
        self._AppId = AppId

    @property
    def PeerAppId(self):
        return self._PeerAppId

    @PeerAppId.setter
    def PeerAppId(self, PeerAppId):
        self._PeerAppId = PeerAppId

    @property
    def ChargeType(self):
        return self._ChargeType

    @ChargeType.setter
    def ChargeType(self, ChargeType):
        self._ChargeType = ChargeType

    @property
    def SourceUin(self):
        return self._SourceUin

    @SourceUin.setter
    def SourceUin(self, SourceUin):
        self._SourceUin = SourceUin

    @property
    def DestinationUin(self):
        return self._DestinationUin

    @DestinationUin.setter
    def DestinationUin(self, DestinationUin):
        self._DestinationUin = DestinationUin

    @property
    def TagSet(self):
        return self._TagSet

    @TagSet.setter
    def TagSet(self, TagSet):
        self._TagSet = TagSet

    @property
    def QosLevel(self):
        return self._QosLevel

    @QosLevel.setter
    def QosLevel(self, QosLevel):
        self._QosLevel = QosLevel

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type


    def _deserialize(self, params):
        self._SourceVpcId = params.get("SourceVpcId")
        self._PeerVpcId = params.get("PeerVpcId")
        self._PeeringConnectionId = params.get("PeeringConnectionId")
        self._PeeringConnectionName = params.get("PeeringConnectionName")
        self._State = params.get("State")
        self._IsNgw = params.get("IsNgw")
        self._Bandwidth = params.get("Bandwidth")
        self._SourceRegion = params.get("SourceRegion")
        self._DestinationRegion = params.get("DestinationRegion")
        self._CreateTime = params.get("CreateTime")
        self._AppId = params.get("AppId")
        self._PeerAppId = params.get("PeerAppId")
        self._ChargeType = params.get("ChargeType")
        self._SourceUin = params.get("SourceUin")
        self._DestinationUin = params.get("DestinationUin")
        if params.get("TagSet") is not None:
            self._TagSet = []
            for item in params.get("TagSet"):
                obj = Tag()
                obj._deserialize(item)
                self._TagSet.append(obj)
        self._QosLevel = params.get("QosLevel")
        self._Type = params.get("Type")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Price(AbstractModel):
    """价格

    """

    def __init__(self):
        r"""
        :param _InstancePrice: 实例价格。
        :type InstancePrice: :class:`tencentcloud.vpc.v20170312.models.ItemPrice`
        :param _BandwidthPrice: 带宽价格。
        :type BandwidthPrice: :class:`tencentcloud.vpc.v20170312.models.ItemPrice`
        """
        self._InstancePrice = None
        self._BandwidthPrice = None

    @property
    def InstancePrice(self):
        return self._InstancePrice

    @InstancePrice.setter
    def InstancePrice(self, InstancePrice):
        self._InstancePrice = InstancePrice

    @property
    def BandwidthPrice(self):
        return self._BandwidthPrice

    @BandwidthPrice.setter
    def BandwidthPrice(self, BandwidthPrice):
        self._BandwidthPrice = BandwidthPrice


    def _deserialize(self, params):
        if params.get("InstancePrice") is not None:
            self._InstancePrice = ItemPrice()
            self._InstancePrice._deserialize(params.get("InstancePrice"))
        if params.get("BandwidthPrice") is not None:
            self._BandwidthPrice = ItemPrice()
            self._BandwidthPrice._deserialize(params.get("BandwidthPrice"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PrivateIpAddressSpecification(AbstractModel):
    """内网IP信息

    """

    def __init__(self):
        r"""
        :param _PrivateIpAddress: 内网IP地址。
        :type PrivateIpAddress: str
        :param _Primary: 是否是主IP。
        :type Primary: bool
        :param _PublicIpAddress: 公网IP地址。
        :type PublicIpAddress: str
        :param _AddressId: EIP实例ID，例如：eip-11112222。
        :type AddressId: str
        :param _Description: 内网IP描述信息。
        :type Description: str
        :param _IsWanIpBlocked: 公网IP是否被封堵。
        :type IsWanIpBlocked: bool
        :param _State: IP状态：
PENDING：生产中
MIGRATING：迁移中
DELETING：删除中
AVAILABLE：可用的
        :type State: str
        :param _QosLevel: IP服务质量等级，可选值：PT、AU、AG、DEFAULT，分别代表云金、云银、云铜、默认四个等级。
        :type QosLevel: str
        """
        self._PrivateIpAddress = None
        self._Primary = None
        self._PublicIpAddress = None
        self._AddressId = None
        self._Description = None
        self._IsWanIpBlocked = None
        self._State = None
        self._QosLevel = None

    @property
    def PrivateIpAddress(self):
        return self._PrivateIpAddress

    @PrivateIpAddress.setter
    def PrivateIpAddress(self, PrivateIpAddress):
        self._PrivateIpAddress = PrivateIpAddress

    @property
    def Primary(self):
        return self._Primary

    @Primary.setter
    def Primary(self, Primary):
        self._Primary = Primary

    @property
    def PublicIpAddress(self):
        return self._PublicIpAddress

    @PublicIpAddress.setter
    def PublicIpAddress(self, PublicIpAddress):
        self._PublicIpAddress = PublicIpAddress

    @property
    def AddressId(self):
        return self._AddressId

    @AddressId.setter
    def AddressId(self, AddressId):
        self._AddressId = AddressId

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def IsWanIpBlocked(self):
        return self._IsWanIpBlocked

    @IsWanIpBlocked.setter
    def IsWanIpBlocked(self, IsWanIpBlocked):
        self._IsWanIpBlocked = IsWanIpBlocked

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def QosLevel(self):
        return self._QosLevel

    @QosLevel.setter
    def QosLevel(self, QosLevel):
        self._QosLevel = QosLevel


    def _deserialize(self, params):
        self._PrivateIpAddress = params.get("PrivateIpAddress")
        self._Primary = params.get("Primary")
        self._PublicIpAddress = params.get("PublicIpAddress")
        self._AddressId = params.get("AddressId")
        self._Description = params.get("Description")
        self._IsWanIpBlocked = params.get("IsWanIpBlocked")
        self._State = params.get("State")
        self._QosLevel = params.get("QosLevel")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ProductQuota(AbstractModel):
    """描述网络中心每个产品的配额信息

    """

    def __init__(self):
        r"""
        :param _QuotaId: 产品配额ID
        :type QuotaId: str
        :param _QuotaName: 产品配额名称
        :type QuotaName: str
        :param _QuotaCurrent: 产品当前配额
        :type QuotaCurrent: int
        :param _QuotaLimit: 产品配额上限
        :type QuotaLimit: int
        :param _QuotaRegion: 产品配额是否有地域属性
        :type QuotaRegion: bool
        """
        self._QuotaId = None
        self._QuotaName = None
        self._QuotaCurrent = None
        self._QuotaLimit = None
        self._QuotaRegion = None

    @property
    def QuotaId(self):
        return self._QuotaId

    @QuotaId.setter
    def QuotaId(self, QuotaId):
        self._QuotaId = QuotaId

    @property
    def QuotaName(self):
        return self._QuotaName

    @QuotaName.setter
    def QuotaName(self, QuotaName):
        self._QuotaName = QuotaName

    @property
    def QuotaCurrent(self):
        return self._QuotaCurrent

    @QuotaCurrent.setter
    def QuotaCurrent(self, QuotaCurrent):
        self._QuotaCurrent = QuotaCurrent

    @property
    def QuotaLimit(self):
        return self._QuotaLimit

    @QuotaLimit.setter
    def QuotaLimit(self, QuotaLimit):
        self._QuotaLimit = QuotaLimit

    @property
    def QuotaRegion(self):
        return self._QuotaRegion

    @QuotaRegion.setter
    def QuotaRegion(self, QuotaRegion):
        self._QuotaRegion = QuotaRegion


    def _deserialize(self, params):
        self._QuotaId = params.get("QuotaId")
        self._QuotaName = params.get("QuotaName")
        self._QuotaCurrent = params.get("QuotaCurrent")
        self._QuotaLimit = params.get("QuotaLimit")
        self._QuotaRegion = params.get("QuotaRegion")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Quota(AbstractModel):
    """描述配额信息

    """

    def __init__(self):
        r"""
        :param _QuotaId: 配额名称，取值范围：<br><li>`TOTAL_EIP_QUOTA`：用户当前地域下EIP的配额数；<br><li>`DAILY_EIP_APPLY`：用户当前地域下今日申购次数；<br><li>`DAILY_PUBLIC_IP_ASSIGN`：用户当前地域下，重新分配公网 IP次数。
        :type QuotaId: str
        :param _QuotaCurrent: 当前数量
        :type QuotaCurrent: int
        :param _QuotaLimit: 配额数量
        :type QuotaLimit: int
        """
        self._QuotaId = None
        self._QuotaCurrent = None
        self._QuotaLimit = None

    @property
    def QuotaId(self):
        return self._QuotaId

    @QuotaId.setter
    def QuotaId(self, QuotaId):
        self._QuotaId = QuotaId

    @property
    def QuotaCurrent(self):
        return self._QuotaCurrent

    @QuotaCurrent.setter
    def QuotaCurrent(self, QuotaCurrent):
        self._QuotaCurrent = QuotaCurrent

    @property
    def QuotaLimit(self):
        return self._QuotaLimit

    @QuotaLimit.setter
    def QuotaLimit(self, QuotaLimit):
        self._QuotaLimit = QuotaLimit


    def _deserialize(self, params):
        self._QuotaId = params.get("QuotaId")
        self._QuotaCurrent = params.get("QuotaCurrent")
        self._QuotaLimit = params.get("QuotaLimit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ReferredSecurityGroup(AbstractModel):
    """安全组被引用信息

    """

    def __init__(self):
        r"""
        :param _SecurityGroupId: 安全组实例ID。
        :type SecurityGroupId: str
        :param _ReferredSecurityGroupIds: 引用安全组实例ID（SecurityGroupId）的所有安全组实例ID。
        :type ReferredSecurityGroupIds: list of str
        """
        self._SecurityGroupId = None
        self._ReferredSecurityGroupIds = None

    @property
    def SecurityGroupId(self):
        return self._SecurityGroupId

    @SecurityGroupId.setter
    def SecurityGroupId(self, SecurityGroupId):
        self._SecurityGroupId = SecurityGroupId

    @property
    def ReferredSecurityGroupIds(self):
        return self._ReferredSecurityGroupIds

    @ReferredSecurityGroupIds.setter
    def ReferredSecurityGroupIds(self, ReferredSecurityGroupIds):
        self._ReferredSecurityGroupIds = ReferredSecurityGroupIds


    def _deserialize(self, params):
        self._SecurityGroupId = params.get("SecurityGroupId")
        self._ReferredSecurityGroupIds = params.get("ReferredSecurityGroupIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RefreshDirectConnectGatewayRouteToNatGatewayRequest(AbstractModel):
    """RefreshDirectConnectGatewayRouteToNatGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: vpc的ID
        :type VpcId: str
        :param _NatGatewayId: NAT网关ID
        :type NatGatewayId: str
        :param _DryRun: 是否是预刷新；True:是， False:否
        :type DryRun: bool
        """
        self._VpcId = None
        self._NatGatewayId = None
        self._DryRun = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def DryRun(self):
        return self._DryRun

    @DryRun.setter
    def DryRun(self, DryRun):
        self._DryRun = DryRun


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._NatGatewayId = params.get("NatGatewayId")
        self._DryRun = params.get("DryRun")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RefreshDirectConnectGatewayRouteToNatGatewayResponse(AbstractModel):
    """RefreshDirectConnectGatewayRouteToNatGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DirectConnectSubnetSet: IDC子网信息
        :type DirectConnectSubnetSet: list of DirectConnectSubnet
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DirectConnectSubnetSet = None
        self._RequestId = None

    @property
    def DirectConnectSubnetSet(self):
        return self._DirectConnectSubnetSet

    @DirectConnectSubnetSet.setter
    def DirectConnectSubnetSet(self, DirectConnectSubnetSet):
        self._DirectConnectSubnetSet = DirectConnectSubnetSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("DirectConnectSubnetSet") is not None:
            self._DirectConnectSubnetSet = []
            for item in params.get("DirectConnectSubnetSet"):
                obj = DirectConnectSubnet()
                obj._deserialize(item)
                self._DirectConnectSubnetSet.append(obj)
        self._RequestId = params.get("RequestId")


class RejectAttachCcnInstancesRequest(AbstractModel):
    """RejectAttachCcnInstances请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnId: CCN实例ID。形如：ccn-f49l6u0z。
        :type CcnId: str
        :param _Instances: 拒绝关联实例列表。
        :type Instances: list of CcnInstance
        """
        self._CcnId = None
        self._Instances = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def Instances(self):
        return self._Instances

    @Instances.setter
    def Instances(self, Instances):
        self._Instances = Instances


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        if params.get("Instances") is not None:
            self._Instances = []
            for item in params.get("Instances"):
                obj = CcnInstance()
                obj._deserialize(item)
                self._Instances.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RejectAttachCcnInstancesResponse(AbstractModel):
    """RejectAttachCcnInstances返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class RejectVpcPeeringConnectionRequest(AbstractModel):
    """RejectVpcPeeringConnection请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PeeringConnectionId: 对等连接唯一ID。
        :type PeeringConnectionId: str
        """
        self._PeeringConnectionId = None

    @property
    def PeeringConnectionId(self):
        return self._PeeringConnectionId

    @PeeringConnectionId.setter
    def PeeringConnectionId(self, PeeringConnectionId):
        self._PeeringConnectionId = PeeringConnectionId


    def _deserialize(self, params):
        self._PeeringConnectionId = params.get("PeeringConnectionId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RejectVpcPeeringConnectionResponse(AbstractModel):
    """RejectVpcPeeringConnection返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ReleaseAddressesRequest(AbstractModel):
    """ReleaseAddresses请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressIds: 标识 EIP 的唯一 ID 列表。EIP 唯一 ID 形如：`eip-11112222`。
        :type AddressIds: list of str
        """
        self._AddressIds = None

    @property
    def AddressIds(self):
        return self._AddressIds

    @AddressIds.setter
    def AddressIds(self, AddressIds):
        self._AddressIds = AddressIds


    def _deserialize(self, params):
        self._AddressIds = params.get("AddressIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ReleaseAddressesResponse(AbstractModel):
    """ReleaseAddresses返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步任务TaskId。可以使用[DescribeTaskResult](https://cloud.tencent.com/document/api/215/36271)接口查询任务状态。
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ReleaseIp6AddressesBandwidthRequest(AbstractModel):
    """ReleaseIp6AddressesBandwidth请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip6Addresses: IPV6地址。Ip6Addresses和Ip6AddressIds必须且只能传一个
        :type Ip6Addresses: list of str
        :param _Ip6AddressIds: IPV6地址对应的唯一ID，形如eip-xxxxxxxx。Ip6Addresses和Ip6AddressIds必须且只能传一个。
        :type Ip6AddressIds: list of str
        """
        self._Ip6Addresses = None
        self._Ip6AddressIds = None

    @property
    def Ip6Addresses(self):
        return self._Ip6Addresses

    @Ip6Addresses.setter
    def Ip6Addresses(self, Ip6Addresses):
        self._Ip6Addresses = Ip6Addresses

    @property
    def Ip6AddressIds(self):
        return self._Ip6AddressIds

    @Ip6AddressIds.setter
    def Ip6AddressIds(self, Ip6AddressIds):
        self._Ip6AddressIds = Ip6AddressIds


    def _deserialize(self, params):
        self._Ip6Addresses = params.get("Ip6Addresses")
        self._Ip6AddressIds = params.get("Ip6AddressIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ReleaseIp6AddressesBandwidthResponse(AbstractModel):
    """ReleaseIp6AddressesBandwidth返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步任务TaskId。可以使用[DescribeTaskResult](https://cloud.tencent.com/document/api/215/36271)接口查询任务状态。
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class RemoveBandwidthPackageResourcesRequest(AbstractModel):
    """RemoveBandwidthPackageResources请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BandwidthPackageId: 带宽包唯一标识ID，形如'bwp-xxxx'
        :type BandwidthPackageId: str
        :param _ResourceType: 资源类型，包括‘Address’, ‘LoadBalance’
        :type ResourceType: str
        :param _ResourceIds: 资源ID，可支持资源形如'eip-xxxx', 'lb-xxxx'
        :type ResourceIds: list of str
        """
        self._BandwidthPackageId = None
        self._ResourceType = None
        self._ResourceIds = None

    @property
    def BandwidthPackageId(self):
        return self._BandwidthPackageId

    @BandwidthPackageId.setter
    def BandwidthPackageId(self, BandwidthPackageId):
        self._BandwidthPackageId = BandwidthPackageId

    @property
    def ResourceType(self):
        return self._ResourceType

    @ResourceType.setter
    def ResourceType(self, ResourceType):
        self._ResourceType = ResourceType

    @property
    def ResourceIds(self):
        return self._ResourceIds

    @ResourceIds.setter
    def ResourceIds(self, ResourceIds):
        self._ResourceIds = ResourceIds


    def _deserialize(self, params):
        self._BandwidthPackageId = params.get("BandwidthPackageId")
        self._ResourceType = params.get("ResourceType")
        self._ResourceIds = params.get("ResourceIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RemoveBandwidthPackageResourcesResponse(AbstractModel):
    """RemoveBandwidthPackageResources返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class RemoveIp6RulesRequest(AbstractModel):
    """RemoveIp6Rules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip6TranslatorId: IPV6转换规则所属的转换实例唯一ID，形如ip6-xxxxxxxx
        :type Ip6TranslatorId: str
        :param _Ip6RuleIds: 待删除IPV6转换规则，形如rule6-xxxxxxxx
        :type Ip6RuleIds: list of str
        """
        self._Ip6TranslatorId = None
        self._Ip6RuleIds = None

    @property
    def Ip6TranslatorId(self):
        return self._Ip6TranslatorId

    @Ip6TranslatorId.setter
    def Ip6TranslatorId(self, Ip6TranslatorId):
        self._Ip6TranslatorId = Ip6TranslatorId

    @property
    def Ip6RuleIds(self):
        return self._Ip6RuleIds

    @Ip6RuleIds.setter
    def Ip6RuleIds(self, Ip6RuleIds):
        self._Ip6RuleIds = Ip6RuleIds


    def _deserialize(self, params):
        self._Ip6TranslatorId = params.get("Ip6TranslatorId")
        self._Ip6RuleIds = params.get("Ip6RuleIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RemoveIp6RulesResponse(AbstractModel):
    """RemoveIp6Rules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class RenewAddressesRequest(AbstractModel):
    """RenewAddresses请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressIds: EIP唯一标识ID列表，形如'eip-xxxx'
        :type AddressIds: list of str
        :param _AddressChargePrepaid: 续费参数
        :type AddressChargePrepaid: :class:`tencentcloud.vpc.v20170312.models.AddressChargePrepaid`
        """
        self._AddressIds = None
        self._AddressChargePrepaid = None

    @property
    def AddressIds(self):
        return self._AddressIds

    @AddressIds.setter
    def AddressIds(self, AddressIds):
        self._AddressIds = AddressIds

    @property
    def AddressChargePrepaid(self):
        return self._AddressChargePrepaid

    @AddressChargePrepaid.setter
    def AddressChargePrepaid(self, AddressChargePrepaid):
        self._AddressChargePrepaid = AddressChargePrepaid


    def _deserialize(self, params):
        self._AddressIds = params.get("AddressIds")
        if params.get("AddressChargePrepaid") is not None:
            self._AddressChargePrepaid = AddressChargePrepaid()
            self._AddressChargePrepaid._deserialize(params.get("AddressChargePrepaid"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RenewAddressesResponse(AbstractModel):
    """RenewAddresses返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class RenewVpnGatewayRequest(AbstractModel):
    """RenewVpnGateway请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关实例ID。
        :type VpnGatewayId: str
        :param _InstanceChargePrepaid: 预付费计费模式。
        :type InstanceChargePrepaid: :class:`tencentcloud.vpc.v20170312.models.InstanceChargePrepaid`
        """
        self._VpnGatewayId = None
        self._InstanceChargePrepaid = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def InstanceChargePrepaid(self):
        return self._InstanceChargePrepaid

    @InstanceChargePrepaid.setter
    def InstanceChargePrepaid(self, InstanceChargePrepaid):
        self._InstanceChargePrepaid = InstanceChargePrepaid


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        if params.get("InstanceChargePrepaid") is not None:
            self._InstanceChargePrepaid = InstanceChargePrepaid()
            self._InstanceChargePrepaid._deserialize(params.get("InstanceChargePrepaid"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RenewVpnGatewayResponse(AbstractModel):
    """RenewVpnGateway返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ReplaceDirectConnectGatewayCcnRoutesRequest(AbstractModel):
    """ReplaceDirectConnectGatewayCcnRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DirectConnectGatewayId: 专线网关ID，形如：dcg-prpqlmg1
        :type DirectConnectGatewayId: str
        :param _Routes: 需要连通的IDC网段列表
        :type Routes: list of DirectConnectGatewayCcnRoute
        """
        self._DirectConnectGatewayId = None
        self._Routes = None

    @property
    def DirectConnectGatewayId(self):
        return self._DirectConnectGatewayId

    @DirectConnectGatewayId.setter
    def DirectConnectGatewayId(self, DirectConnectGatewayId):
        self._DirectConnectGatewayId = DirectConnectGatewayId

    @property
    def Routes(self):
        return self._Routes

    @Routes.setter
    def Routes(self, Routes):
        self._Routes = Routes


    def _deserialize(self, params):
        self._DirectConnectGatewayId = params.get("DirectConnectGatewayId")
        if params.get("Routes") is not None:
            self._Routes = []
            for item in params.get("Routes"):
                obj = DirectConnectGatewayCcnRoute()
                obj._deserialize(item)
                self._Routes.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ReplaceDirectConnectGatewayCcnRoutesResponse(AbstractModel):
    """ReplaceDirectConnectGatewayCcnRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ReplaceRouteTableAssociationRequest(AbstractModel):
    """ReplaceRouteTableAssociation请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SubnetId: 子网实例ID，例如：subnet-3x5lf5q0。可通过DescribeSubnets接口查询。
        :type SubnetId: str
        :param _RouteTableId: 路由表实例ID，例如：rtb-azd4dt1c。
        :type RouteTableId: str
        """
        self._SubnetId = None
        self._RouteTableId = None

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId


    def _deserialize(self, params):
        self._SubnetId = params.get("SubnetId")
        self._RouteTableId = params.get("RouteTableId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ReplaceRouteTableAssociationResponse(AbstractModel):
    """ReplaceRouteTableAssociation返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ReplaceRoutesRequest(AbstractModel):
    """ReplaceRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RouteTableId: 路由表实例ID，例如：rtb-azd4dt1c。
        :type RouteTableId: str
        :param _Routes: 路由策略对象。需要指定路由策略ID（RouteId）。
        :type Routes: list of Route
        """
        self._RouteTableId = None
        self._Routes = None

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId

    @property
    def Routes(self):
        return self._Routes

    @Routes.setter
    def Routes(self, Routes):
        self._Routes = Routes


    def _deserialize(self, params):
        self._RouteTableId = params.get("RouteTableId")
        if params.get("Routes") is not None:
            self._Routes = []
            for item in params.get("Routes"):
                obj = Route()
                obj._deserialize(item)
                self._Routes.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ReplaceRoutesResponse(AbstractModel):
    """ReplaceRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _OldRouteSet: 原路由策略信息。
        :type OldRouteSet: list of Route
        :param _NewRouteSet: 修改后的路由策略信息。
        :type NewRouteSet: list of Route
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._OldRouteSet = None
        self._NewRouteSet = None
        self._RequestId = None

    @property
    def OldRouteSet(self):
        return self._OldRouteSet

    @OldRouteSet.setter
    def OldRouteSet(self, OldRouteSet):
        self._OldRouteSet = OldRouteSet

    @property
    def NewRouteSet(self):
        return self._NewRouteSet

    @NewRouteSet.setter
    def NewRouteSet(self, NewRouteSet):
        self._NewRouteSet = NewRouteSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("OldRouteSet") is not None:
            self._OldRouteSet = []
            for item in params.get("OldRouteSet"):
                obj = Route()
                obj._deserialize(item)
                self._OldRouteSet.append(obj)
        if params.get("NewRouteSet") is not None:
            self._NewRouteSet = []
            for item in params.get("NewRouteSet"):
                obj = Route()
                obj._deserialize(item)
                self._NewRouteSet.append(obj)
        self._RequestId = params.get("RequestId")


class ReplaceSecurityGroupPoliciesRequest(AbstractModel):
    """ReplaceSecurityGroupPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupId: 安全组实例ID，例如sg-33ocnj9n，可通过DescribeSecurityGroups获取。
        :type SecurityGroupId: str
        :param _SecurityGroupPolicySet: 安全组规则集合对象。
        :type SecurityGroupPolicySet: :class:`tencentcloud.vpc.v20170312.models.SecurityGroupPolicySet`
        :param _OriginalSecurityGroupPolicySet: 旧的安全组规则集合对象，可选，日志记录用。
        :type OriginalSecurityGroupPolicySet: :class:`tencentcloud.vpc.v20170312.models.SecurityGroupPolicySet`
        """
        self._SecurityGroupId = None
        self._SecurityGroupPolicySet = None
        self._OriginalSecurityGroupPolicySet = None

    @property
    def SecurityGroupId(self):
        return self._SecurityGroupId

    @SecurityGroupId.setter
    def SecurityGroupId(self, SecurityGroupId):
        self._SecurityGroupId = SecurityGroupId

    @property
    def SecurityGroupPolicySet(self):
        return self._SecurityGroupPolicySet

    @SecurityGroupPolicySet.setter
    def SecurityGroupPolicySet(self, SecurityGroupPolicySet):
        self._SecurityGroupPolicySet = SecurityGroupPolicySet

    @property
    def OriginalSecurityGroupPolicySet(self):
        return self._OriginalSecurityGroupPolicySet

    @OriginalSecurityGroupPolicySet.setter
    def OriginalSecurityGroupPolicySet(self, OriginalSecurityGroupPolicySet):
        self._OriginalSecurityGroupPolicySet = OriginalSecurityGroupPolicySet


    def _deserialize(self, params):
        self._SecurityGroupId = params.get("SecurityGroupId")
        if params.get("SecurityGroupPolicySet") is not None:
            self._SecurityGroupPolicySet = SecurityGroupPolicySet()
            self._SecurityGroupPolicySet._deserialize(params.get("SecurityGroupPolicySet"))
        if params.get("OriginalSecurityGroupPolicySet") is not None:
            self._OriginalSecurityGroupPolicySet = SecurityGroupPolicySet()
            self._OriginalSecurityGroupPolicySet._deserialize(params.get("OriginalSecurityGroupPolicySet"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ReplaceSecurityGroupPoliciesResponse(AbstractModel):
    """ReplaceSecurityGroupPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ReplaceSecurityGroupPolicyRequest(AbstractModel):
    """ReplaceSecurityGroupPolicy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityGroupId: 安全组实例ID，例如sg-33ocnj9n，可通过<a href="https://cloud.tencent.com/document/product/215/15808">DescribeSecurityGroups</a>获取。
        :type SecurityGroupId: str
        :param _SecurityGroupPolicySet: 安全组规则集合对象。
        :type SecurityGroupPolicySet: :class:`tencentcloud.vpc.v20170312.models.SecurityGroupPolicySet`
        :param _OriginalSecurityGroupPolicySet: 旧的安全组规则集合对象，可选，日志记录用。
        :type OriginalSecurityGroupPolicySet: :class:`tencentcloud.vpc.v20170312.models.SecurityGroupPolicySet`
        """
        self._SecurityGroupId = None
        self._SecurityGroupPolicySet = None
        self._OriginalSecurityGroupPolicySet = None

    @property
    def SecurityGroupId(self):
        return self._SecurityGroupId

    @SecurityGroupId.setter
    def SecurityGroupId(self, SecurityGroupId):
        self._SecurityGroupId = SecurityGroupId

    @property
    def SecurityGroupPolicySet(self):
        return self._SecurityGroupPolicySet

    @SecurityGroupPolicySet.setter
    def SecurityGroupPolicySet(self, SecurityGroupPolicySet):
        self._SecurityGroupPolicySet = SecurityGroupPolicySet

    @property
    def OriginalSecurityGroupPolicySet(self):
        return self._OriginalSecurityGroupPolicySet

    @OriginalSecurityGroupPolicySet.setter
    def OriginalSecurityGroupPolicySet(self, OriginalSecurityGroupPolicySet):
        self._OriginalSecurityGroupPolicySet = OriginalSecurityGroupPolicySet


    def _deserialize(self, params):
        self._SecurityGroupId = params.get("SecurityGroupId")
        if params.get("SecurityGroupPolicySet") is not None:
            self._SecurityGroupPolicySet = SecurityGroupPolicySet()
            self._SecurityGroupPolicySet._deserialize(params.get("SecurityGroupPolicySet"))
        if params.get("OriginalSecurityGroupPolicySet") is not None:
            self._OriginalSecurityGroupPolicySet = SecurityGroupPolicySet()
            self._OriginalSecurityGroupPolicySet._deserialize(params.get("OriginalSecurityGroupPolicySet"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ReplaceSecurityGroupPolicyResponse(AbstractModel):
    """ReplaceSecurityGroupPolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ResetAttachCcnInstancesRequest(AbstractModel):
    """ResetAttachCcnInstances请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnId: CCN实例ID。形如：ccn-f49l6u0z。
        :type CcnId: str
        :param _CcnUin: CCN所属UIN（根账号）。
        :type CcnUin: str
        :param _Instances: 重新申请关联网络实例列表。
        :type Instances: list of CcnInstance
        """
        self._CcnId = None
        self._CcnUin = None
        self._Instances = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def CcnUin(self):
        return self._CcnUin

    @CcnUin.setter
    def CcnUin(self, CcnUin):
        self._CcnUin = CcnUin

    @property
    def Instances(self):
        return self._Instances

    @Instances.setter
    def Instances(self, Instances):
        self._Instances = Instances


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        self._CcnUin = params.get("CcnUin")
        if params.get("Instances") is not None:
            self._Instances = []
            for item in params.get("Instances"):
                obj = CcnInstance()
                obj._deserialize(item)
                self._Instances.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ResetAttachCcnInstancesResponse(AbstractModel):
    """ResetAttachCcnInstances返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ResetNatGatewayConnectionRequest(AbstractModel):
    """ResetNatGatewayConnection请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NatGatewayId: NAT网关ID。
        :type NatGatewayId: str
        :param _MaxConcurrentConnection: NAT网关并发连接上限，形如：1000000、3000000、10000000。
        :type MaxConcurrentConnection: int
        """
        self._NatGatewayId = None
        self._MaxConcurrentConnection = None

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def MaxConcurrentConnection(self):
        return self._MaxConcurrentConnection

    @MaxConcurrentConnection.setter
    def MaxConcurrentConnection(self, MaxConcurrentConnection):
        self._MaxConcurrentConnection = MaxConcurrentConnection


    def _deserialize(self, params):
        self._NatGatewayId = params.get("NatGatewayId")
        self._MaxConcurrentConnection = params.get("MaxConcurrentConnection")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ResetNatGatewayConnectionResponse(AbstractModel):
    """ResetNatGatewayConnection返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ResetRoutesRequest(AbstractModel):
    """ResetRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RouteTableId: 路由表实例ID，例如：rtb-azd4dt1c。
        :type RouteTableId: str
        :param _RouteTableName: 路由表名称，最大长度不能超过60个字节。
        :type RouteTableName: str
        :param _Routes: 路由策略。
        :type Routes: list of Route
        """
        self._RouteTableId = None
        self._RouteTableName = None
        self._Routes = None

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId

    @property
    def RouteTableName(self):
        return self._RouteTableName

    @RouteTableName.setter
    def RouteTableName(self, RouteTableName):
        self._RouteTableName = RouteTableName

    @property
    def Routes(self):
        return self._Routes

    @Routes.setter
    def Routes(self, Routes):
        self._Routes = Routes


    def _deserialize(self, params):
        self._RouteTableId = params.get("RouteTableId")
        self._RouteTableName = params.get("RouteTableName")
        if params.get("Routes") is not None:
            self._Routes = []
            for item in params.get("Routes"):
                obj = Route()
                obj._deserialize(item)
                self._Routes.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ResetRoutesResponse(AbstractModel):
    """ResetRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ResetVpnConnectionRequest(AbstractModel):
    """ResetVpnConnection请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关实例ID。
        :type VpnGatewayId: str
        :param _VpnConnectionId: VPN通道实例ID。形如：vpnx-f49l6u0z。
        :type VpnConnectionId: str
        """
        self._VpnGatewayId = None
        self._VpnConnectionId = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def VpnConnectionId(self):
        return self._VpnConnectionId

    @VpnConnectionId.setter
    def VpnConnectionId(self, VpnConnectionId):
        self._VpnConnectionId = VpnConnectionId


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        self._VpnConnectionId = params.get("VpnConnectionId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ResetVpnConnectionResponse(AbstractModel):
    """ResetVpnConnection返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ResetVpnGatewayInternetMaxBandwidthRequest(AbstractModel):
    """ResetVpnGatewayInternetMaxBandwidth请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: VPN网关实例ID。
        :type VpnGatewayId: str
        :param _InternetMaxBandwidthOut: 新规格公网带宽设置。可选带宽规格：5, 10, 20, 50, 100, 200, 500, 1000；单位：Mbps。VPN网关带宽目前仅支持部分带宽范围内升降配，如【5,100】Mbps和【200,1000】Mbps，在各自带宽范围内可提升配额，跨范围提升配额和降配暂不支持。
        :type InternetMaxBandwidthOut: int
        """
        self._VpnGatewayId = None
        self._InternetMaxBandwidthOut = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def InternetMaxBandwidthOut(self):
        return self._InternetMaxBandwidthOut

    @InternetMaxBandwidthOut.setter
    def InternetMaxBandwidthOut(self, InternetMaxBandwidthOut):
        self._InternetMaxBandwidthOut = InternetMaxBandwidthOut


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        self._InternetMaxBandwidthOut = params.get("InternetMaxBandwidthOut")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ResetVpnGatewayInternetMaxBandwidthResponse(AbstractModel):
    """ResetVpnGatewayInternetMaxBandwidth返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class Resource(AbstractModel):
    """描述带宽包资源信息的结构

    """

    def __init__(self):
        r"""
        :param _ResourceType: 带宽包资源类型，包括'Address'和'LoadBalance'
        :type ResourceType: str
        :param _ResourceId: 带宽包资源Id，形如'eip-xxxx', 'lb-xxxx'
        :type ResourceId: str
        :param _AddressIp: 带宽包资源Ip
        :type AddressIp: str
        """
        self._ResourceType = None
        self._ResourceId = None
        self._AddressIp = None

    @property
    def ResourceType(self):
        return self._ResourceType

    @ResourceType.setter
    def ResourceType(self, ResourceType):
        self._ResourceType = ResourceType

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def AddressIp(self):
        return self._AddressIp

    @AddressIp.setter
    def AddressIp(self, AddressIp):
        self._AddressIp = AddressIp


    def _deserialize(self, params):
        self._ResourceType = params.get("ResourceType")
        self._ResourceId = params.get("ResourceId")
        self._AddressIp = params.get("AddressIp")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ResourceDashboard(AbstractModel):
    """VPC资源看板（各资源个数）

    """

    def __init__(self):
        r"""
        :param _VpcId: Vpc实例ID，例如：vpc-bq4bzxpj。
        :type VpcId: str
        :param _SubnetId: 子网实例ID，例如：subnet-bthucmmy。
        :type SubnetId: str
        :param _Classiclink: 基础网络互通。
        :type Classiclink: int
        :param _Dcg: 专线网关。
        :type Dcg: int
        :param _Pcx: 对等连接。
        :type Pcx: int
        :param _Ip: 统计当前除云服务器 IP、弹性网卡IP和网络探测IP以外的所有已使用的IP总数。云服务器 IP、弹性网卡IP和网络探测IP单独计数。
        :type Ip: int
        :param _Nat: NAT网关。
        :type Nat: int
        :param _Vpngw: VPN网关。
        :type Vpngw: int
        :param _FlowLog: 流日志。
        :type FlowLog: int
        :param _NetworkDetect: 网络探测。
        :type NetworkDetect: int
        :param _NetworkACL: 网络ACL。
        :type NetworkACL: int
        :param _CVM: 云主机。
        :type CVM: int
        :param _LB: 负载均衡。
        :type LB: int
        :param _CDB: 关系型数据库。
        :type CDB: int
        :param _Cmem: 云数据库 TencentDB for Memcached。
        :type Cmem: int
        :param _CTSDB: 时序数据库。
        :type CTSDB: int
        :param _MariaDB: 数据库 TencentDB for MariaDB（TDSQL）。
        :type MariaDB: int
        :param _SQLServer: 数据库 TencentDB for SQL Server。
        :type SQLServer: int
        :param _Postgres: 云数据库 TencentDB for PostgreSQL。
        :type Postgres: int
        :param _NAS: 网络附加存储。
        :type NAS: int
        :param _Greenplumn: Snova云数据仓库。
        :type Greenplumn: int
        :param _Ckafka: 消息队列 CKAFKA。
        :type Ckafka: int
        :param _Grocery: Grocery。
        :type Grocery: int
        :param _HSM: 数据加密服务。
        :type HSM: int
        :param _Tcaplus: 游戏存储 Tcaplus。
        :type Tcaplus: int
        :param _Cnas: Cnas。
        :type Cnas: int
        :param _TiDB: HTAP 数据库 TiDB。
        :type TiDB: int
        :param _Emr: EMR 集群。
        :type Emr: int
        :param _SEAL: SEAL。
        :type SEAL: int
        :param _CFS: 文件存储 CFS。
        :type CFS: int
        :param _Oracle: Oracle。
        :type Oracle: int
        :param _ElasticSearch: ElasticSearch服务。
        :type ElasticSearch: int
        :param _TBaaS: 区块链服务。
        :type TBaaS: int
        :param _Itop: Itop。
        :type Itop: int
        :param _DBAudit: 云数据库审计。
        :type DBAudit: int
        :param _CynosDBPostgres: 企业级云数据库 CynosDB for Postgres。
        :type CynosDBPostgres: int
        :param _Redis: 数据库 TencentDB for Redis。
        :type Redis: int
        :param _MongoDB: 数据库 TencentDB for MongoDB。
        :type MongoDB: int
        :param _DCDB: 分布式数据库 TencentDB for TDSQL。
        :type DCDB: int
        :param _CynosDBMySQL: 企业级云数据库 CynosDB for MySQL。
        :type CynosDBMySQL: int
        :param _Subnet: 子网。
        :type Subnet: int
        :param _RouteTable: 路由表。
        :type RouteTable: int
        """
        self._VpcId = None
        self._SubnetId = None
        self._Classiclink = None
        self._Dcg = None
        self._Pcx = None
        self._Ip = None
        self._Nat = None
        self._Vpngw = None
        self._FlowLog = None
        self._NetworkDetect = None
        self._NetworkACL = None
        self._CVM = None
        self._LB = None
        self._CDB = None
        self._Cmem = None
        self._CTSDB = None
        self._MariaDB = None
        self._SQLServer = None
        self._Postgres = None
        self._NAS = None
        self._Greenplumn = None
        self._Ckafka = None
        self._Grocery = None
        self._HSM = None
        self._Tcaplus = None
        self._Cnas = None
        self._TiDB = None
        self._Emr = None
        self._SEAL = None
        self._CFS = None
        self._Oracle = None
        self._ElasticSearch = None
        self._TBaaS = None
        self._Itop = None
        self._DBAudit = None
        self._CynosDBPostgres = None
        self._Redis = None
        self._MongoDB = None
        self._DCDB = None
        self._CynosDBMySQL = None
        self._Subnet = None
        self._RouteTable = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def Classiclink(self):
        return self._Classiclink

    @Classiclink.setter
    def Classiclink(self, Classiclink):
        self._Classiclink = Classiclink

    @property
    def Dcg(self):
        return self._Dcg

    @Dcg.setter
    def Dcg(self, Dcg):
        self._Dcg = Dcg

    @property
    def Pcx(self):
        return self._Pcx

    @Pcx.setter
    def Pcx(self, Pcx):
        self._Pcx = Pcx

    @property
    def Ip(self):
        return self._Ip

    @Ip.setter
    def Ip(self, Ip):
        self._Ip = Ip

    @property
    def Nat(self):
        return self._Nat

    @Nat.setter
    def Nat(self, Nat):
        self._Nat = Nat

    @property
    def Vpngw(self):
        return self._Vpngw

    @Vpngw.setter
    def Vpngw(self, Vpngw):
        self._Vpngw = Vpngw

    @property
    def FlowLog(self):
        return self._FlowLog

    @FlowLog.setter
    def FlowLog(self, FlowLog):
        self._FlowLog = FlowLog

    @property
    def NetworkDetect(self):
        return self._NetworkDetect

    @NetworkDetect.setter
    def NetworkDetect(self, NetworkDetect):
        self._NetworkDetect = NetworkDetect

    @property
    def NetworkACL(self):
        return self._NetworkACL

    @NetworkACL.setter
    def NetworkACL(self, NetworkACL):
        self._NetworkACL = NetworkACL

    @property
    def CVM(self):
        return self._CVM

    @CVM.setter
    def CVM(self, CVM):
        self._CVM = CVM

    @property
    def LB(self):
        return self._LB

    @LB.setter
    def LB(self, LB):
        self._LB = LB

    @property
    def CDB(self):
        return self._CDB

    @CDB.setter
    def CDB(self, CDB):
        self._CDB = CDB

    @property
    def Cmem(self):
        return self._Cmem

    @Cmem.setter
    def Cmem(self, Cmem):
        self._Cmem = Cmem

    @property
    def CTSDB(self):
        return self._CTSDB

    @CTSDB.setter
    def CTSDB(self, CTSDB):
        self._CTSDB = CTSDB

    @property
    def MariaDB(self):
        return self._MariaDB

    @MariaDB.setter
    def MariaDB(self, MariaDB):
        self._MariaDB = MariaDB

    @property
    def SQLServer(self):
        return self._SQLServer

    @SQLServer.setter
    def SQLServer(self, SQLServer):
        self._SQLServer = SQLServer

    @property
    def Postgres(self):
        return self._Postgres

    @Postgres.setter
    def Postgres(self, Postgres):
        self._Postgres = Postgres

    @property
    def NAS(self):
        return self._NAS

    @NAS.setter
    def NAS(self, NAS):
        self._NAS = NAS

    @property
    def Greenplumn(self):
        return self._Greenplumn

    @Greenplumn.setter
    def Greenplumn(self, Greenplumn):
        self._Greenplumn = Greenplumn

    @property
    def Ckafka(self):
        return self._Ckafka

    @Ckafka.setter
    def Ckafka(self, Ckafka):
        self._Ckafka = Ckafka

    @property
    def Grocery(self):
        return self._Grocery

    @Grocery.setter
    def Grocery(self, Grocery):
        self._Grocery = Grocery

    @property
    def HSM(self):
        return self._HSM

    @HSM.setter
    def HSM(self, HSM):
        self._HSM = HSM

    @property
    def Tcaplus(self):
        return self._Tcaplus

    @Tcaplus.setter
    def Tcaplus(self, Tcaplus):
        self._Tcaplus = Tcaplus

    @property
    def Cnas(self):
        return self._Cnas

    @Cnas.setter
    def Cnas(self, Cnas):
        self._Cnas = Cnas

    @property
    def TiDB(self):
        return self._TiDB

    @TiDB.setter
    def TiDB(self, TiDB):
        self._TiDB = TiDB

    @property
    def Emr(self):
        return self._Emr

    @Emr.setter
    def Emr(self, Emr):
        self._Emr = Emr

    @property
    def SEAL(self):
        return self._SEAL

    @SEAL.setter
    def SEAL(self, SEAL):
        self._SEAL = SEAL

    @property
    def CFS(self):
        return self._CFS

    @CFS.setter
    def CFS(self, CFS):
        self._CFS = CFS

    @property
    def Oracle(self):
        return self._Oracle

    @Oracle.setter
    def Oracle(self, Oracle):
        self._Oracle = Oracle

    @property
    def ElasticSearch(self):
        return self._ElasticSearch

    @ElasticSearch.setter
    def ElasticSearch(self, ElasticSearch):
        self._ElasticSearch = ElasticSearch

    @property
    def TBaaS(self):
        return self._TBaaS

    @TBaaS.setter
    def TBaaS(self, TBaaS):
        self._TBaaS = TBaaS

    @property
    def Itop(self):
        return self._Itop

    @Itop.setter
    def Itop(self, Itop):
        self._Itop = Itop

    @property
    def DBAudit(self):
        return self._DBAudit

    @DBAudit.setter
    def DBAudit(self, DBAudit):
        self._DBAudit = DBAudit

    @property
    def CynosDBPostgres(self):
        return self._CynosDBPostgres

    @CynosDBPostgres.setter
    def CynosDBPostgres(self, CynosDBPostgres):
        self._CynosDBPostgres = CynosDBPostgres

    @property
    def Redis(self):
        return self._Redis

    @Redis.setter
    def Redis(self, Redis):
        self._Redis = Redis

    @property
    def MongoDB(self):
        return self._MongoDB

    @MongoDB.setter
    def MongoDB(self, MongoDB):
        self._MongoDB = MongoDB

    @property
    def DCDB(self):
        return self._DCDB

    @DCDB.setter
    def DCDB(self, DCDB):
        self._DCDB = DCDB

    @property
    def CynosDBMySQL(self):
        return self._CynosDBMySQL

    @CynosDBMySQL.setter
    def CynosDBMySQL(self, CynosDBMySQL):
        self._CynosDBMySQL = CynosDBMySQL

    @property
    def Subnet(self):
        return self._Subnet

    @Subnet.setter
    def Subnet(self, Subnet):
        self._Subnet = Subnet

    @property
    def RouteTable(self):
        return self._RouteTable

    @RouteTable.setter
    def RouteTable(self, RouteTable):
        self._RouteTable = RouteTable


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._Classiclink = params.get("Classiclink")
        self._Dcg = params.get("Dcg")
        self._Pcx = params.get("Pcx")
        self._Ip = params.get("Ip")
        self._Nat = params.get("Nat")
        self._Vpngw = params.get("Vpngw")
        self._FlowLog = params.get("FlowLog")
        self._NetworkDetect = params.get("NetworkDetect")
        self._NetworkACL = params.get("NetworkACL")
        self._CVM = params.get("CVM")
        self._LB = params.get("LB")
        self._CDB = params.get("CDB")
        self._Cmem = params.get("Cmem")
        self._CTSDB = params.get("CTSDB")
        self._MariaDB = params.get("MariaDB")
        self._SQLServer = params.get("SQLServer")
        self._Postgres = params.get("Postgres")
        self._NAS = params.get("NAS")
        self._Greenplumn = params.get("Greenplumn")
        self._Ckafka = params.get("Ckafka")
        self._Grocery = params.get("Grocery")
        self._HSM = params.get("HSM")
        self._Tcaplus = params.get("Tcaplus")
        self._Cnas = params.get("Cnas")
        self._TiDB = params.get("TiDB")
        self._Emr = params.get("Emr")
        self._SEAL = params.get("SEAL")
        self._CFS = params.get("CFS")
        self._Oracle = params.get("Oracle")
        self._ElasticSearch = params.get("ElasticSearch")
        self._TBaaS = params.get("TBaaS")
        self._Itop = params.get("Itop")
        self._DBAudit = params.get("DBAudit")
        self._CynosDBPostgres = params.get("CynosDBPostgres")
        self._Redis = params.get("Redis")
        self._MongoDB = params.get("MongoDB")
        self._DCDB = params.get("DCDB")
        self._CynosDBMySQL = params.get("CynosDBMySQL")
        self._Subnet = params.get("Subnet")
        self._RouteTable = params.get("RouteTable")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ResourceStatistics(AbstractModel):
    """资源统计信息

    """

    def __init__(self):
        r"""
        :param _VpcId: Vpc实例ID，例如：vpc-f1xjkw1b。
        :type VpcId: str
        :param _SubnetId: 子网实例ID，例如：subnet-bthucmmy。
        :type SubnetId: str
        :param _Ip: 当前已使用的IP总数。
        :type Ip: int
        :param _ResourceStatisticsItemSet: 资源统计信息。
        :type ResourceStatisticsItemSet: list of ResourceStatisticsItem
        """
        self._VpcId = None
        self._SubnetId = None
        self._Ip = None
        self._ResourceStatisticsItemSet = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def Ip(self):
        return self._Ip

    @Ip.setter
    def Ip(self, Ip):
        self._Ip = Ip

    @property
    def ResourceStatisticsItemSet(self):
        return self._ResourceStatisticsItemSet

    @ResourceStatisticsItemSet.setter
    def ResourceStatisticsItemSet(self, ResourceStatisticsItemSet):
        self._ResourceStatisticsItemSet = ResourceStatisticsItemSet


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._Ip = params.get("Ip")
        if params.get("ResourceStatisticsItemSet") is not None:
            self._ResourceStatisticsItemSet = []
            for item in params.get("ResourceStatisticsItemSet"):
                obj = ResourceStatisticsItem()
                obj._deserialize(item)
                self._ResourceStatisticsItemSet.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ResourceStatisticsItem(AbstractModel):
    """资源统计项。

    """

    def __init__(self):
        r"""
        :param _ResourceType: 资源类型。比如，CVM，ENI等。
        :type ResourceType: str
        :param _ResourceName: 资源名称。
        :type ResourceName: str
        :param _ResourceCount: 资源个数。
        :type ResourceCount: int
        """
        self._ResourceType = None
        self._ResourceName = None
        self._ResourceCount = None

    @property
    def ResourceType(self):
        return self._ResourceType

    @ResourceType.setter
    def ResourceType(self, ResourceType):
        self._ResourceType = ResourceType

    @property
    def ResourceName(self):
        return self._ResourceName

    @ResourceName.setter
    def ResourceName(self, ResourceName):
        self._ResourceName = ResourceName

    @property
    def ResourceCount(self):
        return self._ResourceCount

    @ResourceCount.setter
    def ResourceCount(self, ResourceCount):
        self._ResourceCount = ResourceCount


    def _deserialize(self, params):
        self._ResourceType = params.get("ResourceType")
        self._ResourceName = params.get("ResourceName")
        self._ResourceCount = params.get("ResourceCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ResumeSnapshotInstanceRequest(AbstractModel):
    """ResumeSnapshotInstance请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SnapshotPolicyId: 快照策略Id。
        :type SnapshotPolicyId: str
        :param _SnapshotFileId: 快照文件Id。
        :type SnapshotFileId: str
        :param _InstanceId: 实例Id。
        :type InstanceId: str
        """
        self._SnapshotPolicyId = None
        self._SnapshotFileId = None
        self._InstanceId = None

    @property
    def SnapshotPolicyId(self):
        return self._SnapshotPolicyId

    @SnapshotPolicyId.setter
    def SnapshotPolicyId(self, SnapshotPolicyId):
        self._SnapshotPolicyId = SnapshotPolicyId

    @property
    def SnapshotFileId(self):
        return self._SnapshotFileId

    @SnapshotFileId.setter
    def SnapshotFileId(self, SnapshotFileId):
        self._SnapshotFileId = SnapshotFileId

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId


    def _deserialize(self, params):
        self._SnapshotPolicyId = params.get("SnapshotPolicyId")
        self._SnapshotFileId = params.get("SnapshotFileId")
        self._InstanceId = params.get("InstanceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ResumeSnapshotInstanceResponse(AbstractModel):
    """ResumeSnapshotInstance返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ReturnNormalAddressesRequest(AbstractModel):
    """ReturnNormalAddresses请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AddressIps: 普通公网IP 的 IP 地址,示例：101.35.139.183
        :type AddressIps: list of str
        """
        self._AddressIps = None

    @property
    def AddressIps(self):
        return self._AddressIps

    @AddressIps.setter
    def AddressIps(self, AddressIps):
        self._AddressIps = AddressIps


    def _deserialize(self, params):
        self._AddressIps = params.get("AddressIps")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ReturnNormalAddressesResponse(AbstractModel):
    """ReturnNormalAddresses返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class Route(AbstractModel):
    """路由策略对象

    """

    def __init__(self):
        r"""
        :param _DestinationCidrBlock: 目的网段，取值不能在私有网络网段内，例如：112.20.51.0/24。
        :type DestinationCidrBlock: str
        :param _GatewayType: 下一跳类型，目前我们支持的类型有：
CVM：公网网关类型的云服务器；
VPN：VPN网关；
DIRECTCONNECT：专线网关；
PEERCONNECTION：对等连接；
HAVIP：高可用虚拟IP；
NAT：NAT网关; 
NORMAL_CVM：普通云服务器；
EIP：云服务器的公网IP；
LOCAL_GATEWAY：本地网关。
        :type GatewayType: str
        :param _GatewayId: 下一跳地址，这里只需要指定不同下一跳类型的网关ID，系统会自动匹配到下一跳地址。
特殊说明：
GatewayType为NORMAL_CVM时，GatewayId填写实例的内网IP。
GatewayType为EIP时，GatewayId填写0。
        :type GatewayId: str
        :param _RouteId: 路由策略ID。IPv4路由策略ID是有意义的值，IPv6路由策略是无意义的值0。后续建议完全使用字符串唯一ID `RouteItemId`操作路由策略。
该字段在删除时必填，其他字段无需填写。
        :type RouteId: int
        :param _RouteDescription: 路由策略描述。
        :type RouteDescription: str
        :param _Enabled: 是否启用
        :type Enabled: bool
        :param _RouteType: 路由类型，目前我们支持的类型有：
USER：用户路由；
NETD：网络探测路由，创建网络探测实例时，系统默认下发，不可编辑与删除；
CCN：云联网路由，系统默认下发，不可编辑与删除。
用户只能添加和操作 USER 类型的路由。
        :type RouteType: str
        :param _RouteTableId: 路由表实例ID，例如：rtb-azd4dt1c。
        :type RouteTableId: str
        :param _DestinationIpv6CidrBlock: 目的IPv6网段，取值不能在私有网络网段内，例如：2402:4e00:1000:810b::/64。
注意：此字段可能返回 null，表示取不到有效值。
        :type DestinationIpv6CidrBlock: str
        :param _RouteItemId: 路由唯一策略ID。
        :type RouteItemId: str
        :param _PublishedToVbc: 路由策略是否发布到云联网。
注意：此字段可能返回 null，表示取不到有效值。
        :type PublishedToVbc: bool
        :param _CreatedTime: 路由策略创建时间
        :type CreatedTime: str
        """
        self._DestinationCidrBlock = None
        self._GatewayType = None
        self._GatewayId = None
        self._RouteId = None
        self._RouteDescription = None
        self._Enabled = None
        self._RouteType = None
        self._RouteTableId = None
        self._DestinationIpv6CidrBlock = None
        self._RouteItemId = None
        self._PublishedToVbc = None
        self._CreatedTime = None

    @property
    def DestinationCidrBlock(self):
        return self._DestinationCidrBlock

    @DestinationCidrBlock.setter
    def DestinationCidrBlock(self, DestinationCidrBlock):
        self._DestinationCidrBlock = DestinationCidrBlock

    @property
    def GatewayType(self):
        return self._GatewayType

    @GatewayType.setter
    def GatewayType(self, GatewayType):
        self._GatewayType = GatewayType

    @property
    def GatewayId(self):
        return self._GatewayId

    @GatewayId.setter
    def GatewayId(self, GatewayId):
        self._GatewayId = GatewayId

    @property
    def RouteId(self):
        return self._RouteId

    @RouteId.setter
    def RouteId(self, RouteId):
        self._RouteId = RouteId

    @property
    def RouteDescription(self):
        return self._RouteDescription

    @RouteDescription.setter
    def RouteDescription(self, RouteDescription):
        self._RouteDescription = RouteDescription

    @property
    def Enabled(self):
        return self._Enabled

    @Enabled.setter
    def Enabled(self, Enabled):
        self._Enabled = Enabled

    @property
    def RouteType(self):
        return self._RouteType

    @RouteType.setter
    def RouteType(self, RouteType):
        self._RouteType = RouteType

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId

    @property
    def DestinationIpv6CidrBlock(self):
        return self._DestinationIpv6CidrBlock

    @DestinationIpv6CidrBlock.setter
    def DestinationIpv6CidrBlock(self, DestinationIpv6CidrBlock):
        self._DestinationIpv6CidrBlock = DestinationIpv6CidrBlock

    @property
    def RouteItemId(self):
        return self._RouteItemId

    @RouteItemId.setter
    def RouteItemId(self, RouteItemId):
        self._RouteItemId = RouteItemId

    @property
    def PublishedToVbc(self):
        return self._PublishedToVbc

    @PublishedToVbc.setter
    def PublishedToVbc(self, PublishedToVbc):
        self._PublishedToVbc = PublishedToVbc

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime


    def _deserialize(self, params):
        self._DestinationCidrBlock = params.get("DestinationCidrBlock")
        self._GatewayType = params.get("GatewayType")
        self._GatewayId = params.get("GatewayId")
        self._RouteId = params.get("RouteId")
        self._RouteDescription = params.get("RouteDescription")
        self._Enabled = params.get("Enabled")
        self._RouteType = params.get("RouteType")
        self._RouteTableId = params.get("RouteTableId")
        self._DestinationIpv6CidrBlock = params.get("DestinationIpv6CidrBlock")
        self._RouteItemId = params.get("RouteItemId")
        self._PublishedToVbc = params.get("PublishedToVbc")
        self._CreatedTime = params.get("CreatedTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RouteConflict(AbstractModel):
    """路由冲突对象

    """

    def __init__(self):
        r"""
        :param _RouteTableId: 路由表实例ID，例如：rtb-azd4dt1c。
        :type RouteTableId: str
        :param _DestinationCidrBlock: 要检查的与之冲突的目的端
        :type DestinationCidrBlock: str
        :param _ConflictSet: 冲突的路由策略列表
        :type ConflictSet: list of Route
        """
        self._RouteTableId = None
        self._DestinationCidrBlock = None
        self._ConflictSet = None

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId

    @property
    def DestinationCidrBlock(self):
        return self._DestinationCidrBlock

    @DestinationCidrBlock.setter
    def DestinationCidrBlock(self, DestinationCidrBlock):
        self._DestinationCidrBlock = DestinationCidrBlock

    @property
    def ConflictSet(self):
        return self._ConflictSet

    @ConflictSet.setter
    def ConflictSet(self, ConflictSet):
        self._ConflictSet = ConflictSet


    def _deserialize(self, params):
        self._RouteTableId = params.get("RouteTableId")
        self._DestinationCidrBlock = params.get("DestinationCidrBlock")
        if params.get("ConflictSet") is not None:
            self._ConflictSet = []
            for item in params.get("ConflictSet"):
                obj = Route()
                obj._deserialize(item)
                self._ConflictSet.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RouteTable(AbstractModel):
    """路由表对象

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。
        :type VpcId: str
        :param _RouteTableId: 路由表实例ID，例如：rtb-azd4dt1c。
        :type RouteTableId: str
        :param _RouteTableName: 路由表名称。
        :type RouteTableName: str
        :param _AssociationSet: 路由表关联关系。
        :type AssociationSet: list of RouteTableAssociation
        :param _RouteSet: IPv4路由策略集合。
        :type RouteSet: list of Route
        :param _Main: 是否默认路由表。
        :type Main: bool
        :param _CreatedTime: 创建时间。
        :type CreatedTime: str
        :param _TagSet: 标签键值对。
        :type TagSet: list of Tag
        :param _LocalCidrForCcn: local路由是否发布云联网。
注意：此字段可能返回 null，表示取不到有效值。
        :type LocalCidrForCcn: list of CidrForCcn
        """
        self._VpcId = None
        self._RouteTableId = None
        self._RouteTableName = None
        self._AssociationSet = None
        self._RouteSet = None
        self._Main = None
        self._CreatedTime = None
        self._TagSet = None
        self._LocalCidrForCcn = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId

    @property
    def RouteTableName(self):
        return self._RouteTableName

    @RouteTableName.setter
    def RouteTableName(self, RouteTableName):
        self._RouteTableName = RouteTableName

    @property
    def AssociationSet(self):
        return self._AssociationSet

    @AssociationSet.setter
    def AssociationSet(self, AssociationSet):
        self._AssociationSet = AssociationSet

    @property
    def RouteSet(self):
        return self._RouteSet

    @RouteSet.setter
    def RouteSet(self, RouteSet):
        self._RouteSet = RouteSet

    @property
    def Main(self):
        return self._Main

    @Main.setter
    def Main(self, Main):
        self._Main = Main

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def TagSet(self):
        return self._TagSet

    @TagSet.setter
    def TagSet(self, TagSet):
        self._TagSet = TagSet

    @property
    def LocalCidrForCcn(self):
        return self._LocalCidrForCcn

    @LocalCidrForCcn.setter
    def LocalCidrForCcn(self, LocalCidrForCcn):
        self._LocalCidrForCcn = LocalCidrForCcn


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._RouteTableId = params.get("RouteTableId")
        self._RouteTableName = params.get("RouteTableName")
        if params.get("AssociationSet") is not None:
            self._AssociationSet = []
            for item in params.get("AssociationSet"):
                obj = RouteTableAssociation()
                obj._deserialize(item)
                self._AssociationSet.append(obj)
        if params.get("RouteSet") is not None:
            self._RouteSet = []
            for item in params.get("RouteSet"):
                obj = Route()
                obj._deserialize(item)
                self._RouteSet.append(obj)
        self._Main = params.get("Main")
        self._CreatedTime = params.get("CreatedTime")
        if params.get("TagSet") is not None:
            self._TagSet = []
            for item in params.get("TagSet"):
                obj = Tag()
                obj._deserialize(item)
                self._TagSet.append(obj)
        if params.get("LocalCidrForCcn") is not None:
            self._LocalCidrForCcn = []
            for item in params.get("LocalCidrForCcn"):
                obj = CidrForCcn()
                obj._deserialize(item)
                self._LocalCidrForCcn.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RouteTableAssociation(AbstractModel):
    """路由表关联关系

    """

    def __init__(self):
        r"""
        :param _SubnetId: 子网实例ID。
        :type SubnetId: str
        :param _RouteTableId: 路由表实例ID。
        :type RouteTableId: str
        """
        self._SubnetId = None
        self._RouteTableId = None

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId


    def _deserialize(self, params):
        self._SubnetId = params.get("SubnetId")
        self._RouteTableId = params.get("RouteTableId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SecurityGroup(AbstractModel):
    """安全组对象

    """

    def __init__(self):
        r"""
        :param _SecurityGroupId: 安全组实例ID，例如：sg-ohuuioma。
        :type SecurityGroupId: str
        :param _SecurityGroupName: 安全组名称，可任意命名，但不得超过60个字符。
        :type SecurityGroupName: str
        :param _SecurityGroupDesc: 安全组备注，最多100个字符。
        :type SecurityGroupDesc: str
        :param _ProjectId: 项目id，默认0。可在qcloud控制台项目管理页面查询到。
        :type ProjectId: str
        :param _IsDefault: 是否是默认安全组，默认安全组不支持删除。
        :type IsDefault: bool
        :param _CreatedTime: 安全组创建时间。
        :type CreatedTime: str
        :param _TagSet: 标签键值对。
        :type TagSet: list of Tag
        :param _UpdateTime: 安全组更新时间。
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        """
        self._SecurityGroupId = None
        self._SecurityGroupName = None
        self._SecurityGroupDesc = None
        self._ProjectId = None
        self._IsDefault = None
        self._CreatedTime = None
        self._TagSet = None
        self._UpdateTime = None

    @property
    def SecurityGroupId(self):
        return self._SecurityGroupId

    @SecurityGroupId.setter
    def SecurityGroupId(self, SecurityGroupId):
        self._SecurityGroupId = SecurityGroupId

    @property
    def SecurityGroupName(self):
        return self._SecurityGroupName

    @SecurityGroupName.setter
    def SecurityGroupName(self, SecurityGroupName):
        self._SecurityGroupName = SecurityGroupName

    @property
    def SecurityGroupDesc(self):
        return self._SecurityGroupDesc

    @SecurityGroupDesc.setter
    def SecurityGroupDesc(self, SecurityGroupDesc):
        self._SecurityGroupDesc = SecurityGroupDesc

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def IsDefault(self):
        return self._IsDefault

    @IsDefault.setter
    def IsDefault(self, IsDefault):
        self._IsDefault = IsDefault

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def TagSet(self):
        return self._TagSet

    @TagSet.setter
    def TagSet(self, TagSet):
        self._TagSet = TagSet

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime


    def _deserialize(self, params):
        self._SecurityGroupId = params.get("SecurityGroupId")
        self._SecurityGroupName = params.get("SecurityGroupName")
        self._SecurityGroupDesc = params.get("SecurityGroupDesc")
        self._ProjectId = params.get("ProjectId")
        self._IsDefault = params.get("IsDefault")
        self._CreatedTime = params.get("CreatedTime")
        if params.get("TagSet") is not None:
            self._TagSet = []
            for item in params.get("TagSet"):
                obj = Tag()
                obj._deserialize(item)
                self._TagSet.append(obj)
        self._UpdateTime = params.get("UpdateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SecurityGroupAssociationStatistics(AbstractModel):
    """安全组关联的实例统计

    """

    def __init__(self):
        r"""
        :param _SecurityGroupId: 安全组实例ID。
        :type SecurityGroupId: str
        :param _CVM: 云服务器实例数。
        :type CVM: int
        :param _CDB: MySQL数据库实例数。
        :type CDB: int
        :param _ENI: 弹性网卡实例数。
        :type ENI: int
        :param _SG: 被安全组引用数。
        :type SG: int
        :param _CLB: 负载均衡实例数。
        :type CLB: int
        :param _InstanceStatistics: 全量实例的绑定统计。
        :type InstanceStatistics: list of InstanceStatistic
        :param _TotalCount: 所有资源的总计数（不包含被安全组引用数）。
        :type TotalCount: int
        """
        self._SecurityGroupId = None
        self._CVM = None
        self._CDB = None
        self._ENI = None
        self._SG = None
        self._CLB = None
        self._InstanceStatistics = None
        self._TotalCount = None

    @property
    def SecurityGroupId(self):
        return self._SecurityGroupId

    @SecurityGroupId.setter
    def SecurityGroupId(self, SecurityGroupId):
        self._SecurityGroupId = SecurityGroupId

    @property
    def CVM(self):
        return self._CVM

    @CVM.setter
    def CVM(self, CVM):
        self._CVM = CVM

    @property
    def CDB(self):
        return self._CDB

    @CDB.setter
    def CDB(self, CDB):
        self._CDB = CDB

    @property
    def ENI(self):
        return self._ENI

    @ENI.setter
    def ENI(self, ENI):
        self._ENI = ENI

    @property
    def SG(self):
        return self._SG

    @SG.setter
    def SG(self, SG):
        self._SG = SG

    @property
    def CLB(self):
        return self._CLB

    @CLB.setter
    def CLB(self, CLB):
        self._CLB = CLB

    @property
    def InstanceStatistics(self):
        return self._InstanceStatistics

    @InstanceStatistics.setter
    def InstanceStatistics(self, InstanceStatistics):
        self._InstanceStatistics = InstanceStatistics

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount


    def _deserialize(self, params):
        self._SecurityGroupId = params.get("SecurityGroupId")
        self._CVM = params.get("CVM")
        self._CDB = params.get("CDB")
        self._ENI = params.get("ENI")
        self._SG = params.get("SG")
        self._CLB = params.get("CLB")
        if params.get("InstanceStatistics") is not None:
            self._InstanceStatistics = []
            for item in params.get("InstanceStatistics"):
                obj = InstanceStatistic()
                obj._deserialize(item)
                self._InstanceStatistics.append(obj)
        self._TotalCount = params.get("TotalCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SecurityGroupLimitSet(AbstractModel):
    """用户安全组配额限制。

    """

    def __init__(self):
        r"""
        :param _SecurityGroupLimit: 每个项目每个地域可创建安全组数
        :type SecurityGroupLimit: int
        :param _SecurityGroupPolicyLimit: 安全组下的最大规则数
        :type SecurityGroupPolicyLimit: int
        :param _ReferedSecurityGroupLimit: 安全组下嵌套安全组规则数
        :type ReferedSecurityGroupLimit: int
        :param _SecurityGroupInstanceLimit: 单安全组关联实例数
        :type SecurityGroupInstanceLimit: int
        :param _InstanceSecurityGroupLimit: 实例关联安全组数
        :type InstanceSecurityGroupLimit: int
        :param _SecurityGroupExtendedPolicyLimit: 安全组展开后的规则数限制
        :type SecurityGroupExtendedPolicyLimit: int
        :param _SecurityGroupReferedCvmAndEniLimit: 被引用的安全组关联CVM、ENI的实例配额
        :type SecurityGroupReferedCvmAndEniLimit: int
        :param _SecurityGroupReferedSvcLimit: 被引用的安全组关联数据库、LB等服务实例配额
        :type SecurityGroupReferedSvcLimit: int
        """
        self._SecurityGroupLimit = None
        self._SecurityGroupPolicyLimit = None
        self._ReferedSecurityGroupLimit = None
        self._SecurityGroupInstanceLimit = None
        self._InstanceSecurityGroupLimit = None
        self._SecurityGroupExtendedPolicyLimit = None
        self._SecurityGroupReferedCvmAndEniLimit = None
        self._SecurityGroupReferedSvcLimit = None

    @property
    def SecurityGroupLimit(self):
        return self._SecurityGroupLimit

    @SecurityGroupLimit.setter
    def SecurityGroupLimit(self, SecurityGroupLimit):
        self._SecurityGroupLimit = SecurityGroupLimit

    @property
    def SecurityGroupPolicyLimit(self):
        return self._SecurityGroupPolicyLimit

    @SecurityGroupPolicyLimit.setter
    def SecurityGroupPolicyLimit(self, SecurityGroupPolicyLimit):
        self._SecurityGroupPolicyLimit = SecurityGroupPolicyLimit

    @property
    def ReferedSecurityGroupLimit(self):
        return self._ReferedSecurityGroupLimit

    @ReferedSecurityGroupLimit.setter
    def ReferedSecurityGroupLimit(self, ReferedSecurityGroupLimit):
        self._ReferedSecurityGroupLimit = ReferedSecurityGroupLimit

    @property
    def SecurityGroupInstanceLimit(self):
        return self._SecurityGroupInstanceLimit

    @SecurityGroupInstanceLimit.setter
    def SecurityGroupInstanceLimit(self, SecurityGroupInstanceLimit):
        self._SecurityGroupInstanceLimit = SecurityGroupInstanceLimit

    @property
    def InstanceSecurityGroupLimit(self):
        return self._InstanceSecurityGroupLimit

    @InstanceSecurityGroupLimit.setter
    def InstanceSecurityGroupLimit(self, InstanceSecurityGroupLimit):
        self._InstanceSecurityGroupLimit = InstanceSecurityGroupLimit

    @property
    def SecurityGroupExtendedPolicyLimit(self):
        return self._SecurityGroupExtendedPolicyLimit

    @SecurityGroupExtendedPolicyLimit.setter
    def SecurityGroupExtendedPolicyLimit(self, SecurityGroupExtendedPolicyLimit):
        self._SecurityGroupExtendedPolicyLimit = SecurityGroupExtendedPolicyLimit

    @property
    def SecurityGroupReferedCvmAndEniLimit(self):
        return self._SecurityGroupReferedCvmAndEniLimit

    @SecurityGroupReferedCvmAndEniLimit.setter
    def SecurityGroupReferedCvmAndEniLimit(self, SecurityGroupReferedCvmAndEniLimit):
        self._SecurityGroupReferedCvmAndEniLimit = SecurityGroupReferedCvmAndEniLimit

    @property
    def SecurityGroupReferedSvcLimit(self):
        return self._SecurityGroupReferedSvcLimit

    @SecurityGroupReferedSvcLimit.setter
    def SecurityGroupReferedSvcLimit(self, SecurityGroupReferedSvcLimit):
        self._SecurityGroupReferedSvcLimit = SecurityGroupReferedSvcLimit


    def _deserialize(self, params):
        self._SecurityGroupLimit = params.get("SecurityGroupLimit")
        self._SecurityGroupPolicyLimit = params.get("SecurityGroupPolicyLimit")
        self._ReferedSecurityGroupLimit = params.get("ReferedSecurityGroupLimit")
        self._SecurityGroupInstanceLimit = params.get("SecurityGroupInstanceLimit")
        self._InstanceSecurityGroupLimit = params.get("InstanceSecurityGroupLimit")
        self._SecurityGroupExtendedPolicyLimit = params.get("SecurityGroupExtendedPolicyLimit")
        self._SecurityGroupReferedCvmAndEniLimit = params.get("SecurityGroupReferedCvmAndEniLimit")
        self._SecurityGroupReferedSvcLimit = params.get("SecurityGroupReferedSvcLimit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SecurityGroupPolicy(AbstractModel):
    """安全组规则对象

    """

    def __init__(self):
        r"""
        :param _PolicyIndex: 安全组规则索引号，值会随着安全组规则的变更动态变化。使用PolicyIndex时，请先调用`DescribeSecurityGroupPolicies`获取到规则的PolicyIndex，并且结合返回值中的Version一起使用处理规则。
        :type PolicyIndex: int
        :param _Protocol: 协议, 取值: TCP,UDP,ICMP,ICMPv6,ALL。
        :type Protocol: str
        :param _Port: 端口(all, 离散port,  range)。
说明：如果Protocol设置为ALL，则Port也需要设置为all。
        :type Port: str
        :param _ServiceTemplate: 协议端口ID或者协议端口组ID。ServiceTemplate和Protocol+Port互斥。
        :type ServiceTemplate: :class:`tencentcloud.vpc.v20170312.models.ServiceTemplateSpecification`
        :param _CidrBlock: 网段或IP(互斥)，特殊说明：0.0.0.0/n 都会映射为0.0.0.0/0。
        :type CidrBlock: str
        :param _Ipv6CidrBlock: 网段或IPv6(互斥)。
        :type Ipv6CidrBlock: str
        :param _SecurityGroupId: 安全组实例ID，例如：sg-ohuuioma。
        :type SecurityGroupId: str
        :param _AddressTemplate: IP地址ID或者IP地址组ID。
        :type AddressTemplate: :class:`tencentcloud.vpc.v20170312.models.AddressTemplateSpecification`
        :param _Action: ACCEPT 或 DROP。
        :type Action: str
        :param _PolicyDescription: 安全组规则描述。
        :type PolicyDescription: str
        :param _ModifyTime: 安全组最近修改时间。
        :type ModifyTime: str
        """
        self._PolicyIndex = None
        self._Protocol = None
        self._Port = None
        self._ServiceTemplate = None
        self._CidrBlock = None
        self._Ipv6CidrBlock = None
        self._SecurityGroupId = None
        self._AddressTemplate = None
        self._Action = None
        self._PolicyDescription = None
        self._ModifyTime = None

    @property
    def PolicyIndex(self):
        return self._PolicyIndex

    @PolicyIndex.setter
    def PolicyIndex(self, PolicyIndex):
        self._PolicyIndex = PolicyIndex

    @property
    def Protocol(self):
        return self._Protocol

    @Protocol.setter
    def Protocol(self, Protocol):
        self._Protocol = Protocol

    @property
    def Port(self):
        return self._Port

    @Port.setter
    def Port(self, Port):
        self._Port = Port

    @property
    def ServiceTemplate(self):
        return self._ServiceTemplate

    @ServiceTemplate.setter
    def ServiceTemplate(self, ServiceTemplate):
        self._ServiceTemplate = ServiceTemplate

    @property
    def CidrBlock(self):
        return self._CidrBlock

    @CidrBlock.setter
    def CidrBlock(self, CidrBlock):
        self._CidrBlock = CidrBlock

    @property
    def Ipv6CidrBlock(self):
        return self._Ipv6CidrBlock

    @Ipv6CidrBlock.setter
    def Ipv6CidrBlock(self, Ipv6CidrBlock):
        self._Ipv6CidrBlock = Ipv6CidrBlock

    @property
    def SecurityGroupId(self):
        return self._SecurityGroupId

    @SecurityGroupId.setter
    def SecurityGroupId(self, SecurityGroupId):
        self._SecurityGroupId = SecurityGroupId

    @property
    def AddressTemplate(self):
        return self._AddressTemplate

    @AddressTemplate.setter
    def AddressTemplate(self, AddressTemplate):
        self._AddressTemplate = AddressTemplate

    @property
    def Action(self):
        return self._Action

    @Action.setter
    def Action(self, Action):
        self._Action = Action

    @property
    def PolicyDescription(self):
        return self._PolicyDescription

    @PolicyDescription.setter
    def PolicyDescription(self, PolicyDescription):
        self._PolicyDescription = PolicyDescription

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime


    def _deserialize(self, params):
        self._PolicyIndex = params.get("PolicyIndex")
        self._Protocol = params.get("Protocol")
        self._Port = params.get("Port")
        if params.get("ServiceTemplate") is not None:
            self._ServiceTemplate = ServiceTemplateSpecification()
            self._ServiceTemplate._deserialize(params.get("ServiceTemplate"))
        self._CidrBlock = params.get("CidrBlock")
        self._Ipv6CidrBlock = params.get("Ipv6CidrBlock")
        self._SecurityGroupId = params.get("SecurityGroupId")
        if params.get("AddressTemplate") is not None:
            self._AddressTemplate = AddressTemplateSpecification()
            self._AddressTemplate._deserialize(params.get("AddressTemplate"))
        self._Action = params.get("Action")
        self._PolicyDescription = params.get("PolicyDescription")
        self._ModifyTime = params.get("ModifyTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SecurityGroupPolicySet(AbstractModel):
    """安全组规则集合

    """

    def __init__(self):
        r"""
        :param _Version: 安全组规则当前版本。用户每次更新安全规则版本会自动加1，防止更新的路由规则已过期，不填不考虑冲突。
注意：此字段可能返回 null，表示取不到有效值。
        :type Version: str
        :param _Egress: 出站规则。
注意：此字段可能返回 null，表示取不到有效值。
        :type Egress: list of SecurityGroupPolicy
        :param _Ingress: 入站规则。
注意：此字段可能返回 null，表示取不到有效值。
        :type Ingress: list of SecurityGroupPolicy
        """
        self._Version = None
        self._Egress = None
        self._Ingress = None

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def Egress(self):
        return self._Egress

    @Egress.setter
    def Egress(self, Egress):
        self._Egress = Egress

    @property
    def Ingress(self):
        return self._Ingress

    @Ingress.setter
    def Ingress(self, Ingress):
        self._Ingress = Ingress


    def _deserialize(self, params):
        self._Version = params.get("Version")
        if params.get("Egress") is not None:
            self._Egress = []
            for item in params.get("Egress"):
                obj = SecurityGroupPolicy()
                obj._deserialize(item)
                self._Egress.append(obj)
        if params.get("Ingress") is not None:
            self._Ingress = []
            for item in params.get("Ingress"):
                obj = SecurityGroupPolicy()
                obj._deserialize(item)
                self._Ingress.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SecurityPolicyDatabase(AbstractModel):
    """SecurityPolicyDatabase策略

    """

    def __init__(self):
        r"""
        :param _LocalCidrBlock: 本端网段
注意：此字段可能返回 null，表示取不到有效值。
        :type LocalCidrBlock: str
        :param _RemoteCidrBlock: 对端网段
注意：此字段可能返回 null，表示取不到有效值。
        :type RemoteCidrBlock: list of str
        """
        self._LocalCidrBlock = None
        self._RemoteCidrBlock = None

    @property
    def LocalCidrBlock(self):
        return self._LocalCidrBlock

    @LocalCidrBlock.setter
    def LocalCidrBlock(self, LocalCidrBlock):
        self._LocalCidrBlock = LocalCidrBlock

    @property
    def RemoteCidrBlock(self):
        return self._RemoteCidrBlock

    @RemoteCidrBlock.setter
    def RemoteCidrBlock(self, RemoteCidrBlock):
        self._RemoteCidrBlock = RemoteCidrBlock


    def _deserialize(self, params):
        self._LocalCidrBlock = params.get("LocalCidrBlock")
        self._RemoteCidrBlock = params.get("RemoteCidrBlock")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ServiceTemplate(AbstractModel):
    """协议端口模板

    """

    def __init__(self):
        r"""
        :param _ServiceTemplateId: 协议端口实例ID，例如：ppm-f5n1f8da。
        :type ServiceTemplateId: str
        :param _ServiceTemplateName: 模板名称。
        :type ServiceTemplateName: str
        :param _ServiceSet: 协议端口信息。
        :type ServiceSet: list of str
        :param _CreatedTime: 创建时间。
        :type CreatedTime: str
        :param _ServiceExtraSet: 带备注的协议端口信息。
        :type ServiceExtraSet: list of ServicesInfo
        """
        self._ServiceTemplateId = None
        self._ServiceTemplateName = None
        self._ServiceSet = None
        self._CreatedTime = None
        self._ServiceExtraSet = None

    @property
    def ServiceTemplateId(self):
        return self._ServiceTemplateId

    @ServiceTemplateId.setter
    def ServiceTemplateId(self, ServiceTemplateId):
        self._ServiceTemplateId = ServiceTemplateId

    @property
    def ServiceTemplateName(self):
        return self._ServiceTemplateName

    @ServiceTemplateName.setter
    def ServiceTemplateName(self, ServiceTemplateName):
        self._ServiceTemplateName = ServiceTemplateName

    @property
    def ServiceSet(self):
        return self._ServiceSet

    @ServiceSet.setter
    def ServiceSet(self, ServiceSet):
        self._ServiceSet = ServiceSet

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def ServiceExtraSet(self):
        return self._ServiceExtraSet

    @ServiceExtraSet.setter
    def ServiceExtraSet(self, ServiceExtraSet):
        self._ServiceExtraSet = ServiceExtraSet


    def _deserialize(self, params):
        self._ServiceTemplateId = params.get("ServiceTemplateId")
        self._ServiceTemplateName = params.get("ServiceTemplateName")
        self._ServiceSet = params.get("ServiceSet")
        self._CreatedTime = params.get("CreatedTime")
        if params.get("ServiceExtraSet") is not None:
            self._ServiceExtraSet = []
            for item in params.get("ServiceExtraSet"):
                obj = ServicesInfo()
                obj._deserialize(item)
                self._ServiceExtraSet.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ServiceTemplateGroup(AbstractModel):
    """协议端口模板集合

    """

    def __init__(self):
        r"""
        :param _ServiceTemplateGroupId: 协议端口模板集合实例ID，例如：ppmg-2klmrefu。
        :type ServiceTemplateGroupId: str
        :param _ServiceTemplateGroupName: 协议端口模板集合名称。
        :type ServiceTemplateGroupName: str
        :param _ServiceTemplateIdSet: 协议端口模板实例ID。
        :type ServiceTemplateIdSet: list of str
        :param _CreatedTime: 创建时间。
        :type CreatedTime: str
        :param _ServiceTemplateSet: 协议端口模板实例信息。
        :type ServiceTemplateSet: list of ServiceTemplate
        """
        self._ServiceTemplateGroupId = None
        self._ServiceTemplateGroupName = None
        self._ServiceTemplateIdSet = None
        self._CreatedTime = None
        self._ServiceTemplateSet = None

    @property
    def ServiceTemplateGroupId(self):
        return self._ServiceTemplateGroupId

    @ServiceTemplateGroupId.setter
    def ServiceTemplateGroupId(self, ServiceTemplateGroupId):
        self._ServiceTemplateGroupId = ServiceTemplateGroupId

    @property
    def ServiceTemplateGroupName(self):
        return self._ServiceTemplateGroupName

    @ServiceTemplateGroupName.setter
    def ServiceTemplateGroupName(self, ServiceTemplateGroupName):
        self._ServiceTemplateGroupName = ServiceTemplateGroupName

    @property
    def ServiceTemplateIdSet(self):
        return self._ServiceTemplateIdSet

    @ServiceTemplateIdSet.setter
    def ServiceTemplateIdSet(self, ServiceTemplateIdSet):
        self._ServiceTemplateIdSet = ServiceTemplateIdSet

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def ServiceTemplateSet(self):
        return self._ServiceTemplateSet

    @ServiceTemplateSet.setter
    def ServiceTemplateSet(self, ServiceTemplateSet):
        self._ServiceTemplateSet = ServiceTemplateSet


    def _deserialize(self, params):
        self._ServiceTemplateGroupId = params.get("ServiceTemplateGroupId")
        self._ServiceTemplateGroupName = params.get("ServiceTemplateGroupName")
        self._ServiceTemplateIdSet = params.get("ServiceTemplateIdSet")
        self._CreatedTime = params.get("CreatedTime")
        if params.get("ServiceTemplateSet") is not None:
            self._ServiceTemplateSet = []
            for item in params.get("ServiceTemplateSet"):
                obj = ServiceTemplate()
                obj._deserialize(item)
                self._ServiceTemplateSet.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ServiceTemplateSpecification(AbstractModel):
    """协议端口模板

    """

    def __init__(self):
        r"""
        :param _ServiceId: 协议端口ID，例如：ppm-f5n1f8da。
        :type ServiceId: str
        :param _ServiceGroupId: 协议端口组ID，例如：ppmg-f5n1f8da。
        :type ServiceGroupId: str
        """
        self._ServiceId = None
        self._ServiceGroupId = None

    @property
    def ServiceId(self):
        return self._ServiceId

    @ServiceId.setter
    def ServiceId(self, ServiceId):
        self._ServiceId = ServiceId

    @property
    def ServiceGroupId(self):
        return self._ServiceGroupId

    @ServiceGroupId.setter
    def ServiceGroupId(self, ServiceGroupId):
        self._ServiceGroupId = ServiceGroupId


    def _deserialize(self, params):
        self._ServiceId = params.get("ServiceId")
        self._ServiceGroupId = params.get("ServiceGroupId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ServicesInfo(AbstractModel):
    """协议端口模板信息

    """

    def __init__(self):
        r"""
        :param _Service: 协议端口。
        :type Service: str
        :param _Description: 备注。
注意：此字段可能返回 null，表示取不到有效值。
        :type Description: str
        """
        self._Service = None
        self._Description = None

    @property
    def Service(self):
        return self._Service

    @Service.setter
    def Service(self, Service):
        self._Service = Service

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description


    def _deserialize(self, params):
        self._Service = params.get("Service")
        self._Description = params.get("Description")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SetCcnRegionBandwidthLimitsRequest(AbstractModel):
    """SetCcnRegionBandwidthLimits请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CcnId: CCN实例ID，形如：ccn-f49l6u0z。
        :type CcnId: str
        :param _CcnRegionBandwidthLimits: 云联网（CCN）各地域出带宽上限。
        :type CcnRegionBandwidthLimits: list of CcnRegionBandwidthLimit
        :param _SetDefaultLimitFlag: 是否恢复云联网地域出口/地域间带宽限速为默认值（1Gbps）。false表示不恢复；true表示恢复。恢复默认值后，限速实例将不在控制台展示。该参数默认为 false，不恢复。
        :type SetDefaultLimitFlag: bool
        """
        self._CcnId = None
        self._CcnRegionBandwidthLimits = None
        self._SetDefaultLimitFlag = None

    @property
    def CcnId(self):
        return self._CcnId

    @CcnId.setter
    def CcnId(self, CcnId):
        self._CcnId = CcnId

    @property
    def CcnRegionBandwidthLimits(self):
        return self._CcnRegionBandwidthLimits

    @CcnRegionBandwidthLimits.setter
    def CcnRegionBandwidthLimits(self, CcnRegionBandwidthLimits):
        self._CcnRegionBandwidthLimits = CcnRegionBandwidthLimits

    @property
    def SetDefaultLimitFlag(self):
        return self._SetDefaultLimitFlag

    @SetDefaultLimitFlag.setter
    def SetDefaultLimitFlag(self, SetDefaultLimitFlag):
        self._SetDefaultLimitFlag = SetDefaultLimitFlag


    def _deserialize(self, params):
        self._CcnId = params.get("CcnId")
        if params.get("CcnRegionBandwidthLimits") is not None:
            self._CcnRegionBandwidthLimits = []
            for item in params.get("CcnRegionBandwidthLimits"):
                obj = CcnRegionBandwidthLimit()
                obj._deserialize(item)
                self._CcnRegionBandwidthLimits.append(obj)
        self._SetDefaultLimitFlag = params.get("SetDefaultLimitFlag")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SetCcnRegionBandwidthLimitsResponse(AbstractModel):
    """SetCcnRegionBandwidthLimits返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class SetVpnGatewaysRenewFlagRequest(AbstractModel):
    """SetVpnGatewaysRenewFlag请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpnGatewayIds: VPNGW字符型ID列表。可通过[DescribeVpnGateways](https://cloud.tencent.com/document/api/215/17514)接口返回值VpnGatewaySet中的VpnGatewayId获取。
        :type VpnGatewayIds: list of str
        :param _AutoRenewFlag: 自动续费标记 [0, 1, 2]
0表示默认状态(初始状态)， 1表示自动续费，2表示明确不自动续费。
        :type AutoRenewFlag: int
        :param _Type: VPNGW类型['IPSEC', 'SSL']， 默认为IPSEC。
        :type Type: str
        """
        self._VpnGatewayIds = None
        self._AutoRenewFlag = None
        self._Type = None

    @property
    def VpnGatewayIds(self):
        return self._VpnGatewayIds

    @VpnGatewayIds.setter
    def VpnGatewayIds(self, VpnGatewayIds):
        self._VpnGatewayIds = VpnGatewayIds

    @property
    def AutoRenewFlag(self):
        return self._AutoRenewFlag

    @AutoRenewFlag.setter
    def AutoRenewFlag(self, AutoRenewFlag):
        self._AutoRenewFlag = AutoRenewFlag

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type


    def _deserialize(self, params):
        self._VpnGatewayIds = params.get("VpnGatewayIds")
        self._AutoRenewFlag = params.get("AutoRenewFlag")
        self._Type = params.get("Type")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SetVpnGatewaysRenewFlagResponse(AbstractModel):
    """SetVpnGatewaysRenewFlag返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class SnapshotFileInfo(AbstractModel):
    """快照文件信息

    """

    def __init__(self):
        r"""
        :param _SnapshotPolicyId: 快照策略Id。
        :type SnapshotPolicyId: str
        :param _InstanceId: 实例Id。
        :type InstanceId: str
        :param _SnapshotFileId: 快照文件Id。
        :type SnapshotFileId: str
        :param _BackupTime: 备份时间。
        :type BackupTime: str
        :param _Operator: 操作者Uin。
        :type Operator: str
        """
        self._SnapshotPolicyId = None
        self._InstanceId = None
        self._SnapshotFileId = None
        self._BackupTime = None
        self._Operator = None

    @property
    def SnapshotPolicyId(self):
        return self._SnapshotPolicyId

    @SnapshotPolicyId.setter
    def SnapshotPolicyId(self, SnapshotPolicyId):
        self._SnapshotPolicyId = SnapshotPolicyId

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def SnapshotFileId(self):
        return self._SnapshotFileId

    @SnapshotFileId.setter
    def SnapshotFileId(self, SnapshotFileId):
        self._SnapshotFileId = SnapshotFileId

    @property
    def BackupTime(self):
        return self._BackupTime

    @BackupTime.setter
    def BackupTime(self, BackupTime):
        self._BackupTime = BackupTime

    @property
    def Operator(self):
        return self._Operator

    @Operator.setter
    def Operator(self, Operator):
        self._Operator = Operator


    def _deserialize(self, params):
        self._SnapshotPolicyId = params.get("SnapshotPolicyId")
        self._InstanceId = params.get("InstanceId")
        self._SnapshotFileId = params.get("SnapshotFileId")
        self._BackupTime = params.get("BackupTime")
        self._Operator = params.get("Operator")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SnapshotInstance(AbstractModel):
    """快照策略关联实例信息

    """

    def __init__(self):
        r"""
        :param _InstanceId: 实例Id。
        :type InstanceId: str
        :param _InstanceType: 实例类型，目前支持安全组：securitygroup。
        :type InstanceType: str
        :param _InstanceRegion: 实例所在地域。
        :type InstanceRegion: str
        :param _SnapshotPolicyId: 快照策略Id。
        :type SnapshotPolicyId: str
        :param _InstanceName: 实例名称。
        :type InstanceName: str
        """
        self._InstanceId = None
        self._InstanceType = None
        self._InstanceRegion = None
        self._SnapshotPolicyId = None
        self._InstanceName = None

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def InstanceType(self):
        return self._InstanceType

    @InstanceType.setter
    def InstanceType(self, InstanceType):
        self._InstanceType = InstanceType

    @property
    def InstanceRegion(self):
        return self._InstanceRegion

    @InstanceRegion.setter
    def InstanceRegion(self, InstanceRegion):
        self._InstanceRegion = InstanceRegion

    @property
    def SnapshotPolicyId(self):
        return self._SnapshotPolicyId

    @SnapshotPolicyId.setter
    def SnapshotPolicyId(self, SnapshotPolicyId):
        self._SnapshotPolicyId = SnapshotPolicyId

    @property
    def InstanceName(self):
        return self._InstanceName

    @InstanceName.setter
    def InstanceName(self, InstanceName):
        self._InstanceName = InstanceName


    def _deserialize(self, params):
        self._InstanceId = params.get("InstanceId")
        self._InstanceType = params.get("InstanceType")
        self._InstanceRegion = params.get("InstanceRegion")
        self._SnapshotPolicyId = params.get("SnapshotPolicyId")
        self._InstanceName = params.get("InstanceName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SnapshotPolicy(AbstractModel):
    """快照策略

    """

    def __init__(self):
        r"""
        :param _SnapshotPolicyName: 快照策略名称。
        :type SnapshotPolicyName: str
        :param _BackupType: 备份策略类型，operate-操作备份，time-定时备份。
        :type BackupType: str
        :param _KeepTime: 保留时间，支持1～365天。
        :type KeepTime: int
        :param _CreateNewCos: 是否创建新的cos桶，默认为False。
注意：此字段可能返回 null，表示取不到有效值。
        :type CreateNewCos: bool
        :param _CosRegion: cos桶所在地域。
        :type CosRegion: str
        :param _CosBucket: cos桶。
        :type CosBucket: str
        :param _SnapshotPolicyId: 快照策略Id。
        :type SnapshotPolicyId: str
        :param _BackupPolicies: 时间备份策略。
注意：此字段可能返回 null，表示取不到有效值。
        :type BackupPolicies: list of BackupPolicy
        :param _Enable: 启用状态，True-启用，False-停用，默认为True。
        :type Enable: bool
        :param _CreateTime: 创建时间。
注意：此字段可能返回 null，表示取不到有效值。
        :type CreateTime: str
        """
        self._SnapshotPolicyName = None
        self._BackupType = None
        self._KeepTime = None
        self._CreateNewCos = None
        self._CosRegion = None
        self._CosBucket = None
        self._SnapshotPolicyId = None
        self._BackupPolicies = None
        self._Enable = None
        self._CreateTime = None

    @property
    def SnapshotPolicyName(self):
        return self._SnapshotPolicyName

    @SnapshotPolicyName.setter
    def SnapshotPolicyName(self, SnapshotPolicyName):
        self._SnapshotPolicyName = SnapshotPolicyName

    @property
    def BackupType(self):
        return self._BackupType

    @BackupType.setter
    def BackupType(self, BackupType):
        self._BackupType = BackupType

    @property
    def KeepTime(self):
        return self._KeepTime

    @KeepTime.setter
    def KeepTime(self, KeepTime):
        self._KeepTime = KeepTime

    @property
    def CreateNewCos(self):
        return self._CreateNewCos

    @CreateNewCos.setter
    def CreateNewCos(self, CreateNewCos):
        self._CreateNewCos = CreateNewCos

    @property
    def CosRegion(self):
        return self._CosRegion

    @CosRegion.setter
    def CosRegion(self, CosRegion):
        self._CosRegion = CosRegion

    @property
    def CosBucket(self):
        return self._CosBucket

    @CosBucket.setter
    def CosBucket(self, CosBucket):
        self._CosBucket = CosBucket

    @property
    def SnapshotPolicyId(self):
        return self._SnapshotPolicyId

    @SnapshotPolicyId.setter
    def SnapshotPolicyId(self, SnapshotPolicyId):
        self._SnapshotPolicyId = SnapshotPolicyId

    @property
    def BackupPolicies(self):
        return self._BackupPolicies

    @BackupPolicies.setter
    def BackupPolicies(self, BackupPolicies):
        self._BackupPolicies = BackupPolicies

    @property
    def Enable(self):
        return self._Enable

    @Enable.setter
    def Enable(self, Enable):
        self._Enable = Enable

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime


    def _deserialize(self, params):
        self._SnapshotPolicyName = params.get("SnapshotPolicyName")
        self._BackupType = params.get("BackupType")
        self._KeepTime = params.get("KeepTime")
        self._CreateNewCos = params.get("CreateNewCos")
        self._CosRegion = params.get("CosRegion")
        self._CosBucket = params.get("CosBucket")
        self._SnapshotPolicyId = params.get("SnapshotPolicyId")
        if params.get("BackupPolicies") is not None:
            self._BackupPolicies = []
            for item in params.get("BackupPolicies"):
                obj = BackupPolicy()
                obj._deserialize(item)
                self._BackupPolicies.append(obj)
        self._Enable = params.get("Enable")
        self._CreateTime = params.get("CreateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SourceIpTranslationNatRule(AbstractModel):
    """NAT的SNAT规则

    """

    def __init__(self):
        r"""
        :param _ResourceId: 资源ID，如果ResourceType为USERDEFINED，可以为空
        :type ResourceId: str
        :param _ResourceType: 资源类型，目前包含SUBNET、NETWORKINTERFACE、USERDEFINED
注意：此字段可能返回 null，表示取不到有效值。
        :type ResourceType: str
        :param _PrivateIpAddress: 源IP/网段
        :type PrivateIpAddress: str
        :param _PublicIpAddresses: 弹性IP地址池
        :type PublicIpAddresses: list of str
        :param _Description: 描述
        :type Description: str
        :param _NatGatewaySnatId: Snat规则ID
        :type NatGatewaySnatId: str
        :param _NatGatewayId: NAT网关的ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type NatGatewayId: str
        :param _VpcId: 私有网络VPC的ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type VpcId: str
        :param _CreatedTime: NAT网关SNAT规则创建时间。
注意：此字段可能返回 null，表示取不到有效值。
        :type CreatedTime: str
        """
        self._ResourceId = None
        self._ResourceType = None
        self._PrivateIpAddress = None
        self._PublicIpAddresses = None
        self._Description = None
        self._NatGatewaySnatId = None
        self._NatGatewayId = None
        self._VpcId = None
        self._CreatedTime = None

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def ResourceType(self):
        return self._ResourceType

    @ResourceType.setter
    def ResourceType(self, ResourceType):
        self._ResourceType = ResourceType

    @property
    def PrivateIpAddress(self):
        return self._PrivateIpAddress

    @PrivateIpAddress.setter
    def PrivateIpAddress(self, PrivateIpAddress):
        self._PrivateIpAddress = PrivateIpAddress

    @property
    def PublicIpAddresses(self):
        return self._PublicIpAddresses

    @PublicIpAddresses.setter
    def PublicIpAddresses(self, PublicIpAddresses):
        self._PublicIpAddresses = PublicIpAddresses

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def NatGatewaySnatId(self):
        return self._NatGatewaySnatId

    @NatGatewaySnatId.setter
    def NatGatewaySnatId(self, NatGatewaySnatId):
        self._NatGatewaySnatId = NatGatewaySnatId

    @property
    def NatGatewayId(self):
        return self._NatGatewayId

    @NatGatewayId.setter
    def NatGatewayId(self, NatGatewayId):
        self._NatGatewayId = NatGatewayId

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime


    def _deserialize(self, params):
        self._ResourceId = params.get("ResourceId")
        self._ResourceType = params.get("ResourceType")
        self._PrivateIpAddress = params.get("PrivateIpAddress")
        self._PublicIpAddresses = params.get("PublicIpAddresses")
        self._Description = params.get("Description")
        self._NatGatewaySnatId = params.get("NatGatewaySnatId")
        self._NatGatewayId = params.get("NatGatewayId")
        self._VpcId = params.get("VpcId")
        self._CreatedTime = params.get("CreatedTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SslClientConfig(AbstractModel):
    """DownloadVpnGatewaySslClientCert 使用

    """

    def __init__(self):
        r"""
        :param _SslVpnClientConfiguration: 客户端配置
        :type SslVpnClientConfiguration: str
        :param _SslVpnRootCert: 更证书
        :type SslVpnRootCert: str
        :param _SslVpnKey: 客户端密钥
        :type SslVpnKey: str
        :param _SslVpnCert: 客户端证书
        :type SslVpnCert: str
        :param _SslVpnClientId: SSL-VPN-CLIENT 实例ID。
        :type SslVpnClientId: str
        """
        self._SslVpnClientConfiguration = None
        self._SslVpnRootCert = None
        self._SslVpnKey = None
        self._SslVpnCert = None
        self._SslVpnClientId = None

    @property
    def SslVpnClientConfiguration(self):
        return self._SslVpnClientConfiguration

    @SslVpnClientConfiguration.setter
    def SslVpnClientConfiguration(self, SslVpnClientConfiguration):
        self._SslVpnClientConfiguration = SslVpnClientConfiguration

    @property
    def SslVpnRootCert(self):
        return self._SslVpnRootCert

    @SslVpnRootCert.setter
    def SslVpnRootCert(self, SslVpnRootCert):
        self._SslVpnRootCert = SslVpnRootCert

    @property
    def SslVpnKey(self):
        return self._SslVpnKey

    @SslVpnKey.setter
    def SslVpnKey(self, SslVpnKey):
        self._SslVpnKey = SslVpnKey

    @property
    def SslVpnCert(self):
        return self._SslVpnCert

    @SslVpnCert.setter
    def SslVpnCert(self, SslVpnCert):
        self._SslVpnCert = SslVpnCert

    @property
    def SslVpnClientId(self):
        return self._SslVpnClientId

    @SslVpnClientId.setter
    def SslVpnClientId(self, SslVpnClientId):
        self._SslVpnClientId = SslVpnClientId


    def _deserialize(self, params):
        self._SslVpnClientConfiguration = params.get("SslVpnClientConfiguration")
        self._SslVpnRootCert = params.get("SslVpnRootCert")
        self._SslVpnKey = params.get("SslVpnKey")
        self._SslVpnCert = params.get("SslVpnCert")
        self._SslVpnClientId = params.get("SslVpnClientId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SslVpnClient(AbstractModel):
    """SSL-VPN-CLIENT 出参

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID。
        :type VpcId: str
        :param _SslVpnServerId: SSL-VPN-SERVER 实例ID。
        :type SslVpnServerId: str
        :param _CertStatus: 证书状态。
0:创建中
1:正常
2:已停用
3.已过期
4.创建出错
        :type CertStatus: int
        :param _SslVpnClientId: SSL-VPN-CLIENT 实例ID。
        :type SslVpnClientId: str
        :param _CertBeginTime: 证书开始时间。
        :type CertBeginTime: str
        :param _CertEndTime: 证书到期时间。
        :type CertEndTime: str
        :param _Name: CLIENT NAME。
        :type Name: str
        :param _State: 创建CLIENT 状态。
0 创建中
1 创建出错
2 更新中
3 更新出错
4 销毁中
5 销毁出错
6 已连通
7 未知
        :type State: str
        """
        self._VpcId = None
        self._SslVpnServerId = None
        self._CertStatus = None
        self._SslVpnClientId = None
        self._CertBeginTime = None
        self._CertEndTime = None
        self._Name = None
        self._State = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SslVpnServerId(self):
        return self._SslVpnServerId

    @SslVpnServerId.setter
    def SslVpnServerId(self, SslVpnServerId):
        self._SslVpnServerId = SslVpnServerId

    @property
    def CertStatus(self):
        return self._CertStatus

    @CertStatus.setter
    def CertStatus(self, CertStatus):
        self._CertStatus = CertStatus

    @property
    def SslVpnClientId(self):
        return self._SslVpnClientId

    @SslVpnClientId.setter
    def SslVpnClientId(self, SslVpnClientId):
        self._SslVpnClientId = SslVpnClientId

    @property
    def CertBeginTime(self):
        return self._CertBeginTime

    @CertBeginTime.setter
    def CertBeginTime(self, CertBeginTime):
        self._CertBeginTime = CertBeginTime

    @property
    def CertEndTime(self):
        return self._CertEndTime

    @CertEndTime.setter
    def CertEndTime(self, CertEndTime):
        self._CertEndTime = CertEndTime

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._SslVpnServerId = params.get("SslVpnServerId")
        self._CertStatus = params.get("CertStatus")
        self._SslVpnClientId = params.get("SslVpnClientId")
        self._CertBeginTime = params.get("CertBeginTime")
        self._CertEndTime = params.get("CertEndTime")
        self._Name = params.get("Name")
        self._State = params.get("State")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SslVpnSever(AbstractModel):
    """SSL-VPN-SERVER 出参

    """

    def __init__(self):
        r"""
        :param _VpcId: VPC实例ID.
注意：此字段可能返回 null，表示取不到有效值。
        :type VpcId: str
        :param _SslVpnServerId: SSL-VPN-SERVER 实例ID。
        :type SslVpnServerId: str
        :param _VpnGatewayId: VPN 实例ID。
        :type VpnGatewayId: str
        :param _SslVpnServerName: SSL-VPN-SERVER name。
        :type SslVpnServerName: str
        :param _LocalAddress: 本端地址段。
        :type LocalAddress: list of str
        :param _RemoteAddress: 客户端地址段。
        :type RemoteAddress: str
        :param _MaxConnection: 客户端最大连接数。
        :type MaxConnection: int
        :param _WanIp: SSL-VPN 网关公网IP。
        :type WanIp: str
        :param _SslVpnProtocol: SSL VPN服务端监听协议
        :type SslVpnProtocol: str
        :param _SslVpnPort: SSL VPN服务端监听协议端口
        :type SslVpnPort: int
        :param _EncryptAlgorithm: 加密算法。
        :type EncryptAlgorithm: str
        :param _IntegrityAlgorithm: 认证算法。
        :type IntegrityAlgorithm: str
        :param _Compress: 是否支持压缩。
        :type Compress: int
        :param _CreateTime: 创建时间。
        :type CreateTime: str
        :param _State: SSL-VPN-SERVER 创建状态。
0 创建中
1 创建出错
2 更新中
3 更新出错
4 销毁中
5 销毁出错
6 已连通
7 未知
        :type State: int
        :param _SsoEnabled: 是否开启SSO认证。1：开启  0： 不开启
        :type SsoEnabled: int
        :param _EiamApplicationId: EIAM应用ID
        :type EiamApplicationId: str
        :param _AccessPolicyEnabled: 是否开启策略控制。0：不开启 1： 开启
        :type AccessPolicyEnabled: int
        :param _AccessPolicy: 策略信息
        :type AccessPolicy: list of AccessPolicy
        """
        self._VpcId = None
        self._SslVpnServerId = None
        self._VpnGatewayId = None
        self._SslVpnServerName = None
        self._LocalAddress = None
        self._RemoteAddress = None
        self._MaxConnection = None
        self._WanIp = None
        self._SslVpnProtocol = None
        self._SslVpnPort = None
        self._EncryptAlgorithm = None
        self._IntegrityAlgorithm = None
        self._Compress = None
        self._CreateTime = None
        self._State = None
        self._SsoEnabled = None
        self._EiamApplicationId = None
        self._AccessPolicyEnabled = None
        self._AccessPolicy = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SslVpnServerId(self):
        return self._SslVpnServerId

    @SslVpnServerId.setter
    def SslVpnServerId(self, SslVpnServerId):
        self._SslVpnServerId = SslVpnServerId

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def SslVpnServerName(self):
        return self._SslVpnServerName

    @SslVpnServerName.setter
    def SslVpnServerName(self, SslVpnServerName):
        self._SslVpnServerName = SslVpnServerName

    @property
    def LocalAddress(self):
        return self._LocalAddress

    @LocalAddress.setter
    def LocalAddress(self, LocalAddress):
        self._LocalAddress = LocalAddress

    @property
    def RemoteAddress(self):
        return self._RemoteAddress

    @RemoteAddress.setter
    def RemoteAddress(self, RemoteAddress):
        self._RemoteAddress = RemoteAddress

    @property
    def MaxConnection(self):
        return self._MaxConnection

    @MaxConnection.setter
    def MaxConnection(self, MaxConnection):
        self._MaxConnection = MaxConnection

    @property
    def WanIp(self):
        return self._WanIp

    @WanIp.setter
    def WanIp(self, WanIp):
        self._WanIp = WanIp

    @property
    def SslVpnProtocol(self):
        return self._SslVpnProtocol

    @SslVpnProtocol.setter
    def SslVpnProtocol(self, SslVpnProtocol):
        self._SslVpnProtocol = SslVpnProtocol

    @property
    def SslVpnPort(self):
        return self._SslVpnPort

    @SslVpnPort.setter
    def SslVpnPort(self, SslVpnPort):
        self._SslVpnPort = SslVpnPort

    @property
    def EncryptAlgorithm(self):
        return self._EncryptAlgorithm

    @EncryptAlgorithm.setter
    def EncryptAlgorithm(self, EncryptAlgorithm):
        self._EncryptAlgorithm = EncryptAlgorithm

    @property
    def IntegrityAlgorithm(self):
        return self._IntegrityAlgorithm

    @IntegrityAlgorithm.setter
    def IntegrityAlgorithm(self, IntegrityAlgorithm):
        self._IntegrityAlgorithm = IntegrityAlgorithm

    @property
    def Compress(self):
        return self._Compress

    @Compress.setter
    def Compress(self, Compress):
        self._Compress = Compress

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def SsoEnabled(self):
        return self._SsoEnabled

    @SsoEnabled.setter
    def SsoEnabled(self, SsoEnabled):
        self._SsoEnabled = SsoEnabled

    @property
    def EiamApplicationId(self):
        return self._EiamApplicationId

    @EiamApplicationId.setter
    def EiamApplicationId(self, EiamApplicationId):
        self._EiamApplicationId = EiamApplicationId

    @property
    def AccessPolicyEnabled(self):
        return self._AccessPolicyEnabled

    @AccessPolicyEnabled.setter
    def AccessPolicyEnabled(self, AccessPolicyEnabled):
        self._AccessPolicyEnabled = AccessPolicyEnabled

    @property
    def AccessPolicy(self):
        return self._AccessPolicy

    @AccessPolicy.setter
    def AccessPolicy(self, AccessPolicy):
        self._AccessPolicy = AccessPolicy


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._SslVpnServerId = params.get("SslVpnServerId")
        self._VpnGatewayId = params.get("VpnGatewayId")
        self._SslVpnServerName = params.get("SslVpnServerName")
        self._LocalAddress = params.get("LocalAddress")
        self._RemoteAddress = params.get("RemoteAddress")
        self._MaxConnection = params.get("MaxConnection")
        self._WanIp = params.get("WanIp")
        self._SslVpnProtocol = params.get("SslVpnProtocol")
        self._SslVpnPort = params.get("SslVpnPort")
        self._EncryptAlgorithm = params.get("EncryptAlgorithm")
        self._IntegrityAlgorithm = params.get("IntegrityAlgorithm")
        self._Compress = params.get("Compress")
        self._CreateTime = params.get("CreateTime")
        self._State = params.get("State")
        self._SsoEnabled = params.get("SsoEnabled")
        self._EiamApplicationId = params.get("EiamApplicationId")
        self._AccessPolicyEnabled = params.get("AccessPolicyEnabled")
        if params.get("AccessPolicy") is not None:
            self._AccessPolicy = []
            for item in params.get("AccessPolicy"):
                obj = AccessPolicy()
                obj._deserialize(item)
                self._AccessPolicy.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Subnet(AbstractModel):
    """子网对象

    """

    def __init__(self):
        r"""
        :param _VpcId: `VPC`实例`ID`。
        :type VpcId: str
        :param _SubnetId: 子网实例`ID`，例如：subnet-bthucmmy。
        :type SubnetId: str
        :param _SubnetName: 子网名称。
        :type SubnetName: str
        :param _CidrBlock: 子网的 `IPv4` `CIDR`。
        :type CidrBlock: str
        :param _IsDefault: 是否默认子网。
        :type IsDefault: bool
        :param _EnableBroadcast: 是否开启广播。
        :type EnableBroadcast: bool
        :param _Zone: 可用区。
        :type Zone: str
        :param _RouteTableId: 路由表实例ID，例如：rtb-l2h8d7c2。
        :type RouteTableId: str
        :param _CreatedTime: 创建时间。
        :type CreatedTime: str
        :param _AvailableIpAddressCount: 可用`IPv4`数。
        :type AvailableIpAddressCount: int
        :param _Ipv6CidrBlock: 子网的 `IPv6` `CIDR`。
        :type Ipv6CidrBlock: str
        :param _NetworkAclId: 关联`ACL`ID
        :type NetworkAclId: str
        :param _IsRemoteVpcSnat: 是否为 `SNAT` 地址池子网。
        :type IsRemoteVpcSnat: bool
        :param _TotalIpAddressCount: 子网`IPv4`总数。
        :type TotalIpAddressCount: int
        :param _TagSet: 标签键值对。
        :type TagSet: list of Tag
        :param _CdcId: CDC实例ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type CdcId: str
        :param _IsCdcSubnet: 是否是CDC所属子网。0:否 1:是
注意：此字段可能返回 null，表示取不到有效值。
        :type IsCdcSubnet: int
        """
        self._VpcId = None
        self._SubnetId = None
        self._SubnetName = None
        self._CidrBlock = None
        self._IsDefault = None
        self._EnableBroadcast = None
        self._Zone = None
        self._RouteTableId = None
        self._CreatedTime = None
        self._AvailableIpAddressCount = None
        self._Ipv6CidrBlock = None
        self._NetworkAclId = None
        self._IsRemoteVpcSnat = None
        self._TotalIpAddressCount = None
        self._TagSet = None
        self._CdcId = None
        self._IsCdcSubnet = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def SubnetName(self):
        return self._SubnetName

    @SubnetName.setter
    def SubnetName(self, SubnetName):
        self._SubnetName = SubnetName

    @property
    def CidrBlock(self):
        return self._CidrBlock

    @CidrBlock.setter
    def CidrBlock(self, CidrBlock):
        self._CidrBlock = CidrBlock

    @property
    def IsDefault(self):
        return self._IsDefault

    @IsDefault.setter
    def IsDefault(self, IsDefault):
        self._IsDefault = IsDefault

    @property
    def EnableBroadcast(self):
        return self._EnableBroadcast

    @EnableBroadcast.setter
    def EnableBroadcast(self, EnableBroadcast):
        self._EnableBroadcast = EnableBroadcast

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def AvailableIpAddressCount(self):
        return self._AvailableIpAddressCount

    @AvailableIpAddressCount.setter
    def AvailableIpAddressCount(self, AvailableIpAddressCount):
        self._AvailableIpAddressCount = AvailableIpAddressCount

    @property
    def Ipv6CidrBlock(self):
        return self._Ipv6CidrBlock

    @Ipv6CidrBlock.setter
    def Ipv6CidrBlock(self, Ipv6CidrBlock):
        self._Ipv6CidrBlock = Ipv6CidrBlock

    @property
    def NetworkAclId(self):
        return self._NetworkAclId

    @NetworkAclId.setter
    def NetworkAclId(self, NetworkAclId):
        self._NetworkAclId = NetworkAclId

    @property
    def IsRemoteVpcSnat(self):
        return self._IsRemoteVpcSnat

    @IsRemoteVpcSnat.setter
    def IsRemoteVpcSnat(self, IsRemoteVpcSnat):
        self._IsRemoteVpcSnat = IsRemoteVpcSnat

    @property
    def TotalIpAddressCount(self):
        return self._TotalIpAddressCount

    @TotalIpAddressCount.setter
    def TotalIpAddressCount(self, TotalIpAddressCount):
        self._TotalIpAddressCount = TotalIpAddressCount

    @property
    def TagSet(self):
        return self._TagSet

    @TagSet.setter
    def TagSet(self, TagSet):
        self._TagSet = TagSet

    @property
    def CdcId(self):
        return self._CdcId

    @CdcId.setter
    def CdcId(self, CdcId):
        self._CdcId = CdcId

    @property
    def IsCdcSubnet(self):
        return self._IsCdcSubnet

    @IsCdcSubnet.setter
    def IsCdcSubnet(self, IsCdcSubnet):
        self._IsCdcSubnet = IsCdcSubnet


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._SubnetName = params.get("SubnetName")
        self._CidrBlock = params.get("CidrBlock")
        self._IsDefault = params.get("IsDefault")
        self._EnableBroadcast = params.get("EnableBroadcast")
        self._Zone = params.get("Zone")
        self._RouteTableId = params.get("RouteTableId")
        self._CreatedTime = params.get("CreatedTime")
        self._AvailableIpAddressCount = params.get("AvailableIpAddressCount")
        self._Ipv6CidrBlock = params.get("Ipv6CidrBlock")
        self._NetworkAclId = params.get("NetworkAclId")
        self._IsRemoteVpcSnat = params.get("IsRemoteVpcSnat")
        self._TotalIpAddressCount = params.get("TotalIpAddressCount")
        if params.get("TagSet") is not None:
            self._TagSet = []
            for item in params.get("TagSet"):
                obj = Tag()
                obj._deserialize(item)
                self._TagSet.append(obj)
        self._CdcId = params.get("CdcId")
        self._IsCdcSubnet = params.get("IsCdcSubnet")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SubnetInput(AbstractModel):
    """子网对象

    """

    def __init__(self):
        r"""
        :param _CidrBlock: 子网的`CIDR`。
        :type CidrBlock: str
        :param _SubnetName: 子网名称。
        :type SubnetName: str
        :param _Zone: 可用区。形如：`ap-guangzhou-2`。
        :type Zone: str
        :param _RouteTableId: 指定关联路由表，形如：`rtb-3ryrwzuu`。
        :type RouteTableId: str
        """
        self._CidrBlock = None
        self._SubnetName = None
        self._Zone = None
        self._RouteTableId = None

    @property
    def CidrBlock(self):
        return self._CidrBlock

    @CidrBlock.setter
    def CidrBlock(self, CidrBlock):
        self._CidrBlock = CidrBlock

    @property
    def SubnetName(self):
        return self._SubnetName

    @SubnetName.setter
    def SubnetName(self, SubnetName):
        self._SubnetName = SubnetName

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId


    def _deserialize(self, params):
        self._CidrBlock = params.get("CidrBlock")
        self._SubnetName = params.get("SubnetName")
        self._Zone = params.get("Zone")
        self._RouteTableId = params.get("RouteTableId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Tag(AbstractModel):
    """标签键值对

    """

    def __init__(self):
        r"""
        :param _Key: 标签键
注意：此字段可能返回 null，表示取不到有效值。
        :type Key: str
        :param _Value: 标签值
注意：此字段可能返回 null，表示取不到有效值。
        :type Value: str
        """
        self._Key = None
        self._Value = None

    @property
    def Key(self):
        return self._Key

    @Key.setter
    def Key(self, Key):
        self._Key = Key

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value


    def _deserialize(self, params):
        self._Key = params.get("Key")
        self._Value = params.get("Value")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TemplateLimit(AbstractModel):
    """参数模板配额

    """

    def __init__(self):
        r"""
        :param _AddressTemplateMemberLimit: 参数模板IP地址成员配额。
        :type AddressTemplateMemberLimit: int
        :param _AddressTemplateGroupMemberLimit: 参数模板IP地址组成员配额。
        :type AddressTemplateGroupMemberLimit: int
        :param _ServiceTemplateMemberLimit: 参数模板I协议端口成员配额。
        :type ServiceTemplateMemberLimit: int
        :param _ServiceTemplateGroupMemberLimit: 参数模板协议端口组成员配额。
        :type ServiceTemplateGroupMemberLimit: int
        """
        self._AddressTemplateMemberLimit = None
        self._AddressTemplateGroupMemberLimit = None
        self._ServiceTemplateMemberLimit = None
        self._ServiceTemplateGroupMemberLimit = None

    @property
    def AddressTemplateMemberLimit(self):
        return self._AddressTemplateMemberLimit

    @AddressTemplateMemberLimit.setter
    def AddressTemplateMemberLimit(self, AddressTemplateMemberLimit):
        self._AddressTemplateMemberLimit = AddressTemplateMemberLimit

    @property
    def AddressTemplateGroupMemberLimit(self):
        return self._AddressTemplateGroupMemberLimit

    @AddressTemplateGroupMemberLimit.setter
    def AddressTemplateGroupMemberLimit(self, AddressTemplateGroupMemberLimit):
        self._AddressTemplateGroupMemberLimit = AddressTemplateGroupMemberLimit

    @property
    def ServiceTemplateMemberLimit(self):
        return self._ServiceTemplateMemberLimit

    @ServiceTemplateMemberLimit.setter
    def ServiceTemplateMemberLimit(self, ServiceTemplateMemberLimit):
        self._ServiceTemplateMemberLimit = ServiceTemplateMemberLimit

    @property
    def ServiceTemplateGroupMemberLimit(self):
        return self._ServiceTemplateGroupMemberLimit

    @ServiceTemplateGroupMemberLimit.setter
    def ServiceTemplateGroupMemberLimit(self, ServiceTemplateGroupMemberLimit):
        self._ServiceTemplateGroupMemberLimit = ServiceTemplateGroupMemberLimit


    def _deserialize(self, params):
        self._AddressTemplateMemberLimit = params.get("AddressTemplateMemberLimit")
        self._AddressTemplateGroupMemberLimit = params.get("AddressTemplateGroupMemberLimit")
        self._ServiceTemplateMemberLimit = params.get("ServiceTemplateMemberLimit")
        self._ServiceTemplateGroupMemberLimit = params.get("ServiceTemplateGroupMemberLimit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TrafficFlow(AbstractModel):
    """流量描述。

    """

    def __init__(self):
        r"""
        :param _Value: 实际流量，单位为 字节
        :type Value: int
        :param _FormatValue: 格式化后的流量，单位见参数 FormatUnit
注意：此字段可能返回 null，表示取不到有效值。
        :type FormatValue: float
        :param _FormatUnit: 格式化后流量的单位
注意：此字段可能返回 null，表示取不到有效值。
        :type FormatUnit: str
        """
        self._Value = None
        self._FormatValue = None
        self._FormatUnit = None

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value

    @property
    def FormatValue(self):
        return self._FormatValue

    @FormatValue.setter
    def FormatValue(self, FormatValue):
        self._FormatValue = FormatValue

    @property
    def FormatUnit(self):
        return self._FormatUnit

    @FormatUnit.setter
    def FormatUnit(self, FormatUnit):
        self._FormatUnit = FormatUnit


    def _deserialize(self, params):
        self._Value = params.get("Value")
        self._FormatValue = params.get("FormatValue")
        self._FormatUnit = params.get("FormatUnit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TrafficPackage(AbstractModel):
    """流量包信息描述类型

    """

    def __init__(self):
        r"""
        :param _TrafficPackageId: 流量包唯一ID
        :type TrafficPackageId: str
        :param _TrafficPackageName: 流量包名称
注意：此字段可能返回 null，表示取不到有效值。
        :type TrafficPackageName: str
        :param _TotalAmount: 流量包总量，单位GB
        :type TotalAmount: float
        :param _RemainingAmount: 流量包剩余量，单位GB
        :type RemainingAmount: float
        :param _Status: 流量包状态，可能的值有: AVAILABLE-可用状态， EXPIRED-已过期， EXHAUSTED-已用完， REFUNDED-已退还， DELETED-已删除
        :type Status: str
        :param _CreatedTime: 流量包创建时间
        :type CreatedTime: str
        :param _Deadline: 流量包截止时间
        :type Deadline: str
        :param _UsedAmount: 已使用的流量，单位GB
        :type UsedAmount: float
        :param _TagSet: 流量包标签
注意：此字段可能返回 null，表示取不到有效值。
        :type TagSet: list of Tag
        :param _DeductType: 区分闲时流量包与全时流量包
        :type DeductType: str
        """
        self._TrafficPackageId = None
        self._TrafficPackageName = None
        self._TotalAmount = None
        self._RemainingAmount = None
        self._Status = None
        self._CreatedTime = None
        self._Deadline = None
        self._UsedAmount = None
        self._TagSet = None
        self._DeductType = None

    @property
    def TrafficPackageId(self):
        return self._TrafficPackageId

    @TrafficPackageId.setter
    def TrafficPackageId(self, TrafficPackageId):
        self._TrafficPackageId = TrafficPackageId

    @property
    def TrafficPackageName(self):
        return self._TrafficPackageName

    @TrafficPackageName.setter
    def TrafficPackageName(self, TrafficPackageName):
        self._TrafficPackageName = TrafficPackageName

    @property
    def TotalAmount(self):
        return self._TotalAmount

    @TotalAmount.setter
    def TotalAmount(self, TotalAmount):
        self._TotalAmount = TotalAmount

    @property
    def RemainingAmount(self):
        return self._RemainingAmount

    @RemainingAmount.setter
    def RemainingAmount(self, RemainingAmount):
        self._RemainingAmount = RemainingAmount

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def Deadline(self):
        return self._Deadline

    @Deadline.setter
    def Deadline(self, Deadline):
        self._Deadline = Deadline

    @property
    def UsedAmount(self):
        return self._UsedAmount

    @UsedAmount.setter
    def UsedAmount(self, UsedAmount):
        self._UsedAmount = UsedAmount

    @property
    def TagSet(self):
        return self._TagSet

    @TagSet.setter
    def TagSet(self, TagSet):
        self._TagSet = TagSet

    @property
    def DeductType(self):
        return self._DeductType

    @DeductType.setter
    def DeductType(self, DeductType):
        self._DeductType = DeductType


    def _deserialize(self, params):
        self._TrafficPackageId = params.get("TrafficPackageId")
        self._TrafficPackageName = params.get("TrafficPackageName")
        self._TotalAmount = params.get("TotalAmount")
        self._RemainingAmount = params.get("RemainingAmount")
        self._Status = params.get("Status")
        self._CreatedTime = params.get("CreatedTime")
        self._Deadline = params.get("Deadline")
        self._UsedAmount = params.get("UsedAmount")
        if params.get("TagSet") is not None:
            self._TagSet = []
            for item in params.get("TagSet"):
                obj = Tag()
                obj._deserialize(item)
                self._TagSet.append(obj)
        self._DeductType = params.get("DeductType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TransformAddressRequest(AbstractModel):
    """TransformAddress请求参数结构体

    """

    def __init__(self):
        r"""
        :param _InstanceId: 待操作有普通公网 IP 的实例 ID。实例 ID 形如：`ins-11112222`。可通过登录[控制台](https://console.cloud.tencent.com/cvm)查询，也可通过 [DescribeInstances](https://cloud.tencent.com/document/api/213/9389) 接口返回值中的`InstanceId`获取。
        :type InstanceId: str
        """
        self._InstanceId = None

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId


    def _deserialize(self, params):
        self._InstanceId = params.get("InstanceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TransformAddressResponse(AbstractModel):
    """TransformAddress返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步任务TaskId。可以使用[DescribeTaskResult](https://cloud.tencent.com/document/api/215/36271)接口查询任务状态。
        :type TaskId: int
        :param _AddressId: 转为弹性公网IP后的唯一ID
        :type AddressId: str
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._AddressId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def AddressId(self):
        return self._AddressId

    @AddressId.setter
    def AddressId(self, AddressId):
        self._AddressId = AddressId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._AddressId = params.get("AddressId")
        self._RequestId = params.get("RequestId")


class UnassignIpv6AddressesRequest(AbstractModel):
    """UnassignIpv6Addresses请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceId: 弹性网卡实例`ID`，形如：`eni-m6dyj72l`。
        :type NetworkInterfaceId: str
        :param _Ipv6Addresses: 指定的`IPv6`地址列表，单次最多指定10个。
        :type Ipv6Addresses: list of Ipv6Address
        """
        self._NetworkInterfaceId = None
        self._Ipv6Addresses = None

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId

    @property
    def Ipv6Addresses(self):
        return self._Ipv6Addresses

    @Ipv6Addresses.setter
    def Ipv6Addresses(self, Ipv6Addresses):
        self._Ipv6Addresses = Ipv6Addresses


    def _deserialize(self, params):
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        if params.get("Ipv6Addresses") is not None:
            self._Ipv6Addresses = []
            for item in params.get("Ipv6Addresses"):
                obj = Ipv6Address()
                obj._deserialize(item)
                self._Ipv6Addresses.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UnassignIpv6AddressesResponse(AbstractModel):
    """UnassignIpv6Addresses返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class UnassignIpv6CidrBlockRequest(AbstractModel):
    """UnassignIpv6CidrBlock请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: `VPC`实例`ID`，形如：`vpc-f49l6u0z`。
        :type VpcId: str
        :param _Ipv6CidrBlock: `IPv6`网段。形如：`3402:4e00:20:1000::/56`。
        :type Ipv6CidrBlock: str
        """
        self._VpcId = None
        self._Ipv6CidrBlock = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def Ipv6CidrBlock(self):
        return self._Ipv6CidrBlock

    @Ipv6CidrBlock.setter
    def Ipv6CidrBlock(self, Ipv6CidrBlock):
        self._Ipv6CidrBlock = Ipv6CidrBlock


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        self._Ipv6CidrBlock = params.get("Ipv6CidrBlock")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UnassignIpv6CidrBlockResponse(AbstractModel):
    """UnassignIpv6CidrBlock返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class UnassignIpv6SubnetCidrBlockRequest(AbstractModel):
    """UnassignIpv6SubnetCidrBlock请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VpcId: 子网所在私有网络`ID`。形如：`vpc-f49l6u0z`。
        :type VpcId: str
        :param _Ipv6SubnetCidrBlocks: `IPv6` 子网段列表。
        :type Ipv6SubnetCidrBlocks: list of Ipv6SubnetCidrBlock
        """
        self._VpcId = None
        self._Ipv6SubnetCidrBlocks = None

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def Ipv6SubnetCidrBlocks(self):
        return self._Ipv6SubnetCidrBlocks

    @Ipv6SubnetCidrBlocks.setter
    def Ipv6SubnetCidrBlocks(self, Ipv6SubnetCidrBlocks):
        self._Ipv6SubnetCidrBlocks = Ipv6SubnetCidrBlocks


    def _deserialize(self, params):
        self._VpcId = params.get("VpcId")
        if params.get("Ipv6SubnetCidrBlocks") is not None:
            self._Ipv6SubnetCidrBlocks = []
            for item in params.get("Ipv6SubnetCidrBlocks"):
                obj = Ipv6SubnetCidrBlock()
                obj._deserialize(item)
                self._Ipv6SubnetCidrBlocks.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UnassignIpv6SubnetCidrBlockResponse(AbstractModel):
    """UnassignIpv6SubnetCidrBlock返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class UnassignPrivateIpAddressesRequest(AbstractModel):
    """UnassignPrivateIpAddresses请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetworkInterfaceId: 弹性网卡实例ID，例如：eni-m6dyj72l。
        :type NetworkInterfaceId: str
        :param _PrivateIpAddresses: 指定的内网IP信息，单次最多指定10个。
        :type PrivateIpAddresses: list of PrivateIpAddressSpecification
        :param _InstanceId: 网卡绑定的子机实例ID，该参数仅用于指定网卡退还IP并解绑子机的场景，如果不涉及解绑子机，请勿填写。
        :type InstanceId: str
        """
        self._NetworkInterfaceId = None
        self._PrivateIpAddresses = None
        self._InstanceId = None

    @property
    def NetworkInterfaceId(self):
        return self._NetworkInterfaceId

    @NetworkInterfaceId.setter
    def NetworkInterfaceId(self, NetworkInterfaceId):
        self._NetworkInterfaceId = NetworkInterfaceId

    @property
    def PrivateIpAddresses(self):
        return self._PrivateIpAddresses

    @PrivateIpAddresses.setter
    def PrivateIpAddresses(self, PrivateIpAddresses):
        self._PrivateIpAddresses = PrivateIpAddresses

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId


    def _deserialize(self, params):
        self._NetworkInterfaceId = params.get("NetworkInterfaceId")
        if params.get("PrivateIpAddresses") is not None:
            self._PrivateIpAddresses = []
            for item in params.get("PrivateIpAddresses"):
                obj = PrivateIpAddressSpecification()
                obj._deserialize(item)
                self._PrivateIpAddresses.append(obj)
        self._InstanceId = params.get("InstanceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UnassignPrivateIpAddressesResponse(AbstractModel):
    """UnassignPrivateIpAddresses返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class UnlockCcnBandwidthsRequest(AbstractModel):
    """UnlockCcnBandwidths请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Instances: 带宽实例对象数组。
        :type Instances: list of CcnFlowLock
        """
        self._Instances = None

    @property
    def Instances(self):
        return self._Instances

    @Instances.setter
    def Instances(self, Instances):
        self._Instances = Instances


    def _deserialize(self, params):
        if params.get("Instances") is not None:
            self._Instances = []
            for item in params.get("Instances"):
                obj = CcnFlowLock()
                obj._deserialize(item)
                self._Instances.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UnlockCcnBandwidthsResponse(AbstractModel):
    """UnlockCcnBandwidths返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class UnlockCcnsRequest(AbstractModel):
    """UnlockCcns请求参数结构体

    """


class UnlockCcnsResponse(AbstractModel):
    """UnlockCcns返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class UsedDetail(AbstractModel):
    """共享流量包用量明细

    """

    def __init__(self):
        r"""
        :param _TrafficPackageId: 流量包唯一ID
        :type TrafficPackageId: str
        :param _TrafficPackageName: 流量包名称
注意：此字段可能返回 null，表示取不到有效值。
        :type TrafficPackageName: str
        :param _TotalAmount: 流量包总量
        :type TotalAmount: :class:`tencentcloud.vpc.v20170312.models.TrafficFlow`
        :param _Deduction: 本次抵扣
        :type Deduction: :class:`tencentcloud.vpc.v20170312.models.TrafficFlow`
        :param _RemainingAmount: 本次抵扣后剩余量
        :type RemainingAmount: :class:`tencentcloud.vpc.v20170312.models.TrafficFlow`
        :param _Time: 抵扣时间
        :type Time: str
        :param _ResourceType: 资源类型。可能的值: CVM, LB, NAT, HAVIP, EIP
        :type ResourceType: str
        :param _ResourceId: 资源ID
        :type ResourceId: str
        :param _ResourceName: 资源名称
        :type ResourceName: str
        :param _Deadline: 流量包到期时间
        :type Deadline: str
        """
        self._TrafficPackageId = None
        self._TrafficPackageName = None
        self._TotalAmount = None
        self._Deduction = None
        self._RemainingAmount = None
        self._Time = None
        self._ResourceType = None
        self._ResourceId = None
        self._ResourceName = None
        self._Deadline = None

    @property
    def TrafficPackageId(self):
        return self._TrafficPackageId

    @TrafficPackageId.setter
    def TrafficPackageId(self, TrafficPackageId):
        self._TrafficPackageId = TrafficPackageId

    @property
    def TrafficPackageName(self):
        return self._TrafficPackageName

    @TrafficPackageName.setter
    def TrafficPackageName(self, TrafficPackageName):
        self._TrafficPackageName = TrafficPackageName

    @property
    def TotalAmount(self):
        return self._TotalAmount

    @TotalAmount.setter
    def TotalAmount(self, TotalAmount):
        self._TotalAmount = TotalAmount

    @property
    def Deduction(self):
        return self._Deduction

    @Deduction.setter
    def Deduction(self, Deduction):
        self._Deduction = Deduction

    @property
    def RemainingAmount(self):
        return self._RemainingAmount

    @RemainingAmount.setter
    def RemainingAmount(self, RemainingAmount):
        self._RemainingAmount = RemainingAmount

    @property
    def Time(self):
        return self._Time

    @Time.setter
    def Time(self, Time):
        self._Time = Time

    @property
    def ResourceType(self):
        return self._ResourceType

    @ResourceType.setter
    def ResourceType(self, ResourceType):
        self._ResourceType = ResourceType

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def ResourceName(self):
        return self._ResourceName

    @ResourceName.setter
    def ResourceName(self, ResourceName):
        self._ResourceName = ResourceName

    @property
    def Deadline(self):
        return self._Deadline

    @Deadline.setter
    def Deadline(self, Deadline):
        self._Deadline = Deadline


    def _deserialize(self, params):
        self._TrafficPackageId = params.get("TrafficPackageId")
        self._TrafficPackageName = params.get("TrafficPackageName")
        if params.get("TotalAmount") is not None:
            self._TotalAmount = TrafficFlow()
            self._TotalAmount._deserialize(params.get("TotalAmount"))
        if params.get("Deduction") is not None:
            self._Deduction = TrafficFlow()
            self._Deduction._deserialize(params.get("Deduction"))
        if params.get("RemainingAmount") is not None:
            self._RemainingAmount = TrafficFlow()
            self._RemainingAmount._deserialize(params.get("RemainingAmount"))
        self._Time = params.get("Time")
        self._ResourceType = params.get("ResourceType")
        self._ResourceId = params.get("ResourceId")
        self._ResourceName = params.get("ResourceName")
        self._Deadline = params.get("Deadline")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Vpc(AbstractModel):
    """私有网络(VPC)对象。

    """

    def __init__(self):
        r"""
        :param _VpcName: `VPC`名称。
        :type VpcName: str
        :param _VpcId: `VPC`实例`ID`，例如：vpc-azd4dt1c。
        :type VpcId: str
        :param _CidrBlock: `VPC`的`IPv4` `CIDR`。
        :type CidrBlock: str
        :param _IsDefault: 是否默认`VPC`。
        :type IsDefault: bool
        :param _EnableMulticast: 是否开启组播。
        :type EnableMulticast: bool
        :param _CreatedTime: 创建时间。
        :type CreatedTime: str
        :param _DnsServerSet: `DNS`列表。
        :type DnsServerSet: list of str
        :param _DomainName: `DHCP`域名选项值。
        :type DomainName: str
        :param _DhcpOptionsId: `DHCP`选项集`ID`。
        :type DhcpOptionsId: str
        :param _EnableDhcp: 是否开启`DHCP`。
        :type EnableDhcp: bool
        :param _Ipv6CidrBlock: `VPC`的`IPv6` `CIDR`。
        :type Ipv6CidrBlock: str
        :param _TagSet: 标签键值对
        :type TagSet: list of Tag
        :param _AssistantCidrSet: 辅助CIDR
注意：此字段可能返回 null，表示取不到有效值。
        :type AssistantCidrSet: list of AssistantCidr
        """
        self._VpcName = None
        self._VpcId = None
        self._CidrBlock = None
        self._IsDefault = None
        self._EnableMulticast = None
        self._CreatedTime = None
        self._DnsServerSet = None
        self._DomainName = None
        self._DhcpOptionsId = None
        self._EnableDhcp = None
        self._Ipv6CidrBlock = None
        self._TagSet = None
        self._AssistantCidrSet = None

    @property
    def VpcName(self):
        return self._VpcName

    @VpcName.setter
    def VpcName(self, VpcName):
        self._VpcName = VpcName

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def CidrBlock(self):
        return self._CidrBlock

    @CidrBlock.setter
    def CidrBlock(self, CidrBlock):
        self._CidrBlock = CidrBlock

    @property
    def IsDefault(self):
        return self._IsDefault

    @IsDefault.setter
    def IsDefault(self, IsDefault):
        self._IsDefault = IsDefault

    @property
    def EnableMulticast(self):
        return self._EnableMulticast

    @EnableMulticast.setter
    def EnableMulticast(self, EnableMulticast):
        self._EnableMulticast = EnableMulticast

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def DnsServerSet(self):
        return self._DnsServerSet

    @DnsServerSet.setter
    def DnsServerSet(self, DnsServerSet):
        self._DnsServerSet = DnsServerSet

    @property
    def DomainName(self):
        return self._DomainName

    @DomainName.setter
    def DomainName(self, DomainName):
        self._DomainName = DomainName

    @property
    def DhcpOptionsId(self):
        return self._DhcpOptionsId

    @DhcpOptionsId.setter
    def DhcpOptionsId(self, DhcpOptionsId):
        self._DhcpOptionsId = DhcpOptionsId

    @property
    def EnableDhcp(self):
        return self._EnableDhcp

    @EnableDhcp.setter
    def EnableDhcp(self, EnableDhcp):
        self._EnableDhcp = EnableDhcp

    @property
    def Ipv6CidrBlock(self):
        return self._Ipv6CidrBlock

    @Ipv6CidrBlock.setter
    def Ipv6CidrBlock(self, Ipv6CidrBlock):
        self._Ipv6CidrBlock = Ipv6CidrBlock

    @property
    def TagSet(self):
        return self._TagSet

    @TagSet.setter
    def TagSet(self, TagSet):
        self._TagSet = TagSet

    @property
    def AssistantCidrSet(self):
        return self._AssistantCidrSet

    @AssistantCidrSet.setter
    def AssistantCidrSet(self, AssistantCidrSet):
        self._AssistantCidrSet = AssistantCidrSet


    def _deserialize(self, params):
        self._VpcName = params.get("VpcName")
        self._VpcId = params.get("VpcId")
        self._CidrBlock = params.get("CidrBlock")
        self._IsDefault = params.get("IsDefault")
        self._EnableMulticast = params.get("EnableMulticast")
        self._CreatedTime = params.get("CreatedTime")
        self._DnsServerSet = params.get("DnsServerSet")
        self._DomainName = params.get("DomainName")
        self._DhcpOptionsId = params.get("DhcpOptionsId")
        self._EnableDhcp = params.get("EnableDhcp")
        self._Ipv6CidrBlock = params.get("Ipv6CidrBlock")
        if params.get("TagSet") is not None:
            self._TagSet = []
            for item in params.get("TagSet"):
                obj = Tag()
                obj._deserialize(item)
                self._TagSet.append(obj)
        if params.get("AssistantCidrSet") is not None:
            self._AssistantCidrSet = []
            for item in params.get("AssistantCidrSet"):
                obj = AssistantCidr()
                obj._deserialize(item)
                self._AssistantCidrSet.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VpcEndPointServiceUser(AbstractModel):
    """终端节点服务的服务白名单对象详情。

    """

    def __init__(self):
        r"""
        :param _Owner: AppId。
        :type Owner: int
        :param _UserUin: Uin。
        :type UserUin: str
        :param _Description: 描述信息。
        :type Description: str
        :param _CreateTime: 创建时间。
        :type CreateTime: str
        :param _EndPointServiceId: 终端节点服务ID。
        :type EndPointServiceId: str
        """
        self._Owner = None
        self._UserUin = None
        self._Description = None
        self._CreateTime = None
        self._EndPointServiceId = None

    @property
    def Owner(self):
        return self._Owner

    @Owner.setter
    def Owner(self, Owner):
        self._Owner = Owner

    @property
    def UserUin(self):
        return self._UserUin

    @UserUin.setter
    def UserUin(self, UserUin):
        self._UserUin = UserUin

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def EndPointServiceId(self):
        return self._EndPointServiceId

    @EndPointServiceId.setter
    def EndPointServiceId(self, EndPointServiceId):
        self._EndPointServiceId = EndPointServiceId


    def _deserialize(self, params):
        self._Owner = params.get("Owner")
        self._UserUin = params.get("UserUin")
        self._Description = params.get("Description")
        self._CreateTime = params.get("CreateTime")
        self._EndPointServiceId = params.get("EndPointServiceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VpcIpv6Address(AbstractModel):
    """VPC内网IPv6对象。

    """

    def __init__(self):
        r"""
        :param _Ipv6Address: `VPC`内`IPv6`地址。
        :type Ipv6Address: str
        :param _CidrBlock: 所属子网 `IPv6` `CIDR`。
        :type CidrBlock: str
        :param _Ipv6AddressType: `IPv6`类型。
        :type Ipv6AddressType: str
        :param _CreatedTime: `IPv6`申请时间。
        :type CreatedTime: str
        """
        self._Ipv6Address = None
        self._CidrBlock = None
        self._Ipv6AddressType = None
        self._CreatedTime = None

    @property
    def Ipv6Address(self):
        return self._Ipv6Address

    @Ipv6Address.setter
    def Ipv6Address(self, Ipv6Address):
        self._Ipv6Address = Ipv6Address

    @property
    def CidrBlock(self):
        return self._CidrBlock

    @CidrBlock.setter
    def CidrBlock(self, CidrBlock):
        self._CidrBlock = CidrBlock

    @property
    def Ipv6AddressType(self):
        return self._Ipv6AddressType

    @Ipv6AddressType.setter
    def Ipv6AddressType(self, Ipv6AddressType):
        self._Ipv6AddressType = Ipv6AddressType

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime


    def _deserialize(self, params):
        self._Ipv6Address = params.get("Ipv6Address")
        self._CidrBlock = params.get("CidrBlock")
        self._Ipv6AddressType = params.get("Ipv6AddressType")
        self._CreatedTime = params.get("CreatedTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VpcLimit(AbstractModel):
    """私有网络配额

    """

    def __init__(self):
        r"""
        :param _LimitType: 私有网络配额描述
        :type LimitType: str
        :param _LimitValue: 私有网络配额值
        :type LimitValue: int
        """
        self._LimitType = None
        self._LimitValue = None

    @property
    def LimitType(self):
        return self._LimitType

    @LimitType.setter
    def LimitType(self, LimitType):
        self._LimitType = LimitType

    @property
    def LimitValue(self):
        return self._LimitValue

    @LimitValue.setter
    def LimitValue(self, LimitValue):
        self._LimitValue = LimitValue


    def _deserialize(self, params):
        self._LimitType = params.get("LimitType")
        self._LimitValue = params.get("LimitValue")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VpcPrivateIpAddress(AbstractModel):
    """VPC内网IP对象。

    """

    def __init__(self):
        r"""
        :param _PrivateIpAddress: `VPC`内网`IP`。
        :type PrivateIpAddress: str
        :param _CidrBlock: 所属子网`CIDR`。
        :type CidrBlock: str
        :param _PrivateIpAddressType: 内网`IP`类型。
        :type PrivateIpAddressType: str
        :param _CreatedTime: `IP`申请时间。
        :type CreatedTime: str
        """
        self._PrivateIpAddress = None
        self._CidrBlock = None
        self._PrivateIpAddressType = None
        self._CreatedTime = None

    @property
    def PrivateIpAddress(self):
        return self._PrivateIpAddress

    @PrivateIpAddress.setter
    def PrivateIpAddress(self, PrivateIpAddress):
        self._PrivateIpAddress = PrivateIpAddress

    @property
    def CidrBlock(self):
        return self._CidrBlock

    @CidrBlock.setter
    def CidrBlock(self, CidrBlock):
        self._CidrBlock = CidrBlock

    @property
    def PrivateIpAddressType(self):
        return self._PrivateIpAddressType

    @PrivateIpAddressType.setter
    def PrivateIpAddressType(self, PrivateIpAddressType):
        self._PrivateIpAddressType = PrivateIpAddressType

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime


    def _deserialize(self, params):
        self._PrivateIpAddress = params.get("PrivateIpAddress")
        self._CidrBlock = params.get("CidrBlock")
        self._PrivateIpAddressType = params.get("PrivateIpAddressType")
        self._CreatedTime = params.get("CreatedTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VpcTaskResultDetailInfo(AbstractModel):
    """Vpc任务结果详细信息。

    """

    def __init__(self):
        r"""
        :param _ResourceId: 资源ID。
注意：此字段可能返回 null，表示取不到有效值。
        :type ResourceId: str
        :param _Status: 状态。
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: str
        """
        self._ResourceId = None
        self._Status = None

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    def _deserialize(self, params):
        self._ResourceId = params.get("ResourceId")
        self._Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VpnConnection(AbstractModel):
    """VPN通道对象。

    """

    def __init__(self):
        r"""
        :param _VpnConnectionId: 通道实例ID。
        :type VpnConnectionId: str
        :param _VpnConnectionName: 通道名称。
        :type VpnConnectionName: str
        :param _VpcId: VPC实例ID。
        :type VpcId: str
        :param _VpnGatewayId: VPN网关实例ID。
        :type VpnGatewayId: str
        :param _CustomerGatewayId: 对端网关实例ID。
        :type CustomerGatewayId: str
        :param _PreShareKey: 预共享密钥。
        :type PreShareKey: str
        :param _VpnProto: 通道传输协议。
        :type VpnProto: str
        :param _EncryptProto: 通道加密协议。
        :type EncryptProto: str
        :param _RouteType: 路由类型。
        :type RouteType: str
        :param _CreatedTime: 创建时间。
        :type CreatedTime: str
        :param _State: 通道的生产状态，PENDING：生产中，AVAILABLE：运行中，DELETING：删除中。
        :type State: str
        :param _NetStatus: 通道连接状态，AVAILABLE：已连接。
        :type NetStatus: str
        :param _SecurityPolicyDatabaseSet: SPD。
        :type SecurityPolicyDatabaseSet: list of SecurityPolicyDatabase
        :param _IKEOptionsSpecification: IKE选项。
        :type IKEOptionsSpecification: :class:`tencentcloud.vpc.v20170312.models.IKEOptionsSpecification`
        :param _IPSECOptionsSpecification: IPSEC选择。
        :type IPSECOptionsSpecification: :class:`tencentcloud.vpc.v20170312.models.IPSECOptionsSpecification`
        :param _EnableHealthCheck: 是否支持健康状态探测
        :type EnableHealthCheck: bool
        :param _HealthCheckLocalIp: 本端探测ip
        :type HealthCheckLocalIp: str
        :param _HealthCheckRemoteIp: 对端探测ip
        :type HealthCheckRemoteIp: str
        :param _HealthCheckStatus: 通道健康检查状态，AVAILABLE：正常，UNAVAILABLE：不正常。 未配置健康检查不返回该对象
        :type HealthCheckStatus: str
        :param _DpdEnable: DPD探测开关。默认为0，表示关闭DPD探测。可选值：0（关闭），1（开启）
注意：此字段可能返回 null，表示取不到有效值。
        :type DpdEnable: int
        :param _DpdTimeout: DPD超时时间。即探测确认对端不存在需要的时间。
注意：此字段可能返回 null，表示取不到有效值。
        :type DpdTimeout: str
        :param _DpdAction: DPD超时后的动作。默认为clear。dpdEnable为1（开启）时有效。可取值为clear（断开）和restart（重试）
注意：此字段可能返回 null，表示取不到有效值。
        :type DpdAction: str
        :param _TagSet: 标签键值对数组
        :type TagSet: list of Tag
        :param _NegotiationType: 协商类型
注意：此字段可能返回 null，表示取不到有效值。
        :type NegotiationType: str
        :param _BgpConfig: Bgp配置信息
注意：此字段可能返回 null，表示取不到有效值。
        :type BgpConfig: :class:`tencentcloud.vpc.v20170312.models.BgpConfigAndAsn`
        """
        self._VpnConnectionId = None
        self._VpnConnectionName = None
        self._VpcId = None
        self._VpnGatewayId = None
        self._CustomerGatewayId = None
        self._PreShareKey = None
        self._VpnProto = None
        self._EncryptProto = None
        self._RouteType = None
        self._CreatedTime = None
        self._State = None
        self._NetStatus = None
        self._SecurityPolicyDatabaseSet = None
        self._IKEOptionsSpecification = None
        self._IPSECOptionsSpecification = None
        self._EnableHealthCheck = None
        self._HealthCheckLocalIp = None
        self._HealthCheckRemoteIp = None
        self._HealthCheckStatus = None
        self._DpdEnable = None
        self._DpdTimeout = None
        self._DpdAction = None
        self._TagSet = None
        self._NegotiationType = None
        self._BgpConfig = None

    @property
    def VpnConnectionId(self):
        return self._VpnConnectionId

    @VpnConnectionId.setter
    def VpnConnectionId(self, VpnConnectionId):
        self._VpnConnectionId = VpnConnectionId

    @property
    def VpnConnectionName(self):
        return self._VpnConnectionName

    @VpnConnectionName.setter
    def VpnConnectionName(self, VpnConnectionName):
        self._VpnConnectionName = VpnConnectionName

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def CustomerGatewayId(self):
        return self._CustomerGatewayId

    @CustomerGatewayId.setter
    def CustomerGatewayId(self, CustomerGatewayId):
        self._CustomerGatewayId = CustomerGatewayId

    @property
    def PreShareKey(self):
        return self._PreShareKey

    @PreShareKey.setter
    def PreShareKey(self, PreShareKey):
        self._PreShareKey = PreShareKey

    @property
    def VpnProto(self):
        return self._VpnProto

    @VpnProto.setter
    def VpnProto(self, VpnProto):
        self._VpnProto = VpnProto

    @property
    def EncryptProto(self):
        return self._EncryptProto

    @EncryptProto.setter
    def EncryptProto(self, EncryptProto):
        self._EncryptProto = EncryptProto

    @property
    def RouteType(self):
        return self._RouteType

    @RouteType.setter
    def RouteType(self, RouteType):
        self._RouteType = RouteType

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def NetStatus(self):
        return self._NetStatus

    @NetStatus.setter
    def NetStatus(self, NetStatus):
        self._NetStatus = NetStatus

    @property
    def SecurityPolicyDatabaseSet(self):
        return self._SecurityPolicyDatabaseSet

    @SecurityPolicyDatabaseSet.setter
    def SecurityPolicyDatabaseSet(self, SecurityPolicyDatabaseSet):
        self._SecurityPolicyDatabaseSet = SecurityPolicyDatabaseSet

    @property
    def IKEOptionsSpecification(self):
        return self._IKEOptionsSpecification

    @IKEOptionsSpecification.setter
    def IKEOptionsSpecification(self, IKEOptionsSpecification):
        self._IKEOptionsSpecification = IKEOptionsSpecification

    @property
    def IPSECOptionsSpecification(self):
        return self._IPSECOptionsSpecification

    @IPSECOptionsSpecification.setter
    def IPSECOptionsSpecification(self, IPSECOptionsSpecification):
        self._IPSECOptionsSpecification = IPSECOptionsSpecification

    @property
    def EnableHealthCheck(self):
        return self._EnableHealthCheck

    @EnableHealthCheck.setter
    def EnableHealthCheck(self, EnableHealthCheck):
        self._EnableHealthCheck = EnableHealthCheck

    @property
    def HealthCheckLocalIp(self):
        return self._HealthCheckLocalIp

    @HealthCheckLocalIp.setter
    def HealthCheckLocalIp(self, HealthCheckLocalIp):
        self._HealthCheckLocalIp = HealthCheckLocalIp

    @property
    def HealthCheckRemoteIp(self):
        return self._HealthCheckRemoteIp

    @HealthCheckRemoteIp.setter
    def HealthCheckRemoteIp(self, HealthCheckRemoteIp):
        self._HealthCheckRemoteIp = HealthCheckRemoteIp

    @property
    def HealthCheckStatus(self):
        return self._HealthCheckStatus

    @HealthCheckStatus.setter
    def HealthCheckStatus(self, HealthCheckStatus):
        self._HealthCheckStatus = HealthCheckStatus

    @property
    def DpdEnable(self):
        return self._DpdEnable

    @DpdEnable.setter
    def DpdEnable(self, DpdEnable):
        self._DpdEnable = DpdEnable

    @property
    def DpdTimeout(self):
        return self._DpdTimeout

    @DpdTimeout.setter
    def DpdTimeout(self, DpdTimeout):
        self._DpdTimeout = DpdTimeout

    @property
    def DpdAction(self):
        return self._DpdAction

    @DpdAction.setter
    def DpdAction(self, DpdAction):
        self._DpdAction = DpdAction

    @property
    def TagSet(self):
        return self._TagSet

    @TagSet.setter
    def TagSet(self, TagSet):
        self._TagSet = TagSet

    @property
    def NegotiationType(self):
        return self._NegotiationType

    @NegotiationType.setter
    def NegotiationType(self, NegotiationType):
        self._NegotiationType = NegotiationType

    @property
    def BgpConfig(self):
        return self._BgpConfig

    @BgpConfig.setter
    def BgpConfig(self, BgpConfig):
        self._BgpConfig = BgpConfig


    def _deserialize(self, params):
        self._VpnConnectionId = params.get("VpnConnectionId")
        self._VpnConnectionName = params.get("VpnConnectionName")
        self._VpcId = params.get("VpcId")
        self._VpnGatewayId = params.get("VpnGatewayId")
        self._CustomerGatewayId = params.get("CustomerGatewayId")
        self._PreShareKey = params.get("PreShareKey")
        self._VpnProto = params.get("VpnProto")
        self._EncryptProto = params.get("EncryptProto")
        self._RouteType = params.get("RouteType")
        self._CreatedTime = params.get("CreatedTime")
        self._State = params.get("State")
        self._NetStatus = params.get("NetStatus")
        if params.get("SecurityPolicyDatabaseSet") is not None:
            self._SecurityPolicyDatabaseSet = []
            for item in params.get("SecurityPolicyDatabaseSet"):
                obj = SecurityPolicyDatabase()
                obj._deserialize(item)
                self._SecurityPolicyDatabaseSet.append(obj)
        if params.get("IKEOptionsSpecification") is not None:
            self._IKEOptionsSpecification = IKEOptionsSpecification()
            self._IKEOptionsSpecification._deserialize(params.get("IKEOptionsSpecification"))
        if params.get("IPSECOptionsSpecification") is not None:
            self._IPSECOptionsSpecification = IPSECOptionsSpecification()
            self._IPSECOptionsSpecification._deserialize(params.get("IPSECOptionsSpecification"))
        self._EnableHealthCheck = params.get("EnableHealthCheck")
        self._HealthCheckLocalIp = params.get("HealthCheckLocalIp")
        self._HealthCheckRemoteIp = params.get("HealthCheckRemoteIp")
        self._HealthCheckStatus = params.get("HealthCheckStatus")
        self._DpdEnable = params.get("DpdEnable")
        self._DpdTimeout = params.get("DpdTimeout")
        self._DpdAction = params.get("DpdAction")
        if params.get("TagSet") is not None:
            self._TagSet = []
            for item in params.get("TagSet"):
                obj = Tag()
                obj._deserialize(item)
                self._TagSet.append(obj)
        self._NegotiationType = params.get("NegotiationType")
        if params.get("BgpConfig") is not None:
            self._BgpConfig = BgpConfigAndAsn()
            self._BgpConfig._deserialize(params.get("BgpConfig"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VpnGateway(AbstractModel):
    """VPN网关对象。

    """

    def __init__(self):
        r"""
        :param _VpnGatewayId: 网关实例ID。
        :type VpnGatewayId: str
        :param _VpcId: VPC实例ID。
        :type VpcId: str
        :param _VpnGatewayName: 网关实例名称。
        :type VpnGatewayName: str
        :param _Type: 网关实例类型：'IPSEC', 'SSL','CCN','SSL_CCN'。
        :type Type: str
        :param _State: 网关实例状态， 'PENDING'：生产中，'PENDING_ERROR'：生产失败，'DELETING'：删除中，'DELETING_ERROR'：删除失败，'AVAILABLE'：运行中。
        :type State: str
        :param _PublicIpAddress: 网关公网IP。
        :type PublicIpAddress: str
        :param _RenewFlag: 网关续费类型：'NOTIFY_AND_MANUAL_RENEW'：手动续费，'NOTIFY_AND_AUTO_RENEW'：自动续费，'NOT_NOTIFY_AND_NOT_RENEW'：到期不续费。
        :type RenewFlag: str
        :param _InstanceChargeType: 网关付费类型：POSTPAID_BY_HOUR：按量计费，PREPAID：包年包月预付费。
        :type InstanceChargeType: str
        :param _InternetMaxBandwidthOut: 网关出带宽。
        :type InternetMaxBandwidthOut: int
        :param _CreatedTime: 创建时间。
        :type CreatedTime: str
        :param _ExpiredTime: 预付费网关过期时间。
        :type ExpiredTime: str
        :param _IsAddressBlocked: 公网IP是否被封堵。
        :type IsAddressBlocked: bool
        :param _NewPurchasePlan: 计费模式变更，PREPAID_TO_POSTPAID：包年包月预付费到期转按小时后付费。
        :type NewPurchasePlan: str
        :param _RestrictState: 网关计费状态，PROTECTIVELY_ISOLATED：被安全隔离的实例，NORMAL：正常。
        :type RestrictState: str
        :param _Zone: 可用区，如：ap-guangzhou-2。
        :type Zone: str
        :param _VpnGatewayQuotaSet: 网关带宽配额信息。
        :type VpnGatewayQuotaSet: list of VpnGatewayQuota
        :param _Version: 网关实例版本信息。
        :type Version: str
        :param _NetworkInstanceId: Type值为CCN时，该值表示云联网实例ID。
        :type NetworkInstanceId: str
        :param _CdcId: CDC 实例ID。
        :type CdcId: str
        :param _MaxConnection: SSL-VPN 客户端连接数。
        :type MaxConnection: int
        """
        self._VpnGatewayId = None
        self._VpcId = None
        self._VpnGatewayName = None
        self._Type = None
        self._State = None
        self._PublicIpAddress = None
        self._RenewFlag = None
        self._InstanceChargeType = None
        self._InternetMaxBandwidthOut = None
        self._CreatedTime = None
        self._ExpiredTime = None
        self._IsAddressBlocked = None
        self._NewPurchasePlan = None
        self._RestrictState = None
        self._Zone = None
        self._VpnGatewayQuotaSet = None
        self._Version = None
        self._NetworkInstanceId = None
        self._CdcId = None
        self._MaxConnection = None

    @property
    def VpnGatewayId(self):
        return self._VpnGatewayId

    @VpnGatewayId.setter
    def VpnGatewayId(self, VpnGatewayId):
        self._VpnGatewayId = VpnGatewayId

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def VpnGatewayName(self):
        return self._VpnGatewayName

    @VpnGatewayName.setter
    def VpnGatewayName(self, VpnGatewayName):
        self._VpnGatewayName = VpnGatewayName

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def PublicIpAddress(self):
        return self._PublicIpAddress

    @PublicIpAddress.setter
    def PublicIpAddress(self, PublicIpAddress):
        self._PublicIpAddress = PublicIpAddress

    @property
    def RenewFlag(self):
        return self._RenewFlag

    @RenewFlag.setter
    def RenewFlag(self, RenewFlag):
        self._RenewFlag = RenewFlag

    @property
    def InstanceChargeType(self):
        return self._InstanceChargeType

    @InstanceChargeType.setter
    def InstanceChargeType(self, InstanceChargeType):
        self._InstanceChargeType = InstanceChargeType

    @property
    def InternetMaxBandwidthOut(self):
        return self._InternetMaxBandwidthOut

    @InternetMaxBandwidthOut.setter
    def InternetMaxBandwidthOut(self, InternetMaxBandwidthOut):
        self._InternetMaxBandwidthOut = InternetMaxBandwidthOut

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def ExpiredTime(self):
        return self._ExpiredTime

    @ExpiredTime.setter
    def ExpiredTime(self, ExpiredTime):
        self._ExpiredTime = ExpiredTime

    @property
    def IsAddressBlocked(self):
        return self._IsAddressBlocked

    @IsAddressBlocked.setter
    def IsAddressBlocked(self, IsAddressBlocked):
        self._IsAddressBlocked = IsAddressBlocked

    @property
    def NewPurchasePlan(self):
        return self._NewPurchasePlan

    @NewPurchasePlan.setter
    def NewPurchasePlan(self, NewPurchasePlan):
        self._NewPurchasePlan = NewPurchasePlan

    @property
    def RestrictState(self):
        return self._RestrictState

    @RestrictState.setter
    def RestrictState(self, RestrictState):
        self._RestrictState = RestrictState

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def VpnGatewayQuotaSet(self):
        return self._VpnGatewayQuotaSet

    @VpnGatewayQuotaSet.setter
    def VpnGatewayQuotaSet(self, VpnGatewayQuotaSet):
        self._VpnGatewayQuotaSet = VpnGatewayQuotaSet

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def NetworkInstanceId(self):
        return self._NetworkInstanceId

    @NetworkInstanceId.setter
    def NetworkInstanceId(self, NetworkInstanceId):
        self._NetworkInstanceId = NetworkInstanceId

    @property
    def CdcId(self):
        return self._CdcId

    @CdcId.setter
    def CdcId(self, CdcId):
        self._CdcId = CdcId

    @property
    def MaxConnection(self):
        return self._MaxConnection

    @MaxConnection.setter
    def MaxConnection(self, MaxConnection):
        self._MaxConnection = MaxConnection


    def _deserialize(self, params):
        self._VpnGatewayId = params.get("VpnGatewayId")
        self._VpcId = params.get("VpcId")
        self._VpnGatewayName = params.get("VpnGatewayName")
        self._Type = params.get("Type")
        self._State = params.get("State")
        self._PublicIpAddress = params.get("PublicIpAddress")
        self._RenewFlag = params.get("RenewFlag")
        self._InstanceChargeType = params.get("InstanceChargeType")
        self._InternetMaxBandwidthOut = params.get("InternetMaxBandwidthOut")
        self._CreatedTime = params.get("CreatedTime")
        self._ExpiredTime = params.get("ExpiredTime")
        self._IsAddressBlocked = params.get("IsAddressBlocked")
        self._NewPurchasePlan = params.get("NewPurchasePlan")
        self._RestrictState = params.get("RestrictState")
        self._Zone = params.get("Zone")
        if params.get("VpnGatewayQuotaSet") is not None:
            self._VpnGatewayQuotaSet = []
            for item in params.get("VpnGatewayQuotaSet"):
                obj = VpnGatewayQuota()
                obj._deserialize(item)
                self._VpnGatewayQuotaSet.append(obj)
        self._Version = params.get("Version")
        self._NetworkInstanceId = params.get("NetworkInstanceId")
        self._CdcId = params.get("CdcId")
        self._MaxConnection = params.get("MaxConnection")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VpnGatewayQuota(AbstractModel):
    """VPN网关配额对象

    """

    def __init__(self):
        r"""
        :param _Bandwidth: 带宽配额
        :type Bandwidth: int
        :param _Cname: 配额中文名称
        :type Cname: str
        :param _Name: 配额英文名称
        :type Name: str
        """
        self._Bandwidth = None
        self._Cname = None
        self._Name = None

    @property
    def Bandwidth(self):
        return self._Bandwidth

    @Bandwidth.setter
    def Bandwidth(self, Bandwidth):
        self._Bandwidth = Bandwidth

    @property
    def Cname(self):
        return self._Cname

    @Cname.setter
    def Cname(self, Cname):
        self._Cname = Cname

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name


    def _deserialize(self, params):
        self._Bandwidth = params.get("Bandwidth")
        self._Cname = params.get("Cname")
        self._Name = params.get("Name")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VpnGatewayRoute(AbstractModel):
    """VPN网关目的路由

    """

    def __init__(self):
        r"""
        :param _DestinationCidrBlock: 目的端IDC网段。
        :type DestinationCidrBlock: str
        :param _InstanceType: 下一跳类型（关联实例类型）可选值："VPNCONN"（VPN通道）， "CCN"（CCN实例）。
        :type InstanceType: str
        :param _InstanceId: 下一跳实例ID。
        :type InstanceId: str
        :param _Priority: 优先级，可选值：0，100。
        :type Priority: int
        :param _Status: 启用状态，可选值："ENABLE"（启用），"DISABLE"  (禁用)。
        :type Status: str
        :param _RouteId: 路由条目ID。
        :type RouteId: str
        :param _Type: 路由类型，可选值："VPC"（VPC路由），"CCN"（云联网传播路由），"Static"（静态路由），"BGP"（BGP路由）。
        :type Type: str
        :param _CreateTime: 创建时间。
        :type CreateTime: str
        :param _UpdateTime: 更新时间。
        :type UpdateTime: str
        """
        self._DestinationCidrBlock = None
        self._InstanceType = None
        self._InstanceId = None
        self._Priority = None
        self._Status = None
        self._RouteId = None
        self._Type = None
        self._CreateTime = None
        self._UpdateTime = None

    @property
    def DestinationCidrBlock(self):
        return self._DestinationCidrBlock

    @DestinationCidrBlock.setter
    def DestinationCidrBlock(self, DestinationCidrBlock):
        self._DestinationCidrBlock = DestinationCidrBlock

    @property
    def InstanceType(self):
        return self._InstanceType

    @InstanceType.setter
    def InstanceType(self, InstanceType):
        self._InstanceType = InstanceType

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def Priority(self):
        return self._Priority

    @Priority.setter
    def Priority(self, Priority):
        self._Priority = Priority

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def RouteId(self):
        return self._RouteId

    @RouteId.setter
    def RouteId(self, RouteId):
        self._RouteId = RouteId

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime


    def _deserialize(self, params):
        self._DestinationCidrBlock = params.get("DestinationCidrBlock")
        self._InstanceType = params.get("InstanceType")
        self._InstanceId = params.get("InstanceId")
        self._Priority = params.get("Priority")
        self._Status = params.get("Status")
        self._RouteId = params.get("RouteId")
        self._Type = params.get("Type")
        self._CreateTime = params.get("CreateTime")
        self._UpdateTime = params.get("UpdateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VpnGatewayRouteModify(AbstractModel):
    """修改VPN状态参数

    """

    def __init__(self):
        r"""
        :param _RouteId: VPN网关路由ID。
        :type RouteId: str
        :param _Status: VPN网关状态, ENABLE 启用, DISABLE禁用。
        :type Status: str
        """
        self._RouteId = None
        self._Status = None

    @property
    def RouteId(self):
        return self._RouteId

    @RouteId.setter
    def RouteId(self, RouteId):
        self._RouteId = RouteId

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    def _deserialize(self, params):
        self._RouteId = params.get("RouteId")
        self._Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VpngwCcnRoutes(AbstractModel):
    """VPN网关云联网路由信息

    """

    def __init__(self):
        r"""
        :param _RouteId: 路由信息ID。
        :type RouteId: str
        :param _Status: 路由信息是否启用。
ENABLE：启用该路由
DISABLE：不启用该路由
        :type Status: str
        :param _DestinationCidrBlock: 路由CIDR。
        :type DestinationCidrBlock: str
        """
        self._RouteId = None
        self._Status = None
        self._DestinationCidrBlock = None

    @property
    def RouteId(self):
        return self._RouteId

    @RouteId.setter
    def RouteId(self, RouteId):
        self._RouteId = RouteId

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def DestinationCidrBlock(self):
        return self._DestinationCidrBlock

    @DestinationCidrBlock.setter
    def DestinationCidrBlock(self, DestinationCidrBlock):
        self._DestinationCidrBlock = DestinationCidrBlock


    def _deserialize(self, params):
        self._RouteId = params.get("RouteId")
        self._Status = params.get("Status")
        self._DestinationCidrBlock = params.get("DestinationCidrBlock")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class WithdrawNotifyRoutesRequest(AbstractModel):
    """WithdrawNotifyRoutes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RouteTableId: 路由表唯一ID。
        :type RouteTableId: str
        :param _RouteItemIds: 路由策略唯一ID。
        :type RouteItemIds: list of str
        """
        self._RouteTableId = None
        self._RouteItemIds = None

    @property
    def RouteTableId(self):
        return self._RouteTableId

    @RouteTableId.setter
    def RouteTableId(self, RouteTableId):
        self._RouteTableId = RouteTableId

    @property
    def RouteItemIds(self):
        return self._RouteItemIds

    @RouteItemIds.setter
    def RouteItemIds(self, RouteItemIds):
        self._RouteItemIds = RouteItemIds


    def _deserialize(self, params):
        self._RouteTableId = params.get("RouteTableId")
        self._RouteItemIds = params.get("RouteItemIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class WithdrawNotifyRoutesResponse(AbstractModel):
    """WithdrawNotifyRoutes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，由服务端生成，每次请求都会返回（若请求因其他原因未能抵达服务端，则该次请求不会获得 RequestId）。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")