package com.bocloud.cmp.provider.agile.network;

import com.bocloud.cmp.provider.SuperProvider;
import com.bocloud.common.model.BocloudResult;
import com.bocloud.nms.model.agile.AgileLogicRouterModel;

import java.util.List;

public interface LogicRouterProvider extends SuperProvider {
    public BocloudResult<AgileLogicRouterModel> create(AgileLogicRouterModel model);

    public BocloudResult<?> remove(String routerId);

    public BocloudResult<AgileLogicRouterModel> detail(String routerId);

    public BocloudResult<AgileLogicRouterModel> modify(AgileLogicRouterModel model);

    public BocloudResult<List<AgileLogicRouterModel>> list();

    default BocloudResult<AgileLogicRouterModel> addStaticRouter(AgileLogicRouterModel model) {
        return new BocloudResult<>(false, "need implement");
    }

    default BocloudResult<?> removeStaticRouter(String staticRouteUuid) {
        return new BocloudResult<>(false, "need implement");
    }

    default BocloudResult<AgileLogicRouterModel> addBgpPeer(AgileLogicRouterModel model) {
        return new BocloudResult<>(false, "need implement");
    }

    default BocloudResult<?> removeBgpPeer(String bgpPeerId) {
        return new BocloudResult<>(false, "need implement");
    }
}
