package mil.nga.giat.geowave.service; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import org.glassfish.jersey.media.multipart.FormDataMultiPart; @Produces(MediaType.APPLICATION_JSON) @Path("/geoserver") public interface GeoserverService { @GET @Path("/workspaces") @Produces(MediaType.APPLICATION_JSON) public Response getWorkspaces(); @POST @Path("/workspaces") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.MULTIPART_FORM_DATA) public Response createWorkspace( final FormDataMultiPart multiPart ); @DELETE @Path("/workspaces/{workspace}") public Response deleteWorkspace( @PathParam("workspace") final String workspace ); @GET @Path("/styles") @Produces(MediaType.APPLICATION_JSON) public Response getStyles(); @GET @Path("/styles/{styleName}") @Produces(MediaType.APPLICATION_OCTET_STREAM) public Response getStyle( @PathParam("styleName") final String styleName ); @POST @Path("/styles") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.MULTIPART_FORM_DATA) public Response publishStyle( final FormDataMultiPart multiPart ); @DELETE @Path("/styles/{styleName}") public Response deleteStyle( @PathParam("styleName") final String styleName ); @GET @Path("/datastores") @Produces(MediaType.APPLICATION_JSON) public Response getDatastores( @DefaultValue("") @QueryParam("workspace") String customWorkspace ); @GET @Path("/datastores/{datastoreName}") @Produces(MediaType.APPLICATION_JSON) public Response getDatastore( @PathParam("datastoreName") final String datastoreName, @DefaultValue("") @QueryParam("workspace") String customWorkspace ); @POST @Path("/datastores") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.MULTIPART_FORM_DATA) public Response publishDatastore( final FormDataMultiPart multiPart ); @DELETE @Path("/datastores/{datastoreName}") public Response deleteDatastore( @PathParam("datastoreName") final String datastoreName, @DefaultValue("") @QueryParam("workspace") String customWorkspace ); @GET @Path("/layers") @Produces(MediaType.APPLICATION_JSON) public Response getLayers(); @GET @Path("/layers/{layerName}") @Produces(MediaType.APPLICATION_JSON) public Response getLayer( @PathParam("layerName") final String layerName ); @POST @Path("/layers") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.MULTIPART_FORM_DATA) public Response publishLayer( final FormDataMultiPart multiPart ); @DELETE @Path("/layers/{layer}") public Response deleteLayer( @PathParam("layer") final String layerName ); }