package org.opennaas.extensions.opendaylight.vtn.protocol.client; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import org.opennaas.extensions.opendaylight.vtn.model.Boundary; import org.opennaas.extensions.opendaylight.vtn.model.OpenDaylightController; import org.opennaas.extensions.opendaylight.vtn.model.OpenDaylightvBridge; import org.opennaas.extensions.opendaylight.vtn.model.PortMap; import org.opennaas.extensions.opendaylight.vtn.model.VTN; import org.opennaas.extensions.opendaylight.vtn.model.vBridgeInterfaces; import org.opennaas.extensions.opendaylight.vtn.model.vLink; import org.opennaas.extensions.opendaylight.vtn.protocol.client.wrappers.BoundaryWrapper; import org.opennaas.extensions.opendaylight.vtn.protocol.client.wrappers.LogicalPortsOFFlowsWrapper; import org.opennaas.extensions.opendaylight.vtn.protocol.client.wrappers.SwitchesWrapper; import org.opennaas.extensions.opendaylight.vtn.protocol.client.wrappers.vBridgeInterfacesWrapper; import org.opennaas.extensions.opendaylight.vtn.protocol.client.wrappers.vBridgesWrapper; import org.opennaas.extensions.opendaylight.vtn.protocol.client.wrappers.vLinksWrapper; @Path("/vtn-webapi") public interface IOpenDaylightvtnAPIClient { /** * Create a VTN * @param vtn * @return */ @Path("/vtns.json") @POST @Consumes(MediaType.APPLICATION_JSON) public Response createVTN(VTN vtn); /** * Delete a VTN * @param name * @return */ @Path("/vtns/{name}.json") @DELETE public Response deleteVTN(@PathParam("name") String name); /** * Create controller * @param controller * @return */ @Path("/controllers.json") @POST @Consumes(MediaType.APPLICATION_JSON) public Response createController(OpenDaylightController controller); /** * Create vBRidge * @param vtn * @param vBridge * @return */ @Path("/vtns/{vtn}/vbridges.json") @POST @Consumes(MediaType.APPLICATION_JSON) public Response createvBridge(@PathParam("vtn") String vtn, OpenDaylightvBridge vBridge); @Path("/vtns/{vtn}/vbridges/{vbr}/interfaces.json") @POST @Consumes(MediaType.APPLICATION_JSON) public Response createInterfaces(@PathParam("vtn") String vtn_name, @PathParam("vbr") String vbr_name, vBridgeInterfaces iface); @Path("/boundaries.json") @POST @Consumes(MediaType.APPLICATION_JSON) public Response createBoundary(Boundary bound); @Path("/vtns/{vtn}/vlinks.json") @POST @Consumes(MediaType.APPLICATION_JSON) public Response createvLink(@PathParam("vtn") String vtn_name, vLink vlink); @Path("/vtns/{vtn}/vbridges/{vbr}/interfaces/{iface}/portmap.json") @PUT @Consumes(MediaType.APPLICATION_JSON) public Response configPortMap(@PathParam("vtn") String vtn_name, @PathParam("vbr") String vbr_name, @PathParam("iface") String if_name, PortMap portMap); @Path("/vtns/{vtn}/vbridges/{vbr}/interfaces/{iface}/portmap.json") @GET @Produces(MediaType.APPLICATION_JSON) public PortMap configPortMap(@PathParam("vtn") String vtn_name, @PathParam("vbr") String vbr_name, @PathParam("iface") String iface); @Path("/controllers/{ctrl}/domains/{domain}/logical_ports/detail.json") @GET @Produces(MediaType.APPLICATION_JSON) public LogicalPortsOFFlowsWrapper getLogicalPorts(@PathParam("ctrl") String ctrl, @PathParam("domain") String domain); @Path("/vtns/{vtn}/vbridges/{vbr}.json") @GET @Produces(MediaType.APPLICATION_JSON) public OpenDaylightvBridge getvBridge(@PathParam("vtn") String vtn, @PathParam("vbr") String vbr); @Path("/vtns/{vtn}/vbridges.json") @GET @Produces(MediaType.APPLICATION_JSON) public vBridgesWrapper getvBridges(@PathParam("vtn") String vtn); @Path("/vtns/{vtn}/vbridges/{vbr}/interfaces.json") @GET @Produces(MediaType.APPLICATION_JSON) public vBridgeInterfacesWrapper getInterfaces(@PathParam("vtn") String vtn, @PathParam("vbr") String vbr_name); @Path("/boundaries/{boundary}.json") @GET @Produces(MediaType.APPLICATION_JSON) public Boundary getBoundary(@PathParam("boundary") String bound); @Path("/boundaries.json") @GET @Produces(MediaType.APPLICATION_JSON) public BoundaryWrapper getBoundaries(); @Path("/vtns/{vtn}/vlinks/{vlink}.json") @GET public vLink getvLink(@PathParam("vtn") String vtn, @PathParam("vlink") String vlink); @Path("/vtns/{vtn}/vlinks.json") @GET public vLinksWrapper getvLinks(@PathParam("vtn") String vtnName); @Path("/vtns/{vtn}/vbridges/{vbr}.json") @DELETE public Response deletevBridge(@PathParam("vtn") String vtn, @PathParam("vbr") String vbr); @Path("/vtns/{vtn}/vbridges/{vbr}/interfaces/{iface}.json") @DELETE public Response deleteInterfaces(@PathParam("vtn") String vtn, @PathParam("vbr") String vbr_name, @PathParam("iface") String iface); @Path("/boundaries/{boundary}.json") @DELETE public Response deleteBoundary(@PathParam("boundary") String bound); @Path("/vtns/{vtn}/vlinks/{vlink}.json") @DELETE public Response deletevLink(@PathParam("vtn") String vtn, @PathParam("vlink") String vlink); @Path("/controllers/{ctrl_id}/switches.json") @GET @Produces(MediaType.APPLICATION_JSON) public SwitchesWrapper getListSwitchs(@PathParam("ctrl_id") String ctrl_id); }