package com.bocloud.cmp.provider.f5;

import com.bocloud.cmp.model.f5.PoolMemberModel;
import com.bocloud.cmp.model.f5.PoolModel;
import com.bocloud.cmp.provider.SuperProvider;
import com.bocloud.common.model.BocloudResult;

/**
 * f5 pool操作服务接口
 *
 * @author liuyuanyuan
 */
public interface PoolProvider extends SuperProvider {
    /**
     * pool 列表
     *
     * @return
     */
    public BocloudResult list();

    /**
     * 获取状态
     *
     * @param url
     * @return
     */
    public BocloudResult stats(String url);

    /**
     * 创建pool
     *
     * @param poolModel
     * @return
     */
    public BocloudResult create(PoolModel poolModel);

    /**
     * 新增poolMember
     *
     * @param poolName
     * @param poolMemberModel
     * @param url
     * @return
     */
    public BocloudResult createPoolMember(PoolMemberModel poolMemberModel, String url);

    /**
     * 更新pool
     *
     * @param poolModel
     * @return
     */
    public BocloudResult update(PoolModel poolModel);

    /**
     * 删除pool
     *
     * @param name
     * @return
     */
    public BocloudResult remove(String name);

    /**
     * 删除poolmember
     *
     * @param url
     * @return
     */
    public BocloudResult removePoolMember(String url);

    /**
     * 更新poolmember
     *
     * @param url
     * @param poolMemberModel
     * @return
     */
    public BocloudResult updatePoolMember(String url, PoolMemberModel poolMemberModel);

    /**
     * 详情
     *
     * @param url
     * @return
     */
    public BocloudResult detail(String url);
}
