package org.opennaas.extensions.router.capability.ip; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.core.MediaType; import org.opennaas.core.resources.capability.CapabilityException; import org.opennaas.core.resources.capability.ICapability; import org.opennaas.extensions.router.model.IPProtocolEndpoint; import org.opennaas.extensions.router.model.LogicalDevice; import org.opennaas.extensions.router.model.LogicalPort; import org.opennaas.extensions.router.model.wrappers.SetIpAddressRequest; @Path("/") public interface IIPCapability extends ICapability { @POST @Path("/setIPv4") @Consumes(MediaType.APPLICATION_XML) public void setIPv4(SetIpAddressRequest request) throws CapabilityException; @POST @Path("/setIPv6") @Consumes(MediaType.APPLICATION_XML) public void setIPv6(SetIpAddressRequest request) throws CapabilityException; @POST @Path("/setIP") @Consumes(MediaType.APPLICATION_XML) public void setIP(SetIpAddressRequest request) throws CapabilityException; /** * Set the description for the given interface * * @param iface * @param ip * @throws CapabilityException */ @POST @Path("/setInterfaceDescription") @Consumes(MediaType.APPLICATION_XML) public void setInterfaceDescription(LogicalPort iface) throws CapabilityException; @POST @Path("/addIPv4") @Consumes(MediaType.APPLICATION_XML) public void addIPv4(SetIpAddressRequest request) throws CapabilityException; @POST @Path("/addIPv6") @Consumes(MediaType.APPLICATION_XML) public void addIPv6(SetIpAddressRequest request) throws CapabilityException; @POST @Path("/addIP") @Consumes(MediaType.APPLICATION_XML) public void addIP(SetIpAddressRequest request) throws CapabilityException; @POST @Path("/removeIPv4") @Consumes(MediaType.APPLICATION_XML) public void removeIPv4(SetIpAddressRequest request) throws CapabilityException; @POST @Path("/removeIPv6") @Consumes(MediaType.APPLICATION_XML) public void removeIPv6(SetIpAddressRequest request) throws CapabilityException; @POST @Path("/removeIP") @Consumes(MediaType.APPLICATION_XML) public void removeIP(SetIpAddressRequest request) throws CapabilityException; /** * Set the given ip to the logical device * * @param params * @throws CapabilityException */ // cannot have a POST method with two params // only a single object can go in a POST body (using setIPv4(SetIpAddressRequest) instead) :) public void setIPv4(LogicalDevice logicalDevice, IPProtocolEndpoint ip) throws CapabilityException; public void setIPv6(LogicalDevice logicalDevice, IPProtocolEndpoint ip) throws CapabilityException; public void setIP(LogicalDevice logicalDevice, IPProtocolEndpoint ip) throws CapabilityException; public void setIP(LogicalDevice logicalDevice, String ipAddress) throws CapabilityException; public void addIPv4(LogicalDevice logicalDevice, IPProtocolEndpoint ip) throws CapabilityException; public void addIPv6(LogicalDevice logicalDevice, IPProtocolEndpoint ip) throws CapabilityException; public void addIP(LogicalDevice logicalDevice, IPProtocolEndpoint ip) throws CapabilityException; public void addIP(LogicalDevice logicalDevice, String ipAddress) throws CapabilityException; public void removeIPv4(LogicalDevice logicalDevice, IPProtocolEndpoint ip) throws CapabilityException; public void removeIPv6(LogicalDevice logicalDevice, IPProtocolEndpoint ip) throws CapabilityException; public void removeIP(LogicalDevice logicalDevice, IPProtocolEndpoint ip) throws CapabilityException; public void removeIP(LogicalDevice logicalDevice, String ipAddress) throws CapabilityException; }