package com.bocloud.ims.interfaces.resource;

import java.util.List;

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.Keypair;

/**
 * 密钥service接口
 *
 * @author wangyu
 * @version 1.0
 * @since 2017年10月12日
 */
public interface KeypairService {

	/**
	 * 查询密钥列表
	 *
	 * @param pager
	 * @param context
	 * @return
	 */
	BocloudResult<GridBean<Keypair>> list(Pager pager, RequestContext context);

	/**
	 * 创建密钥
	 *
	 * @param keypair
	 * @param context
	 * @return
	 */
	BocloudResult<Keypair> create(Keypair keypair, RequestContext context);

	/**
	 * 移除密钥
	 *
	 * @param id
	 * @param context
	 * @return
	 */
	BocloudResult remove(Long id, RequestContext context);

	/**
	 * 查询密钥详情
	 *
	 * @param id
	 * @return
	 */
	BocloudResult<Keypair> detail(Long id);

	/**
	 * 判断名称是否重复
	 *
	 * @param name
	 * @param vendorId
	 * @return
	 */
	BocloudResult exist(String name, Long vendorId);

	/**
	 * 批量删除
	 *
	 * @param params
	 * @param context
	 * @return
	 */
	BocloudResult batchRemove(List<Long> idArray, RequestContext context);

	/**
	 * 秘钥编辑
	 *
	 * @param keypair
	 * @param context
	 * @return
	 */
	BocloudResult<Keypair> modify(Keypair keypair, RequestContext context);

	/**
	 * 秘钥批量绑定云主机
	 *
	 * @param params
	 * @param context
	 * @return
	 */
	BocloudResult batchBindServer(Keypair keypair, RequestContext context);

	BocloudResult condition(String condition, RequestContext context);

	/**
	 * 查询私钥
	 * 
	 * @param id
	 * @return
	 */
	BocloudResult<Keypair> getPrivateKey(Long id);
}
