package com.bocloud.ims.interfaces.resource;

import com.bocloud.cmp.model.CloudStackParam;
import com.bocloud.cmp.model.HeatStackModel;
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.CloudStack;
import com.bocloud.ims.entity.resource.CloudStackEvent;

import java.util.List;

/**
 * stack
 * 
 * @author ymh
 * @时间 2019年11月13日
 */
public interface CloudStackService {

	/**
	 * 列表展示
	 * 
	 * @param pager
	 * @return
	 */
	public BocloudResult<GridBean<CloudStack>> list(Pager pager);

	/**
	 * 创建
	 *
	 * @param params
	 * @param user
	 * @return
	 */
	public BocloudResult create(CloudStack cloudStack, RequestContext context);

	/**
	 * 修改
	 *
	 * @param bean
	 * @param userId
	 * @return
	 */
	public BocloudResult modify(CloudStack cloudStack, Long userId);

	/**
	 * 删除
	 *
	 * @param id
	 * @param params
	 * @param user
	 * @return
	 */
	public BocloudResult remove(Long id, RequestContext context);

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

	public BocloudResult operation(Long id, RequestContext context, CloudStackParam cloudStackParam);

	public BocloudResult batchRemove(List<Long> ids, RequestContext context);

	public BocloudResult<GridBean<CloudStackEvent>> stackEventList(Pager pager);

	public void syncStackEvent(HeatStackModel stackModel, Long vendorId, Long stackId);

}
