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.resource.Vpn;

import java.util.List;

/**
 * 硬盘备份
 *
 * @author Administrator
 */
public interface VpnService {

	/**
	 * 列表展示
	 *
	 * @param pager
	 * @param condition
	 * @param requestUser
	 * @return
	 */
	BocloudResult<GridBean<Vpn>> list(Pager pager, RequestContext context);

	/**
	 * 列表展示
	 *
	 * @param pager
	 * @param condition
	 * @param requestUser
	 * @return
	 */
	BocloudResult<List<Vpn>> condition(String condition, RequestContext context);

	/**
	 * 创建
	 *
	 * @param params
	 * @param user
	 * @return
	 */
	BocloudResult<String> create(Vpn vpn, RequestContext context);

	/**
	 * 修改
	 *
	 * @param vpn
	 * @param userId
	 * @return
	 */
	BocloudResult<Vpn> modify(Vpn vpn, RequestContext context);

	/**
	 * 删除
	 *
	 * @param id
	 * @param user
	 * @return
	 */
	BocloudResult<String> remove(Long id, RequestContext context);

	/**
	 * 详情
	 *
	 * @param id
	 * @return
	 */
	BocloudResult<Vpn> detail(Long id);

	/**
	 * 根据云平台查询
	 *
	 * @param vendorId
	 * @return
	 */
	BocloudResult<List<Vpn>> listByVendor(Long vendorId);

	/**
	 * 查询可用的vpn
	 *
	 * @param params
	 * @param user
	 * @return
	 */
	BocloudResult<List<Vpn>> listUsable(String params, RequestContext context);

}
