Add collaboration feature
[sdc.git] / openecomp-be / api / openecomp-sdc-rest-webapp / vendor-software-products-rest / vendor-software-products-rest-services / src / main / java / org / openecomp / sdcrests / vsp / rest / DeploymentFlavors.java
1 package org.openecomp.sdcrests.vsp.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.vendorsoftwareproducts.types.DeploymentFlavorDto;
7 import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorListResponseDto;
8 import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorRequestDto;
9 import org.springframework.validation.annotation.Validated;
10
11 import javax.validation.Valid;
12 import javax.validation.constraints.NotNull;
13 import javax.ws.rs.Consumes;
14 import javax.ws.rs.DELETE;
15 import javax.ws.rs.GET;
16 import javax.ws.rs.HeaderParam;
17 import javax.ws.rs.POST;
18 import javax.ws.rs.PUT;
19 import javax.ws.rs.Path;
20 import javax.ws.rs.PathParam;
21 import javax.ws.rs.Produces;
22 import javax.ws.rs.core.MediaType;
23 import javax.ws.rs.core.Response;
24
25 import static org.openecomp.sdcrests.common.RestConstants.USER_ID_HEADER_PARAM;
26 import static org.openecomp.sdcrests.common.RestConstants.USER_MISSING_ERROR_MSG;
27
28
29 @Path("/v1.0/vendor-software-products/{vspId}/versions/{versionId}/deployment-flavors")
30 @Produces(MediaType.APPLICATION_JSON)
31 @Consumes(MediaType.APPLICATION_JSON)
32 @Api(value = "Vendor Software Product deployment-flavors")
33 @Validated
34 public interface DeploymentFlavors extends VspEntities {
35
36   @POST
37   @Path("/")
38   @ApiOperation(value = "Create a vendor software product Deployment Flavor")
39   Response create(@Valid DeploymentFlavorRequestDto request,
40                   @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
41                   @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
42                   @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
43                       String user);
44
45   @GET
46   @Path("/")
47   @ApiOperation(value = "List vendor software product Deployment Flavor",
48       response = DeploymentFlavorListResponseDto.class,
49       responseContainer = "List")
50   Response list(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
51                 @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
52                 @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
53                     String user);
54
55   @GET
56   @Path("/{deploymentFlavorId}")
57   @ApiOperation(value = "Get vendor software product Deployment Flavor",
58       response = DeploymentFlavorDto.class)
59   Response get(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
60                @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
61                @ApiParam(value = "Vendor software product Deployment Flavor Id") @PathParam
62                    ("deploymentFlavorId") String deploymentFlavorId,
63                @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
64                    String user);
65
66   @GET
67   @Path("/schema")
68   Response getSchema(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String
69                         vspId,
70                      @PathParam("versionId") String versionId,
71                @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
72                    String user);
73
74   @DELETE
75   @Path("/{deploymentFlavorId}")
76   @ApiOperation(value = "Delete vendor software product Deployment Flavor")
77   Response delete(@ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
78                   @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
79                   @ApiParam(value = "Vendor software product Deployment Flavor Id")
80                   @PathParam("deploymentFlavorId") String deploymentFlavorId,
81                   @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
82                           String user);
83
84   @PUT
85   @Path("/{deploymentFlavorId}")
86   @ApiOperation(value = "Update vendor software product Deployment Flavor")
87   Response update(@Valid DeploymentFlavorRequestDto request,
88                   @ApiParam(value = "Vendor software product Id") @PathParam("vspId") String vspId,
89                   @ApiParam(value = "Version Id") @PathParam("versionId") String versionId,
90                   @ApiParam(value = "Vendor software product Deployment Flavor Id")
91                   @PathParam("deploymentFlavorId") String deploymentFlavorId,
92                   @NotNull(message = USER_MISSING_ERROR_MSG) @HeaderParam(USER_ID_HEADER_PARAM)
93                       String user);
94 }