2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools;
10 import javax.ws.rs.Consumes;
11 import javax.ws.rs.DELETE;
12 import javax.ws.rs.GET;
13 import javax.ws.rs.POST;
14 import javax.ws.rs.PUT;
15 import javax.ws.rs.Path;
16 import javax.ws.rs.PathParam;
17 import javax.ws.rs.Produces;
18 import javax.ws.rs.QueryParam;
19 import javax.ws.rs.core.MediaType;
20 import javax.ws.rs.core.Response;
21 import org.opendaylight.yangtools.draft.Draft01;
22 import org.opendaylight.yangtools.draft.Draft02;
23 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
26 public interface RestRestconfService {
28 public static final String XML = "+xml";
29 public static final String JSON = "+json";
32 public Object getRoot();
36 @Produces({Draft01.MediaTypes.API+JSON,Draft01.MediaTypes.API+XML,
37 Draft02.MediaTypes.API+JSON,Draft02.MediaTypes.API+XML})
38 public String getModules();
41 @Path("/operations/{identifier}")
42 @Produces({Draft01.MediaTypes.DATA+JSON,Draft01.MediaTypes.DATA+XML,
43 Draft02.MediaTypes.DATA+JSON,Draft02.MediaTypes.DATA+XML,
44 MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_XML})
45 @Consumes({Draft01.MediaTypes.DATA+JSON,Draft01.MediaTypes.DATA+XML,
46 Draft02.MediaTypes.DATA+JSON,Draft02.MediaTypes.DATA+XML,
47 MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_XML})
48 public String invokeRpc(@PathParam("identifier") String identifier, @QueryParam("input") CompositeNode payload);
51 @Path("/operations/{identifier}")
52 @Produces({Draft01.MediaTypes.DATA+JSON,Draft01.MediaTypes.DATA+XML,
53 Draft02.MediaTypes.DATA+JSON,Draft02.MediaTypes.DATA+XML,
54 MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_XML})
55 public String invokeRpc(@PathParam("identifier") String identifier);
58 @Path("/config/{identifier:.+}")
59 @Produces({Draft02.MediaTypes.DATA+JSON,Draft02.MediaTypes.DATA+XML,
60 MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_XML})
61 public String readConfigurationData(@PathParam("identifier") String identifier);
64 @Path("/operational/{identifier:.+}")
65 @Produces({Draft02.MediaTypes.DATA+JSON,Draft02.MediaTypes.DATA+XML,
66 MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_XML})
67 public String readOperationalData(@PathParam("identifier") String identifier);
70 @Path("/config/{identifier:.+}")
71 @Consumes({Draft02.MediaTypes.DATA+JSON,Draft02.MediaTypes.DATA+XML,
72 MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_XML})
73 public Response updateConfigurationData(@PathParam("identifier") String identifier,@QueryParam("input") CompositeNode payload);
76 @Path("/config/{identifier:.+}")
77 @Consumes({Draft02.MediaTypes.DATA+JSON,Draft02.MediaTypes.DATA+XML,
78 MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_XML})
79 public Response createConfigurationData(@PathParam("identifier") String identifier, @QueryParam("input") CompositeNode payload);
83 @Consumes({Draft02.MediaTypes.DATA+JSON,Draft02.MediaTypes.DATA+XML,
84 MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_XML})
85 public Response createConfigurationData( @QueryParam("input") CompositeNode payload);
88 @Path("/config/{identifier:.+}")
89 public Response deleteConfigurationData(@PathParam("identifier") String identifier);