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

from ucloud.core.typesystem import schema, fields


class InterRegionBandwidthSchema(schema.ResponseSchema):
    """InterRegionBandwidth - 跨域带宽"""

    fields = {
        "Bandwidth": fields.Int(required=True, load_from="Bandwidth"),
        "ChargeType": fields.Str(required=True, load_from="ChargeType"),
        "CreateTime": fields.Int(required=True, load_from="CreateTime"),
        "ExpireTime": fields.Int(required=True, load_from="ExpireTime"),
        "InterRegionBandwidthId": fields.Str(
            required=True, load_from="InterRegionBandwidthId"
        ),
        "PayMode": fields.Str(required=True, load_from="PayMode"),
        "Region0": fields.Str(required=True, load_from="Region0"),
        "Region1": fields.Str(required=True, load_from="Region1"),
        "State": fields.Int(required=True, load_from="State"),
        "UGNId": fields.Str(required=True, load_from="UGNId"),
    }


class UGNSchema(schema.ResponseSchema):
    """UGN - 云联网信息"""

    fields = {
        "CreateTime": fields.Int(required=True, load_from="CreateTime"),
        "Instances": fields.List(fields.Str()),
        "InterRegionBandwidths": fields.List(fields.Str()),
        "Name": fields.Str(required=True, load_from="Name"),
        "Remark": fields.Str(required=True, load_from="Remark"),
        "RouteRules": fields.List(fields.Str()),
        "Tag": fields.Str(required=True, load_from="Tag"),
        "UGNId": fields.Str(required=True, load_from="UGNId"),
    }


class InstanceSchema(schema.ResponseSchema):
    """Instance - 云联网实例信息"""

    fields = {
        "CreateTime": fields.Int(required=True, load_from="CreateTime"),
        "InstanceId": fields.Str(required=True, load_from="InstanceId"),
        "InstanceOrganizationName": fields.Str(
            required=True, load_from="InstanceOrganizationName"
        ),
        "InstanceProjectId": fields.Str(
            required=True, load_from="InstanceProjectId"
        ),
        "InstanceRegion": fields.Str(required=True, load_from="InstanceRegion"),
        "InstanceType": fields.Str(required=True, load_from="InstanceType"),
        "Networks": fields.List(fields.Str()),
        "State": fields.Int(required=True, load_from="State"),
        "UGNId": fields.Str(required=True, load_from="UGNId"),
    }


class RouteRuleSchema(schema.ResponseSchema):
    """RouteRule - 云联网路由规则"""

    fields = {
        "CreateTime": fields.Int(required=True, load_from="CreateTime"),
        "DeriveInstanceId": fields.Str(
            required=True, load_from="DeriveInstanceId"
        ),
        "DeriveInstanceRegion": fields.Str(
            required=True, load_from="DeriveInstanceRegion"
        ),
        "DeriveInstanceType": fields.Str(
            required=True, load_from="DeriveInstanceType"
        ),
        "DeriveRouteRuleId": fields.Str(
            required=True, load_from="DeriveRouteRuleId"
        ),
        "DeriveRouteTableId": fields.Str(
            required=True, load_from="DeriveRouteTableId"
        ),
        "DstAddr": fields.Str(required=True, load_from="DstAddr"),
        "Enable": fields.Bool(required=True, load_from="Enable"),
        "NextHopId": fields.Str(required=True, load_from="NextHopId"),
        "NextHopType": fields.Str(required=True, load_from="NextHopType"),
        "Priority": fields.Int(required=True, load_from="Priority"),
        "Rollback": fields.Bool(required=True, load_from="Rollback"),
        "RouteRuleId": fields.Str(required=True, load_from="RouteRuleId"),
        "RouteRuleType": fields.Int(required=True, load_from="RouteRuleType"),
    }
