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.LBAddBean;
import com.bocloud.ims.entity.resource.LbListener;

/**
 * 负载均衡器监听器service接口
 *
 * @author wangyu
 * @version 1.0
 * @since 2017年9月4日
 */
public interface LbListenerService {

    /**
     * 查询监听器列表
     *
     * @param pager
     * @param context
     * @return
     */
    BocloudResult<GridBean<LbListener>> list(Pager pager, RequestContext context);

    /**
     * 创建监听器
     *
     * @param bean
     * @param callback
     * @return
     */
    BocloudResult create(LBAddBean bean, RequestContext context, String callback);

    /**
     * 修改监听器信息
     *
     * @param listener
     * @param userId
     * @return
     */
    BocloudResult modify(LbListener listener, Long userId);

    /**
     * 查询监听器信息
     *
     * @param id
     * @return
     */
    BocloudResult<LbListener> detail(Long id);

    /**
     * 删除监听器
     *
     * @param id
     * @param user
     * @return
     */
    BocloudResult remove(Long id, RequestContext context);

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

    BocloudResult listforPolicy(Long lbId, Long listenerId);
}
