/**
*
*/
package org.github.etcd.rest;
import javax.ws.rs.DELETE;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
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 org.github.etcd.service.rest.EtcdMembers;
import org.github.etcd.service.rest.EtcdResponse;
import org.github.etcd.service.rest.EtcdSelfStats;
@Path("/")
public interface EtcdResource extends AutoCloseable {
@GET
@Path("/version")
@Produces(MediaType.TEXT_PLAIN)
String getVersion();
// @GET
// @Path("/v2/stats/leader")
// @Produces(MediaType.APPLICATION_JSON)
// String getLeaderStats();
@GET
@Path("/v2/stats/self")
@Produces(MediaType.APPLICATION_JSON)
EtcdSelfStats getSelfStats();
@GET
@Path("/v2/members")
@Produces(MediaType.APPLICATION_JSON)
EtcdMembers getMembers();
@GET
@Path("/v2/keys/{key:(.*)?}")
@Produces(MediaType.APPLICATION_JSON)
EtcdResponse getNode(@PathParam("key") String key);
@PUT
@Path("/v2/keys/{key:(.*)}")
@Produces(MediaType.APPLICATION_JSON)
EtcdResponse putNode(@PathParam("key") String key, @FormParam("dir") Boolean directory, @FormParam("value") String value, @FormParam("ttl") String ttl, @FormParam("prevExist") Boolean update);
@DELETE
@Path("/v2/keys/{key:(.*)}")
@Produces(MediaType.APPLICATION_JSON)
EtcdResponse deleteNode(@PathParam("key") String key, @QueryParam("dir") Boolean directory, @QueryParam("recursive") Boolean recursive);
}