""" Code is generated by ucloud-model, DO NOT EDIT IT. """


from ucloud.core.typesystem import schema, fields
from ucloud.services.ipsecvpn.schemas import models

""" IPSecVPN API Schema
"""


"""
API: DescribeRemoteVPNGateway

获取客户VPN网关信息
"""


class DescribeRemoteVPNGatewayRequestSchema(schema.RequestSchema):
    """DescribeRemoteVPNGateway - 获取客户VPN网关信息"""

    fields = {
        "Limit": fields.Int(required=False, dump_to="Limit"),
        "Offset": fields.Int(required=False, dump_to="Offset"),
        "ProjectId": fields.Str(required=True, dump_to="ProjectId"),
        "Region": fields.Str(required=True, dump_to="Region"),
        "RemoteVPNGatewayIds": fields.List(fields.Str()),
        "Tag": fields.Str(required=False, dump_to="Tag"),
    }


class DescribeRemoteVPNGatewayResponseSchema(schema.ResponseSchema):
    """DescribeRemoteVPNGateway - 获取客户VPN网关信息"""

    fields = {
        "DataSet": fields.List(
            models.RemoteVPNGatewayDataSetSchema(),
            required=False,
            load_from="DataSet",
        ),
        "TotalCount": fields.Int(required=False, load_from="TotalCount"),
    }


"""
API: DescribeVPNTunnel

获取VPN隧道信息
"""


class DescribeVPNTunnelRequestSchema(schema.RequestSchema):
    """DescribeVPNTunnel - 获取VPN隧道信息"""

    fields = {
        "Limit": fields.Int(required=False, dump_to="Limit"),
        "Offset": fields.Int(required=False, dump_to="Offset"),
        "ProjectId": fields.Str(required=True, dump_to="ProjectId"),
        "Region": fields.Str(required=True, dump_to="Region"),
        "Tag": fields.Str(required=False, dump_to="Tag"),
        "VPNTunnelIds": fields.List(fields.Str()),
    }


class DescribeVPNTunnelResponseSchema(schema.ResponseSchema):
    """DescribeVPNTunnel - 获取VPN隧道信息"""

    fields = {
        "DataSet": fields.List(
            models.VPNTunnelDataSetSchema(), required=False, load_from="DataSet"
        ),
        "TotalCount": fields.Int(required=False, load_from="TotalCount"),
    }
