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

import java.util.List;

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

    /**
     * 查询成员列表
     *
     * @param pager
     * @param context
     * @return
     */
    BocloudResult<GridBean<LbMember>> list(Pager pager, RequestContext context);

    /**
     * 创建成员
     *
     * @param member
     * @param context
     * @return
     */
    BocloudResult create(LbMember member, RequestContext context);

    /**
     * 修改成员信息
     *
     * @param member
     * @param userId
     * @return
     */
    BocloudResult modify(LbMember member, Long userId);

    /**
     * 查询成员信息
     *
     * @param id
     * @return
     */
    BocloudResult<LbMember> detail(Long id);

    /**
     * 删除成员
     *
     * @param id
     * @param userId
     * @return
     */
    BocloudResult remove(Long id, Long userId);

    /**
     * 添加移除成员
     *
     * @param addList
     * @param delList
     * @param context
     * @param vendorId
     * @param poolId
     * @param callback
     * @return
     */
    BocloudResult manage(List<LbMember> addList, List<LbMember> delList, RequestContext context, Long vendorId,
                         Long poolId, String callback);
}
