package org.opennaas.extensions.ofertie.ncl.controller.api;
import java.util.Collection;
import org.opennaas.extensions.ofertie.ncl.provisioner.api.exceptions.FlowAllocationException;
import org.opennaas.extensions.ofertie.ncl.provisioner.api.model.Flow;
import org.opennaas.extensions.ofertie.ncl.provisioner.api.model.FlowRequest;
import org.opennaas.extensions.sdnnetwork.model.Route;
/**
*
* @author Isart Canyameres Gimenez (i2cat)
*
*/
public interface INCLController {
/**
*
* @param flowRequest
* @param route
* @param networkId
* @return flowId of allocated flow
* @throws FlowAllocationException
*/
public String allocateFlow(FlowRequest flowRequest, Route route, String networkId) throws FlowAllocationException;
/**
*
* @param flowId
* @param networkId
* @return flowId of deallocated flow
* @throws FlowAllocationException
*/
public String deallocateFlow(String flowId, String networkId) throws FlowAllocationException;
/**
*
* @return
*/
public Collection<Flow> getFlows();
}