package com.bocloud.ims.interfaces.resource;

import com.bocloud.common.model.BocloudResult;
import com.bocloud.common.model.GridBean;
import com.bocloud.common.model.Pager;
import com.bocloud.common.model.RequestContext;
import com.bocloud.ims.entity.VolumeType;

import java.util.List;

/**
 * 云硬盘类型业务接口
 *
 * @author wangyu
 * @version 4.1.0-SNAPSHOT
 * @since 2019/10/17
 */
public interface VolumeTypeService {
    /**
     * 查询云硬盘类型列表
     *
     * @param page
     * @return
     */
    BocloudResult<GridBean<VolumeType>> list(Pager page);

    /**
     * 按zone查询可用的云硬盘类型
     *
     * @param vendorId 平台id
     * @param zoneName zone名称
     * @param simple   简化查询
     * @return
     */
    BocloudResult<List<VolumeType>> listByZone(Long vendorId, String zoneName, Boolean simple);

    /**
     * 查看云硬盘类型详情
     *
     * @param id
     * @return
     */
    BocloudResult<VolumeType> detail(Long id);

    /**
     * 创建云硬盘类型
     *
     * @param type
     * @return
     */
    BocloudResult<VolumeType> create(VolumeType type);

    /**
     * 删除云硬盘类型
     *
     * @param id
     * @return
     */
    BocloudResult remove(Long id);

    /**
     * 批量删除云硬盘类型
     *
     * @param params
     * @param context
     * @return
     */
    BocloudResult batchRemove(List<Long> idArray, RequestContext context);
}
