re base code
[sdc.git] / openecomp-be / api / openecomp-sdc-rest-webapp / item-rest / item-rest-services / src / main / java / org / openecomp / sdcrests / item / rest / Versions.java
1 package org.openecomp.sdcrests.item.rest;
2
3 import io.swagger.annotations.Api;
4 import io.swagger.annotations.ApiOperation;
5 import io.swagger.annotations.ApiParam;
6 import org.openecomp.sdcrests.item.types.*;
7 import org.springframework.validation.annotation.Validated;
8
9 import javax.validation.constraints.NotNull;
10 import javax.ws.rs.*;
11 import javax.ws.rs.core.MediaType;
12 import javax.ws.rs.core.Response;
13
14 import static org.openecomp.sdcrests.common.RestConstants.USER_ID_HEADER_PARAM;
15 import static org.openecomp.sdcrests.common.RestConstants.USER_MISSING_ERROR_MSG;
16
17 @Path("/v1.0/items/{itemId}/versions")
18 @Produces(MediaType.APPLICATION_JSON)
19 @Consumes(MediaType.APPLICATION_JSON)
20 @Api(value = "Item Versions")
21 @Validated
22 public interface Versions {
23
24   @GET
25   @Path("/")
26   @ApiOperation(value = "Lists item versions",
27       response = VersionDto.class,
28       responseContainer = "List")
29   Response list(@PathParam("itemId") String itemId,
30                 @NotNull(message = USER_MISSING_ERROR_MSG)
31                 @HeaderParam(USER_ID_HEADER_PARAM) String user);
32
33   @POST
34   @Path("/{versionId}")
35   @ApiOperation(value = "Creates a new item version")
36   Response create(VersionRequestDto request,
37                   @PathParam("itemId") String itemId,
38                   @PathParam("versionId") String versionId,
39                   @NotNull(message = USER_MISSING_ERROR_MSG)
40                   @HeaderParam(USER_ID_HEADER_PARAM) String user);
41
42   @GET
43   @Path("/{versionId}")
44   @ApiOperation(value = "Gets item version", response = VersionDto.class)
45   Response get(@PathParam("itemId") String itemId,
46                @PathParam("versionId") String versionId,
47                @NotNull(message = USER_MISSING_ERROR_MSG)
48                @HeaderParam(USER_ID_HEADER_PARAM) String user);
49
50   @GET
51   @Path("/{versionId}/activity-logs")
52   @ApiOperation(value = "Gets item version activity log",
53       response = ActivityLogDto.class,
54       responseContainer = "List")
55   Response getActivityLog(@ApiParam("Item Id") @PathParam("itemId") String itemId,
56                           @ApiParam("Version Id") @PathParam("versionId") String versionId,
57                           @NotNull(message = USER_MISSING_ERROR_MSG)
58                           @HeaderParam(USER_ID_HEADER_PARAM) String user);
59
60   @GET
61   @Path("/{versionId}/revisions")
62   @ApiOperation(value = "Gets item version revisions", response = RevisionDto.class,
63       responseContainer = "List")
64   Response listRevisions(@PathParam("itemId") String itemId,
65                          @PathParam("versionId") String versionId,
66                          @NotNull(message = USER_MISSING_ERROR_MSG)
67                @HeaderParam(USER_ID_HEADER_PARAM) String user);
68
69   @PUT
70   @Path("/{versionId}/actions")
71   @ApiOperation(value = "Acts on item version")
72   Response actOn(VersionActionRequestDto request,
73                  @PathParam("itemId") String itemId,
74                  @PathParam("versionId") String versionId,
75                  @NotNull(message = USER_MISSING_ERROR_MSG)
76                  @HeaderParam(USER_ID_HEADER_PARAM) String user);
77 }