package com.bocloud.cmp.provider.network;

import com.bocloud.cmp.model.RouterModel;
import com.bocloud.cmp.provider.SuperProvider;
import com.bocloud.common.model.BocloudResult;

public interface RouterProvider extends SuperProvider {
    BocloudResult create(RouterModel model);

    BocloudResult remove(String routerId);

    BocloudResult detail(String routerId);

    BocloudResult modify(RouterModel model);

    BocloudResult attach(RouterModel model);

    BocloudResult detach(RouterModel model);

    BocloudResult config(RouterModel model);

    BocloudResult clear(String routerId);

    BocloudResult list();

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

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

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

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

    default BocloudResult remove(RouterModel model) {
        return new BocloudResult(false, "need implement");
    }

}
