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

import java.util.List;

/**
 * @ClassName: LbListenerRuleService
 * @Description: 负载均衡器监听器转发规则service接口
 * @Author lxy
 * @Date 2021/10/19 16:14
 */
public interface LbListenerRuleService {

    /**
     * @param context
     * @return com.bocloud.common.model.BocloudResult<com.bocloud.common.model.GridBean < com.bocloud.ims.entity.resource.LbListenerRule>>
     * @Author: lxy
     * @Description: 查询监听器转发规则列表
     * @Date 2021/10/19 16:21
     * @Param pager
     * @throws:
     **/
    BocloudResult<GridBean<LbListenerRule>> list(Pager pager, RequestContext context);

    /**
     * @param context
     * @return com.bocloud.common.model.BocloudResult
     * @Author: lxy
     * @Description: 创建监听器转发规则
     * @Date 2021/10/19 16:31
     * @Param listenerRule
     * @throws:
     **/
    BocloudResult create(LbListenerRule listenerRule, RequestContext context);

    /**
     * @param target
     * @return com.bocloud.common.model.BocloudResult
     * @Author: lxy
     * @Description: 修改监听器转发规则
     * @Date 2021/10/19 17:47
     * @Param listenerRule
     * @throws:
     **/
    BocloudResult modify(LbListenerRule listenerRule, Long target);

    /**
     * @return com.bocloud.common.model.BocloudResult<com.bocloud.ims.entity.resource.LbListenerRule>
     * @Author: lxy
     * @Description: 查看监听器转发规则详情
     * @Date 2021/10/19 17:53
     * @Param id
     * @throws:
     **/
    BocloudResult<LbListenerRule> detail(Long id);

    /**
     * @param context
     * @return com.bocloud.common.model.BocloudResult
     * @Author: lxy
     * @Description: 删除
     * @Date 2021/10/19 17:57
     * @Param id
     * @throws:
     **/
    BocloudResult remove(Long id, RequestContext context);

    /**
     * @param context
     * @return com.bocloud.common.model.BocloudResult
     * @Author: lxy
     * @Description: 批量删除
     * @Date 2021/10/19 17:57
     * @Param idArray
     * @throws:
     **/
    BocloudResult batchRemove(List<Long> idArray, RequestContext context);
}
