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


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

""" UCompShare API Schema
"""


"""
API: CreateULHostInstance

创建轻量应用云主机
"""


class CreateULHostInstanceRequestSchema(schema.RequestSchema):
    """CreateULHostInstance - 创建轻量应用云主机"""

    fields = {
        "BundleId": fields.Str(required=True, dump_to="BundleId"),
        "ChargeType": fields.Str(required=False, dump_to="ChargeType"),
        "CouponId": fields.Str(required=False, dump_to="CouponId"),
        "ImageId": fields.Str(required=True, dump_to="ImageId"),
        "Name": fields.Str(required=False, dump_to="Name"),
        "Password": fields.Str(required=True, dump_to="Password"),
        "ProjectId": fields.Str(required=False, dump_to="ProjectId"),
        "Quantity": fields.Int(required=False, dump_to="Quantity"),
        "Region": fields.Str(required=True, dump_to="Region"),
    }


class CreateULHostInstanceResponseSchema(schema.ResponseSchema):
    """CreateULHostInstance - 创建轻量应用云主机"""

    fields = {
        "Message": fields.Str(required=True, load_from="Message"),
        "ULHostId": fields.Str(required=True, load_from="ULHostId"),
    }


"""
API: DescribeULHostBundles

获取轻量应用云主机套餐列表
"""


class DescribeULHostBundlesRequestSchema(schema.RequestSchema):
    """DescribeULHostBundles - 获取轻量应用云主机套餐列表"""

    fields = {
        "ProjectId": fields.Str(required=False, dump_to="ProjectId"),
        "Region": fields.Str(required=True, dump_to="Region"),
    }


class DescribeULHostBundlesResponseSchema(schema.ResponseSchema):
    """DescribeULHostBundles - 获取轻量应用云主机套餐列表"""

    fields = {
        "Bundles": fields.List(
            models.BundleSchema(), required=True, load_from="Bundles"
        ),
        "Message": fields.Str(required=False, load_from="Message"),
    }


"""
API: DescribeULHostInstance

获取轻量应用云主机列表
"""


class DescribeULHostInstanceRequestSchema(schema.RequestSchema):
    """DescribeULHostInstance - 获取轻量应用云主机列表"""

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


class DescribeULHostInstanceResponseSchema(schema.ResponseSchema):
    """DescribeULHostInstance - 获取轻量应用云主机列表"""

    fields = {
        "Message": fields.Str(required=True, load_from="Message"),
        "ULHostInstanceSets": fields.List(
            models.ULHostInstanceSetSchema(),
            required=True,
            load_from="ULHostInstanceSets",
        ),
    }


"""
API: GetULHostInstancePrice

获取轻量应用云主机套餐价格 
"""


class GetULHostInstancePriceRequestSchema(schema.RequestSchema):
    """GetULHostInstancePrice - 获取轻量应用云主机套餐价格"""

    fields = {
        "BundleId": fields.Str(required=True, dump_to="BundleId"),
        "ChargeType": fields.Str(required=False, dump_to="ChargeType"),
        "Count": fields.Int(required=False, dump_to="Count"),
        "ProjectId": fields.Str(required=False, dump_to="ProjectId"),
        "Quantity": fields.Int(required=False, dump_to="Quantity"),
        "Region": fields.Str(required=True, dump_to="Region"),
    }


class GetULHostInstancePriceResponseSchema(schema.ResponseSchema):
    """GetULHostInstancePrice - 获取轻量应用云主机套餐价格"""

    fields = {
        "Message": fields.Str(required=True, load_from="Message"),
        "PriceSet": fields.List(
            models.ULHostPriceSetSchema(), required=True, load_from="PriceSet"
        ),
    }


"""
API: GetULHostRenewPrice

获取主机续费价格
"""


class GetULHostRenewPriceRequestSchema(schema.RequestSchema):
    """GetULHostRenewPrice - 获取主机续费价格"""

    fields = {
        "ChargeType": fields.Str(required=False, dump_to="ChargeType"),
        "ProjectId": fields.Str(required=False, dump_to="ProjectId"),
        "Region": fields.Str(required=True, dump_to="Region"),
        "ULHostId": fields.Str(required=True, dump_to="ULHostId"),
    }


class GetULHostRenewPriceResponseSchema(schema.ResponseSchema):
    """GetULHostRenewPrice - 获取主机续费价格"""

    fields = {
        "PriceSet": fields.List(
            models.ULHostPriceSetSchema(), required=True, load_from="PriceSet"
        ),
    }


"""
API: ModifyULHostAttribute

修改指定ULHost实例属性信息，包含名称和备注
"""


class ModifyULHostAttributeRequestSchema(schema.RequestSchema):
    """ModifyULHostAttribute - 修改指定ULHost实例属性信息，包含名称和备注"""

    fields = {
        "Name": fields.Str(required=False, dump_to="Name"),
        "ProjectId": fields.Str(required=False, dump_to="ProjectId"),
        "Region": fields.Str(required=True, dump_to="Region"),
        "Remark": fields.Str(required=False, dump_to="Remark"),
        "ULHostId": fields.Str(required=True, dump_to="ULHostId"),
    }


class ModifyULHostAttributeResponseSchema(schema.ResponseSchema):
    """ModifyULHostAttribute - 修改指定ULHost实例属性信息，包含名称和备注"""

    fields = {
        "Message": fields.Str(required=True, load_from="Message"),
        "ULHostId": fields.Str(required=True, load_from="ULHostId"),
    }


"""
API: PoweroffULHostInstance

直接关闭UHost实例电源，无需等待实例正常关闭。
"""


class PoweroffULHostInstanceRequestSchema(schema.RequestSchema):
    """PoweroffULHostInstance - 直接关闭UHost实例电源，无需等待实例正常关闭。"""

    fields = {
        "ProjectId": fields.Str(required=False, dump_to="ProjectId"),
        "Region": fields.Str(required=True, dump_to="Region"),
        "ULHostId": fields.Str(required=True, dump_to="ULHostId"),
    }


class PoweroffULHostInstanceResponseSchema(schema.ResponseSchema):
    """PoweroffULHostInstance - 直接关闭UHost实例电源，无需等待实例正常关闭。"""

    fields = {
        "ULHostId": fields.Str(required=True, load_from="ULHostId"),
    }


"""
API: RebootULHostInstance

重新启动UHost实例。
"""


class RebootULHostInstanceRequestSchema(schema.RequestSchema):
    """RebootULHostInstance - 重新启动UHost实例。"""

    fields = {
        "ProjectId": fields.Str(required=False, dump_to="ProjectId"),
        "Region": fields.Str(required=True, dump_to="Region"),
        "ULHostId": fields.Str(required=True, dump_to="ULHostId"),
    }


class RebootULHostInstanceResponseSchema(schema.ResponseSchema):
    """RebootULHostInstance - 重新启动UHost实例。"""

    fields = {
        "ULHostId": fields.Str(required=False, load_from="ULHostId"),
    }


"""
API: ReinstallULHostInstance

重装轻量应用云主机
"""


class ReinstallULHostInstanceRequestSchema(schema.RequestSchema):
    """ReinstallULHostInstance - 重装轻量应用云主机"""

    fields = {
        "ImageId": fields.Str(required=True, dump_to="ImageId"),
        "Password": fields.Str(required=True, dump_to="Password"),
        "ProjectId": fields.Str(required=False, dump_to="ProjectId"),
        "Region": fields.Str(required=True, dump_to="Region"),
        "ULHostId": fields.Str(required=True, dump_to="ULHostId"),
    }


class ReinstallULHostInstanceResponseSchema(schema.ResponseSchema):
    """ReinstallULHostInstance - 重装轻量应用云主机"""

    fields = {
        "Message": fields.Str(required=True, load_from="Message"),
        "ULHostId": fields.Str(required=True, load_from="ULHostId"),
    }


"""
API: ResetULHostInstancePassword

重置轻量应用云主机管理员密码。
"""


class ResetULHostInstancePasswordRequestSchema(schema.RequestSchema):
    """ResetULHostInstancePassword - 重置轻量应用云主机管理员密码。"""

    fields = {
        "Password": fields.Str(required=True, dump_to="Password"),
        "ProjectId": fields.Str(required=False, dump_to="ProjectId"),
        "Region": fields.Str(required=True, dump_to="Region"),
        "ULHostId": fields.Str(required=True, dump_to="ULHostId"),
    }


class ResetULHostInstancePasswordResponseSchema(schema.ResponseSchema):
    """ResetULHostInstancePassword - 重置轻量应用云主机管理员密码。"""

    fields = {
        "ULHostId": fields.Str(required=True, load_from="ULHostId"),
    }


"""
API: StartULHostInstance

启动处于关闭状态的UHost实例。
"""


class StartULHostInstanceRequestSchema(schema.RequestSchema):
    """StartULHostInstance - 启动处于关闭状态的UHost实例。"""

    fields = {
        "ProjectId": fields.Str(required=False, dump_to="ProjectId"),
        "Region": fields.Str(required=True, dump_to="Region"),
        "ULHostId": fields.Str(required=True, dump_to="ULHostId"),
    }


class StartULHostInstanceResponseSchema(schema.ResponseSchema):
    """StartULHostInstance - 启动处于关闭状态的UHost实例。"""

    fields = {
        "ULHostId": fields.Str(required=False, load_from="ULHostId"),
    }


"""
API: StopULHostInstance

指停止处于运行状态的ULHost实例
"""


class StopULHostInstanceRequestSchema(schema.RequestSchema):
    """StopULHostInstance - 指停止处于运行状态的ULHost实例"""

    fields = {
        "ProjectId": fields.Str(required=False, dump_to="ProjectId"),
        "Region": fields.Str(required=True, dump_to="Region"),
        "ULHostId": fields.Str(required=True, dump_to="ULHostId"),
    }


class StopULHostInstanceResponseSchema(schema.ResponseSchema):
    """StopULHostInstance - 指停止处于运行状态的ULHost实例"""

    fields = {
        "ULHostId": fields.Str(required=False, load_from="ULHostId"),
    }


"""
API: TerminateULHostInstance

删除指定数据中心的ULHost实例。
"""


class TerminateULHostInstanceRequestSchema(schema.RequestSchema):
    """TerminateULHostInstance - 删除指定数据中心的ULHost实例。"""

    fields = {
        "ProjectId": fields.Str(required=False, dump_to="ProjectId"),
        "Region": fields.Str(required=True, dump_to="Region"),
        "ReleaseUDisk": fields.Bool(required=False, dump_to="ReleaseUDisk"),
        "ULHostId": fields.Str(required=True, dump_to="ULHostId"),
    }


class TerminateULHostInstanceResponseSchema(schema.ResponseSchema):
    """TerminateULHostInstance - 删除指定数据中心的ULHost实例。"""

    fields = {
        "InRecycle": fields.Str(required=True, load_from="InRecycle"),
        "ULHostId": fields.Str(required=False, load_from="ULHostId"),
    }
