Add collaboration feature
[sdc.git] / openecomp-be / api / openecomp-sdc-rest-webapp / conflict-rest / conflict-rest-services / src / main / java / org / openecomp / sdcrests / conflict / rest / Conflicts.java
1 package org.openecomp.sdcrests.conflict.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.common.RestConstants;
7 import org.openecomp.sdcrests.conflict.types.ConflictDto;
8 import org.openecomp.sdcrests.conflict.types.ConflictResolutionDto;
9 import org.openecomp.sdcrests.conflict.types.ItemVersionConflictDto;
10 import org.springframework.validation.annotation.Validated;
11
12 import javax.validation.constraints.NotNull;
13 import javax.ws.rs.Consumes;
14 import javax.ws.rs.GET;
15 import javax.ws.rs.HeaderParam;
16 import javax.ws.rs.PUT;
17 import javax.ws.rs.Path;
18 import javax.ws.rs.PathParam;
19 import javax.ws.rs.Produces;
20 import javax.ws.rs.core.MediaType;
21 import javax.ws.rs.core.Response;
22
23 @Path("/v1.0/items/{itemId}/versions/{versionId}/conflicts")
24 @Produces(MediaType.APPLICATION_JSON)
25 @Consumes(MediaType.APPLICATION_JSON)
26 @Api(value = "Item Version Conflicts")
27 @Validated
28 public interface Conflicts {
29
30   @GET
31   @Path("/")
32   @ApiOperation(value = "item version conflicts",
33       notes = "Item version private copy conflicts against its public copy",
34       response = ItemVersionConflictDto.class)
35   Response getConflict(@ApiParam("Item Id") @PathParam("itemId") String itemId,
36                        @ApiParam("Version Id") @PathParam("versionId") String versionId,
37                        @NotNull(message = RestConstants.USER_MISSING_ERROR_MSG)
38                         @HeaderParam(RestConstants.USER_ID_HEADER_PARAM) String user);
39
40   @GET
41   @Path("/{conflictId}")
42   @ApiOperation(value = "Gets item version conflict",
43       notes = "Gets an item version private copy conflict against its public copy",
44       response = ConflictDto.class)
45   Response getConflict(@ApiParam("Item Id") @PathParam("itemId") String itemId,
46                        @ApiParam("Version Id") @PathParam("versionId") String versionId,
47                        @ApiParam("Version Id") @PathParam("conflictId") String conflictId,
48                        @NotNull(message = RestConstants.USER_MISSING_ERROR_MSG)
49                        @HeaderParam(RestConstants.USER_ID_HEADER_PARAM) String user);
50
51   @PUT
52   @Path("/{conflictId}")
53   @ApiOperation(value = "Resolves item version conflict",
54       notes = "Resolves an item version private copy conflict against its public copy")
55   Response resolveConflict(ConflictResolutionDto conflictResolution,
56                            @ApiParam("Item Id") @PathParam("itemId") String itemId,
57                            @ApiParam("Version Id") @PathParam("versionId") String versionId,
58                            @ApiParam("Version Id") @PathParam("conflictId") String conflictId,
59                            @NotNull(message = RestConstants.USER_MISSING_ERROR_MSG)
60                            @HeaderParam(RestConstants.USER_ID_HEADER_PARAM) String user);
61 }