package com.bocloud.cmp.provider.compute;

import com.bocloud.cmp.model.ServerModel;
import com.bocloud.cmp.model.ServerTemplateModel;
import com.bocloud.cmp.provider.SuperProvider;
import com.bocloud.common.model.BocloudResult;

/**
 * aliyun 云主机模板
 *
 * @author ymh
 * @时间 2019年3月8日
 */
public interface ServerTemplateProvider extends SuperProvider {
    /**
     * 查询 模板列表
     *
     * @param serverTemplateModel
     * @return
     */
    default BocloudResult list(ServerTemplateModel serverTemplateModel) {
        return new BocloudResult(false, "尚未实现");
    }

    /**
     * 查询 模板列表
     *
     * @param uuid
     * @return
     */
    default BocloudResult detail(String uuid) {
        return new BocloudResult(false, "尚未实现");
    }

    /**
     * 创建模板
     *
     * @param serverTemplateModel
     * @return
     */
    default BocloudResult create(ServerTemplateModel serverTemplateModel) {
        return new BocloudResult(false, "尚未实现");
    }

    /**
     * 删除
     *
     * @param serverTemplateModel
     * @return
     */
    default BocloudResult remove(ServerTemplateModel serverTemplateModel) {
        return new BocloudResult(false, "尚未实现");
    }

    /**
     * 修改
     *
     * @param serverTemplateModel
     * @return
     */
    default BocloudResult modify(ServerTemplateModel serverTemplateModel) {
        return new BocloudResult(false, "尚未实现");
    }

    /**
     * 新建模板版本
     *
     * @param serverTemplateModel
     * @return
     */
    default BocloudResult createTemplateVersion(ServerTemplateModel serverTemplateModel) {
        return new BocloudResult(false, "尚未实现");
    }

    /**
     * 删除模板版本
     *
     * @param serverTemplateModel
     * @return
     */
    default BocloudResult removeTemplateVersion(ServerTemplateModel serverTemplateModel) {
        return new BocloudResult(false, "尚未实现");
    }

    /**
     * 修改默认版本
     *
     * @param serverTemplateModel
     * @return
     */
    default BocloudResult modifyDefaultVersion(ServerTemplateModel serverTemplateModel) {
        return new BocloudResult(false, "尚未实现");
    }

    /**
     * 根据云主机模板创建云主机
     *
     * @param uuid 云主机模板uuid
     * @param serverModel 目标云主机参数
     * @return
     */
    default BocloudResult createServer(String uuid, ServerModel serverModel) {
        return new BocloudResult(false, "尚未实现");
    }

    /**
     * 将云主机模板转化为云主机
     * @param uuid 云主机模板uuid
     * @param serverModel 目标云主机参数
     * @return
     */
    default BocloudResult asServer(String uuid, ServerModel serverModel) {
        return new BocloudResult(false, "尚未实现");
    }
}
