Use generated API interface for Swagger(2) 14/132814/2
authorlapentafd <francesco.lapenta@est.tech>
Tue, 20 Dec 2022 12:03:46 +0000 (12:03 +0000)
committerlapentafd <francesco.lapenta@est.tech>
Wed, 21 Dec 2022 10:41:25 +0000 (10:41 +0000)
This commit removes the Swagger V2 annotations on the
ApiRestController in policy-api. The OpeApi annotations (Swagger
v3 annotations) are on a generated Java Interface. The code is changed
so that the controller implements that interface.

There are no code changes tot he controller except that the order of the
parameters is switched in some cases.

Adds unit test for SpingDoc swagger document generator endpoint.

Issue-ID: POLICY-4404
Change-Id: Ic8976362481a0b49ad05cebb2f4f9ce4147f3965
Signed-off-by: lapentafd <francesco.lapenta@est.tech>
main/pom.xml
main/src/main/java/org/onap/policy/api/main/rest/ApiRestController.java
main/src/main/resources/openapi/openapi.yaml
main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java
main/src/test/java/org/onap/policy/api/main/rest/utils/CommonTestRestController.java

index 3476540..aed73ea 100644 (file)
                                 ToscaNodeTemplateArray=java.util.List,
                                 HealthCheckReport=org.onap.policy.common.endpoints.report.HealthCheckReport,
                                 StatisticsReport=org.onap.policy.api.main.rest.provider.statistics.StatisticsReport,
+                                PolicyFetchMode=org.onap.policy.api.main.rest.PolicyFetchMode
                             </importMappings>
                             <configOptions>
                                 <sourceFolder>src/gen/java</sourceFolder>
index a734b2d..d440e1c 100644 (file)
@@ -4,7 +4,7 @@
  * ================================================================================\r
  * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.\r
  * Modifications Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.\r
- * Modifications Copyright (C) 2020,2022 Nordix Foundation.\r
+ * Modifications Copyright (C) 2020-2022 Nordix Foundation.\r
  * Modifications Copyright (C) 2020-2022 Bell Canada. All rights reserved.\r
  * ================================================================================\r
  * Licensed under the Apache License, Version 2.0 (the "License");\r
 \r
 package org.onap.policy.api.main.rest;\r
 \r
-import io.swagger.annotations.Api;\r
-import io.swagger.annotations.ApiOperation;\r
-import io.swagger.annotations.ApiParam;\r
-import io.swagger.annotations.ApiResponse;\r
-import io.swagger.annotations.ApiResponses;\r
-import io.swagger.annotations.Authorization;\r
-import io.swagger.annotations.BasicAuthDefinition;\r
-import io.swagger.annotations.Extension;\r
-import io.swagger.annotations.ExtensionProperty;\r
-import io.swagger.annotations.Info;\r
-import io.swagger.annotations.ResponseHeader;\r
-import io.swagger.annotations.SecurityDefinition;\r
-import io.swagger.annotations.SwaggerDefinition;\r
-import java.net.HttpURLConnection;\r
 import java.util.List;\r
 import java.util.UUID;\r
 import javax.ws.rs.core.Response.Status;\r
 import lombok.RequiredArgsConstructor;\r
 import org.onap.policy.api.main.exception.PolicyApiRuntimeException;\r
+import org.onap.policy.api.main.rest.genapi.PolicyDesignApi;\r
 import org.onap.policy.api.main.rest.provider.healthcheck.HealthCheckProvider;\r
 import org.onap.policy.api.main.rest.provider.statistics.ApiStatisticsManager;\r
 import org.onap.policy.api.main.rest.provider.statistics.StatisticsProvider;\r
@@ -59,14 +46,6 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
 import org.springframework.http.HttpMethod;\r
 import org.springframework.http.HttpStatus;\r
 import org.springframework.http.ResponseEntity;\r
-import org.springframework.web.bind.annotation.DeleteMapping;\r
-import org.springframework.web.bind.annotation.GetMapping;\r
-import org.springframework.web.bind.annotation.PathVariable;\r
-import org.springframework.web.bind.annotation.PostMapping;\r
-import org.springframework.web.bind.annotation.RequestBody;\r
-import org.springframework.web.bind.annotation.RequestHeader;\r
-import org.springframework.web.bind.annotation.RequestMapping;\r
-import org.springframework.web.bind.annotation.RequestParam;\r
 import org.springframework.web.bind.annotation.RestController;\r
 \r
 /**\r
@@ -75,24 +54,8 @@ import org.springframework.web.bind.annotation.RestController;
  * @author Chenfei Gao (cgao@research.att.com)\r
  */\r
 @RestController\r
-@RequestMapping(path = "/policy/api/v1", produces = { "application/json", "application/yaml" })\r
-@Api(value = "Policy Design API")\r
-@SwaggerDefinition(\r
-    info = @Info(\r
-        description = "Policy Design API is publicly exposed for clients to Create/Read/Update/Delete"\r
-            + " policy types, policy type implementation and policies which can be recognized"\r
-            + " and executable by incorporated policy engines. It is an"\r
-            + " independent component running rest service that takes all policy design API calls"\r
-            + " from clients and then assign them to different API working functions. Besides"\r
-            + " that, API is also exposed for clients to retrieve healthcheck status of this API"\r
-            + " rest service and the statistics report including the counters of API invocation.",\r
-        version = "1.0.0", title = "Policy Design",\r
-        extensions = {@Extension(properties = {@ExtensionProperty(name = "planned-retirement-date", value = "tbd"),\r
-            @ExtensionProperty(name = "component", value = "Policy Framework")})}),\r
-    schemes = {SwaggerDefinition.Scheme.HTTP, SwaggerDefinition.Scheme.HTTPS},\r
-    securityDefinition = @SecurityDefinition(basicAuthDefinitions = {@BasicAuthDefinition(key = "basicAuth")}))\r
 @RequiredArgsConstructor\r
-public class ApiRestController extends CommonRestController {\r
+public class ApiRestController extends CommonRestController implements PolicyDesignApi {\r
 \r
     private enum Target {\r
         POLICY,\r
@@ -110,32 +73,8 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @GetMapping("/healthcheck")\r
-    @ApiOperation(value = "Perform a system healthcheck", notes = "Returns healthy status of the Policy API component",\r
-        response = HealthCheckReport.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"HealthCheck", },\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Dublin")})})\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)})\r
-    public ResponseEntity<HealthCheckReport> getHealthCheck(\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId) {\r
+    @Override\r
+    public ResponseEntity<HealthCheckReport> getHealthCheck(UUID requestId) {\r
         final var report = healthCheckProvider.performHealthCheck();\r
         updateApiStatisticsCounter(Target.OTHER, HttpStatus.resolve(report.getCode()), HttpMethod.GET);\r
         return makeResponse(requestId, report, report.getCode());\r
@@ -146,33 +85,8 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @GetMapping("/statistics")\r
-    @ApiOperation(value = "Retrieve current statistics",\r
-        notes = "Returns current statistics including the counters of API invocation",\r
-        response = StatisticsReport.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"Statistics", },\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Dublin")})})\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)})\r
-    public ResponseEntity<StatisticsReport> getStatistics(\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId) {\r
+    @Override\r
+    public ResponseEntity<StatisticsReport> getStatistics(UUID requestId) {\r
         updateApiStatisticsCounter(Target.OTHER, HttpStatus.OK, HttpMethod.GET);\r
         return makeOkResponse(requestId, statisticsProvider.fetchCurrentStatistics());\r
     }\r
@@ -182,33 +96,8 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @GetMapping("/policytypes")\r
-    @ApiOperation(value = "Retrieve existing policy types",\r
-        notes = "Returns a list of existing policy types stored in Policy Framework",\r
-        response = ToscaServiceTemplate.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"PolicyType", },\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Dublin")})})\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)})\r
-    public ResponseEntity<ToscaServiceTemplate> getAllPolicyTypes(\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId) {\r
+    @Override\r
+    public ResponseEntity<ToscaServiceTemplate> getAllPolicyTypes(UUID requestId) {\r
         try {\r
             ToscaServiceTemplate serviceTemplate = toscaServiceTemplateService.fetchPolicyTypes(null, null);\r
             updateApiStatisticsCounter(Target.POLICY_TYPE, HttpStatus.OK, HttpMethod.GET);\r
@@ -228,35 +117,10 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @GetMapping("/policytypes/{policyTypeId}")\r
-    @ApiOperation(value = "Retrieve all available versions of a policy type",\r
-        notes = "Returns a list of all available versions for the specified policy type",\r
-        response = ToscaServiceTemplate.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"PolicyType", },\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Dublin")})})\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_FOUND, message = NOT_FOUND_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)})\r
+    @Override\r
     public ResponseEntity<ToscaServiceTemplate> getAllVersionsOfPolicyType(\r
-        @PathVariable("policyTypeId") @ApiParam(value = "ID of policy type", required = true) String policyTypeId,\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId) {\r
+            String policyTypeId,\r
+            UUID requestId) {\r
         try {\r
             ToscaServiceTemplate serviceTemplate = toscaServiceTemplateService.fetchPolicyTypes(policyTypeId, null);\r
             updateApiStatisticsCounter(Target.POLICY_TYPE, HttpStatus.OK, HttpMethod.GET);\r
@@ -277,35 +141,11 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @GetMapping("/policytypes/{policyTypeId}/versions/{versionId}")\r
-    @ApiOperation(value = "Retrieve one particular version of a policy type",\r
-        notes = "Returns a particular version for the specified policy type", response = ToscaServiceTemplate.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"PolicyType", },\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Dublin")})})\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_FOUND, message = NOT_FOUND_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)})\r
+    @Override\r
     public ResponseEntity<ToscaServiceTemplate> getSpecificVersionOfPolicyType(\r
-        @PathVariable("policyTypeId") @ApiParam(value = "ID of policy type", required = true) String policyTypeId,\r
-        @PathVariable("versionId") @ApiParam(value = "Version of policy type", required = true) String versionId,\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId) {\r
+            String policyTypeId,\r
+            String versionId,\r
+            UUID requestId) {\r
         try {\r
             ToscaServiceTemplate serviceTemplate =\r
                 toscaServiceTemplateService.fetchPolicyTypes(policyTypeId, versionId);\r
@@ -326,34 +166,10 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @GetMapping("/policytypes/{policyTypeId}/versions/latest")\r
-    @ApiOperation(value = "Retrieve latest version of a policy type",\r
-        notes = "Returns latest version for the specified policy type", response = ToscaServiceTemplate.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"PolicyType", },\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Dublin")})})\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_FOUND, message = NOT_FOUND_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)})\r
+    @Override\r
     public ResponseEntity<ToscaServiceTemplate> getLatestVersionOfPolicyType(\r
-        @PathVariable("policyTypeId") @ApiParam(value = "ID of policy type", required = true) String policyTypeId,\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId) {\r
+            String policyTypeId,\r
+            UUID requestId) {\r
         try {\r
             ToscaServiceTemplate serviceTemplate = toscaServiceTemplateService.fetchLatestPolicyTypes(policyTypeId);\r
             updateApiStatisticsCounter(Target.POLICY_TYPE, HttpStatus.OK, HttpMethod.GET);\r
@@ -373,35 +189,10 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @PostMapping("/policytypes")\r
-    @ApiOperation(value = "Create a new policy type", notes = "Client should provide TOSCA body of the new policy type",\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"PolicyType", },\r
-        response = ToscaServiceTemplate.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Dublin")})})\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_BAD_REQUEST, message = INVALID_BODY_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_ACCEPTABLE, message = INVALID_PAYLOAD_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)})\r
+    @Override\r
     public ResponseEntity<ToscaServiceTemplate> createPolicyType(\r
-        @RequestBody @ApiParam(value = "Entity body of policy type", required = true) ToscaServiceTemplate body,\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId) {\r
+            ToscaServiceTemplate body,\r
+            UUID requestId) {\r
         if (NetLoggerUtil.getNetworkLogger().isInfoEnabled()) {\r
             NetLoggerUtil.log(EventType.IN, CommInfrastructure.REST, "/policytypes", toJson(body));\r
         }\r
@@ -425,39 +216,11 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @DeleteMapping("/policytypes/{policyTypeId}/versions/{versionId}")\r
-    @ApiOperation(value = "Delete one version of a policy type",\r
-        notes = "Rule 1: pre-defined policy types cannot be deleted;"\r
-            + "Rule 2: policy types that are in use (parameterized by a TOSCA policy) cannot be deleted."\r
-            + "The parameterizing TOSCA policies must be deleted first;",\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"PolicyType", },\r
-        response = ToscaServiceTemplate.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Dublin")})})\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_FOUND, message = NOT_FOUND_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_CONFLICT, message = HTTP_CONFLICT_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)})\r
+    @Override\r
     public ResponseEntity<ToscaServiceTemplate> deleteSpecificVersionOfPolicyType(\r
-        @PathVariable("policyTypeId") @ApiParam(value = "ID of policy type", required = true) String policyTypeId,\r
-        @PathVariable("versionId") @ApiParam(value = "Version of policy type", required = true) String versionId,\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId) {\r
+            String policyTypeId,\r
+            String versionId,\r
+            UUID requestId) {\r
         try {\r
             ToscaServiceTemplate serviceTemplate =\r
                 toscaServiceTemplateService.deletePolicyType(policyTypeId, versionId);\r
@@ -479,44 +242,12 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @GetMapping("/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies")\r
-    @ApiOperation(\r
-        value = "Retrieve all versions of a policy created for a particular policy type version",\r
-        notes = "Returns a list of all versions of specified policy created for the specified policy type version",\r
-        response = ToscaServiceTemplate.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"Policy,"},\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Dublin")\r
-            })\r
-        }\r
-    )\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_FOUND, message = NOT_FOUND_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)\r
-    })\r
+    @Override\r
     public ResponseEntity<ToscaServiceTemplate> getAllPolicies(\r
-        @PathVariable("policyTypeId") @ApiParam(value = "ID of policy type", required = true) String policyTypeId,\r
-        @PathVariable("policyTypeVersion") @ApiParam(value = "Version of policy type",\r
-            required = true) String policyTypeVersion,\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,\r
-        @RequestParam(name = "mode", defaultValue = "bare") @ApiParam("Fetch mode for policies, BARE for bare"\r
-            + " policies (default), REFERENCED for fully referenced policies") PolicyFetchMode mode) {\r
+            String policyTypeId,\r
+            String policyTypeVersion,\r
+            PolicyFetchMode mode,\r
+            UUID requestId) {\r
         try {\r
             ToscaServiceTemplate serviceTemplate =\r
                 toscaServiceTemplateService.fetchPolicies(policyTypeId, policyTypeVersion, null, null, mode);\r
@@ -539,43 +270,13 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @GetMapping("/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}")\r
-    @ApiOperation(value = "Retrieve all version details of a policy created for a particular policy type version",\r
-        notes = "Returns a list of all version details of the specified policy", response = ToscaServiceTemplate.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"Policy", },\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Dublin")\r
-            })\r
-        }\r
-    )\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_FOUND, message = NOT_FOUND_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)\r
-    })\r
+    @Override\r
     public ResponseEntity<ToscaServiceTemplate> getAllVersionsOfPolicy(\r
-        @PathVariable("policyTypeId") @ApiParam(value = "ID of policy type", required = true) String policyTypeId,\r
-        @PathVariable("policyTypeVersion") @ApiParam(value = "Version of policy type",\r
-            required = true) String policyTypeVersion,\r
-        @PathVariable("policyId") @ApiParam(value = "ID of policy", required = true) String policyId,\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false) @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,\r
-        @RequestParam(name = "mode", defaultValue = "bare")\r
-        @ApiParam("Fetch mode for policies, BARE for bare policies (default),"\r
-            + " REFERENCED for fully referenced policies") PolicyFetchMode mode) {\r
+            String policyId,\r
+            String policyTypeId,\r
+            String policyTypeVersion,\r
+            PolicyFetchMode mode,\r
+            UUID requestId) {\r
         try {\r
             ToscaServiceTemplate serviceTemplate =\r
                 toscaServiceTemplateService.fetchPolicies(policyTypeId, policyTypeVersion, policyId, null, mode);\r
@@ -600,45 +301,14 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @GetMapping("/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}/versions/{policyVersion}")\r
-    @ApiOperation(value = "Retrieve one version of a policy created for a particular policy type version",\r
-        notes = "Returns a particular version of specified policy created for the specified policy type version",\r
-        response = ToscaServiceTemplate.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"Policy", },\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Dublin")\r
-            })\r
-        }\r
-    )\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_FOUND, message = NOT_FOUND_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)\r
-    })\r
+    @Override\r
     public ResponseEntity<ToscaServiceTemplate> getSpecificVersionOfPolicy(\r
-        @PathVariable("policyTypeId") @ApiParam(value = "ID of policy type", required = true) String policyTypeId,\r
-        @PathVariable("policyTypeVersion") @ApiParam(value = "Version of policy type",\r
-            required = true) String policyTypeVersion,\r
-        @PathVariable("policyId") @ApiParam(value = "ID of policy", required = true) String policyId,\r
-        @PathVariable("policyVersion") @ApiParam(value = "Version of policy", required = true) String policyVersion,\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,\r
-        @RequestParam(name = "mode", defaultValue = "bare") @ApiParam("Fetch mode for policies, BARE for bare policies"\r
-            + "  (default), REFERENCED for fully referenced policies") PolicyFetchMode mode) {\r
+            String policyId,\r
+            String policyTypeId,\r
+            String policyTypeVersion,\r
+            String policyVersion,\r
+            PolicyFetchMode mode,\r
+            UUID requestId) {\r
         try {\r
             ToscaServiceTemplate serviceTemplate = toscaServiceTemplateService\r
                 .fetchPolicies(policyTypeId, policyTypeVersion, policyId, policyVersion, mode);\r
@@ -662,39 +332,13 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @GetMapping("/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}/versions/latest")\r
-    @ApiOperation(value = "Retrieve the latest version of a particular policy",\r
-        notes = "Returns the latest version of specified policy", response = ToscaServiceTemplate.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"Policy", },\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Dublin")})})\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_FOUND, message = NOT_FOUND_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)})\r
+    @Override\r
     public ResponseEntity<ToscaServiceTemplate> getLatestVersionOfPolicy(\r
-        @PathVariable("policyTypeId") @ApiParam(value = "ID of policy type", required = true) String policyTypeId,\r
-        @PathVariable("policyTypeVersion") @ApiParam(value = "Version of policy type",\r
-            required = true) String policyTypeVersion,\r
-        @PathVariable("policyId") @ApiParam(value = "ID of policy", required = true) String policyId,\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,\r
-        @RequestParam(name = "mode", defaultValue = "bare") @ApiParam("Fetch mode for policies, TERSE for bare "\r
-            + "policies (default), REFERENCED for fully referenced policies") PolicyFetchMode mode) {\r
+            String policyId,\r
+            String policyTypeId,\r
+            String policyTypeVersion,\r
+            PolicyFetchMode mode,\r
+            UUID requestId) {\r
         try {\r
             ToscaServiceTemplate serviceTemplate =\r
                 toscaServiceTemplateService.fetchLatestPolicies(policyTypeId, policyTypeVersion, policyId, mode);\r
@@ -718,40 +362,12 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @PostMapping("/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies")\r
-    @ApiOperation(value = "Create a new policy for a policy type version",\r
-        notes = "Client should provide TOSCA body of the new policy",\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"Policy", },\r
-            response = ToscaServiceTemplate.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Dublin")})})\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_BAD_REQUEST, message = INVALID_BODY_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_FOUND, message = NOT_FOUND_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_ACCEPTABLE, message = INVALID_PAYLOAD_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)})\r
+    @Override\r
     public ResponseEntity<ToscaServiceTemplate> createPolicy(\r
-        @PathVariable("policyTypeId") @ApiParam(value = "ID of policy type", required = true) String policyTypeId,\r
-        @PathVariable("policyTypeVersion") @ApiParam(value = "Version of policy type",\r
-            required = true) String policyTypeVersion,\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,\r
-        @RequestBody @ApiParam(value = "Entity body of policy", required = true) ToscaServiceTemplate body) {\r
+            String policyTypeId,\r
+            String policyTypeVersion,\r
+            ToscaServiceTemplate body,\r
+            UUID requestId) {\r
         if (NetLoggerUtil.getNetworkLogger().isInfoEnabled()) {\r
             NetLoggerUtil.log(EventType.IN, CommInfrastructure.REST,\r
                 "/policytypes/" + policyTypeId + "/versions/" + policyTypeVersion + "/policies", toJson(body));\r
@@ -779,41 +395,13 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @DeleteMapping("/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}/"\r
-        + "versions/{policyVersion}")\r
-    @ApiOperation(value = "Delete a particular version of a policy",\r
-        notes = "Rule: the version that has been deployed in PDP group(s) cannot be deleted",\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"Policy", },\r
-        response = ToscaServiceTemplate.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Dublin")})})\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_FOUND, message = NOT_FOUND_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_CONFLICT, message = HTTP_CONFLICT_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)})\r
+    @Override\r
     public ResponseEntity<ToscaServiceTemplate> deleteSpecificVersionOfPolicy(\r
-        @PathVariable("policyTypeId") @ApiParam(value = "PolicyType ID", required = true) String policyTypeId,\r
-        @PathVariable("policyTypeVersion") @ApiParam(value = "Version of policy type",\r
-            required = true) String policyTypeVersion,\r
-        @PathVariable("policyId") @ApiParam(value = "ID of policy", required = true) String policyId,\r
-        @PathVariable("policyVersion") @ApiParam(value = "Version of policy", required = true) String policyVersion,\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId) {\r
+        String policyTypeId,\r
+        String policyTypeVersion,\r
+        String policyId,\r
+        String policyVersion,\r
+        UUID requestId) {\r
         try {\r
             ToscaServiceTemplate serviceTemplate =\r
                 toscaServiceTemplateService.deletePolicy(policyTypeId, policyTypeVersion, policyId, policyVersion);\r
@@ -833,40 +421,10 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @GetMapping("/policies")\r
-    @ApiOperation(value = "Retrieve all versions of available policies",\r
-        notes = "Returns all version of available policies",\r
-        response = ToscaServiceTemplate.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"Policy", },\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Guilin")\r
-            })\r
-        }\r
-    )\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_FOUND, message = NOT_FOUND_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)\r
-    })\r
+    @Override\r
     public ResponseEntity<ToscaServiceTemplate> getPolicies(\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,\r
-        @RequestParam(name = "mode", defaultValue = "bare") @ApiParam("Fetch mode for policies, BARE for bare"\r
-            + "  policies (default), REFERENCED for fully referenced policies") PolicyFetchMode mode) {\r
+            PolicyFetchMode mode,\r
+            UUID requestId) {\r
         try {\r
             ToscaServiceTemplate serviceTemplate =\r
                 toscaServiceTemplateService.fetchPolicies(null, null, null, null, mode);\r
@@ -892,42 +450,12 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @GetMapping("/policies/{policyId}/versions/{policyVersion}")\r
-    @ApiOperation(value = "Retrieve specific version of a specified policy",\r
-        notes = "Returns a particular version of specified policy",\r
-        response = ToscaServiceTemplate.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"Policy", },\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Guilin")\r
-            })\r
-        }\r
-    )\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_FOUND, message = NOT_FOUND_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)\r
-    })\r
+    @Override\r
     public ResponseEntity<ToscaServiceTemplate> getSpecificPolicy(\r
-        @PathVariable("policyId") @ApiParam(value = "Name of policy", required = true) String policyId,\r
-        @PathVariable("policyVersion") @ApiParam(value = "Version of policy", required = true) String policyVersion,\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,\r
-        @RequestParam(name = "mode", defaultValue = "bare") @ApiParam("Fetch mode for policies, BARE for bare"\r
-            + "  policies (default), REFERENCED for fully referenced policies") PolicyFetchMode mode) {\r
+            String policyId,\r
+            String policyVersion,\r
+            PolicyFetchMode mode,\r
+            UUID requestId) {\r
         try {\r
             ToscaServiceTemplate serviceTemplate =\r
                 toscaServiceTemplateService.fetchPolicies(null, null, policyId, policyVersion, mode);\r
@@ -948,37 +476,10 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @PostMapping("/policies")\r
-    @ApiOperation(value = "Create one or more new policies",\r
-        notes = "Client should provide TOSCA body of the new polic(ies)",\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"Policy", },\r
-            response = ToscaServiceTemplate.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "El Alto")})})\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_BAD_REQUEST, message = INVALID_BODY_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_FOUND, message = NOT_FOUND_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_ACCEPTABLE, message = INVALID_PAYLOAD_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)})\r
+    @Override\r
     public ResponseEntity<ToscaServiceTemplate> createPolicies(\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId,\r
-        @RequestBody @ApiParam(value = "Entity body of policy", required = true) ToscaServiceTemplate body) {\r
+        ToscaServiceTemplate body,\r
+        UUID requestId) {\r
         if (NetLoggerUtil.getNetworkLogger().isInfoEnabled()) {\r
             NetLoggerUtil.log(EventType.IN, CommInfrastructure.REST, "/policies", toJson(body));\r
         }\r
@@ -1002,37 +503,11 @@ public class ApiRestController extends CommonRestController {
      *\r
      * @return the Response object containing the results of the API operation\r
      */\r
-    @DeleteMapping("/policies/{policyId}/versions/{policyVersion}")\r
-    @ApiOperation(value = "Delete a particular version of a policy",\r
-        notes = "Rule: the version that has been deployed in PDP group(s) cannot be deleted",\r
-        authorizations = @Authorization(value = AUTHORIZATION_TYPE), tags = {"Policy", },\r
-        response = ToscaServiceTemplate.class,\r
-        responseHeaders = {\r
-            @ResponseHeader(name = VERSION_MINOR_NAME,\r
-                description = VERSION_MINOR_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_PATCH_NAME,\r
-                description = VERSION_PATCH_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = VERSION_LATEST_NAME, description = VERSION_LATEST_DESCRIPTION,\r
-                response = String.class),\r
-            @ResponseHeader(name = REQUEST_ID_NAME,\r
-                description = REQUEST_ID_HDR_DESCRIPTION, response = UUID.class)},\r
-        extensions = {\r
-            @Extension(name = EXTENSION_NAME, properties = {\r
-                @ExtensionProperty(name = API_VERSION_NAME, value = API_VERSION),\r
-                @ExtensionProperty(name = LAST_MOD_NAME, value = "Guilin")})})\r
-    @ApiResponses(value = {\r
-        @ApiResponse(code = HttpURLConnection.HTTP_UNAUTHORIZED, message = AUTHENTICATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_FORBIDDEN, message = AUTHORIZATION_ERROR_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_NOT_FOUND, message = NOT_FOUND_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_CONFLICT, message = HTTP_CONFLICT_MESSAGE),\r
-        @ApiResponse(code = HttpURLConnection.HTTP_INTERNAL_ERROR, message = SERVER_ERROR_MESSAGE)})\r
+    @Override\r
     public ResponseEntity<ToscaServiceTemplate> deleteSpecificPolicy(\r
-        @PathVariable("policyId") @ApiParam(value = "ID of policy", required = true) String policyId,\r
-        @PathVariable("policyVersion") @ApiParam(value = "Version of policy", required = true) String policyVersion,\r
-        @RequestHeader(name = REQUEST_ID_NAME, required = false)\r
-        @ApiParam(REQUEST_ID_PARAM_DESCRIPTION) UUID requestId) {\r
+        String policyId,\r
+        String policyVersion,\r
+        UUID requestId) {\r
         try {\r
             ToscaServiceTemplate serviceTemplate =\r
                 toscaServiceTemplateService.deletePolicy(null, null, policyId, policyVersion);\r
index 105019a..4b71aeb 100644 (file)
@@ -22,11 +22,20 @@ tags:
     node templates which can be recognized and executable by incorporated policy engines. It is an
     independent component running rest service that takes all node templates design API calls
     from clients and then assign them to different API working functions.
+- name: "Policy Design"
+  description:
+    Policy Design API is publicly exposed for clients to Create/Read/Update/Delete
+    policy types, policy type implementation and policies which can be recognized
+    and executable by incorporated policy engines. It is an
+    independent component running rest service that takes all policy design API calls
+    from clients and then assign them to different API working functions. Besides
+    that, API is also exposed for clients to retrieve healthcheck status of this API
+    rest service and the statistics report including the counters of API invocation.
 paths:
   /policy/api/v1/healthcheck:
     get:
       tags:
-      - HealthCheck
+      - "Policy Design"
       summary: Perform a system healthcheck
       description: Returns healthy status of the Policy API component
       operationId: getHealthCheck
@@ -919,7 +928,7 @@ paths:
   /policy/api/v1/policies:
     get:
       tags:
-      - PolicyInstances
+      - "Policy Design"
       summary: Retrieve all versions of available policies
       description: Returns all version of available policies
       operationId: getPolicies
@@ -929,11 +938,7 @@ paths:
         description: Fetch mode for policies, BARE for bare  policies (default), REFERENCED
           for fully referenced policies
         schema:
-          type: string
-          default: BARE
-          enum:
-          - BARE
-          - REFERENCED
+          $ref: '#/components/schemas/PolicyFetchMode'
       - name: X-ONAP-RequestID
         in: header
         description: RequestID for http transaction
@@ -1040,7 +1045,7 @@ paths:
         last-mod-release: Guilin
     post:
       tags:
-      - PolicyInstances
+      - "Policy Design"
       summary: Create one or more new policies
       description: Client should provide TOSCA body of the new polic(ies)
       operationId: createPolicies
@@ -1222,7 +1227,7 @@ paths:
   /policy/api/v1/policies/{policyId}/versions/{policyVersion}:
     get:
       tags:
-      - PolicyInstances
+      - "Policy Design"
       summary: Retrieve specific version of a specified policy
       description: Returns a particular version of specified policy
       operationId: getSpecificPolicy
@@ -1232,11 +1237,7 @@ paths:
         description: Fetch mode for policies, BARE for bare  policies (default), REFERENCED
           for fully referenced policies
         schema:
-          type: string
-          default: BARE
-          enum:
-          - BARE
-          - REFERENCED
+          $ref: '#/components/schemas/PolicyFetchMode'
       - name: policyId
         in: path
         description: Name of policy
@@ -1355,7 +1356,7 @@ paths:
         last-mod-release: Guilin
     delete:
       tags:
-      - PolicyInstances
+      - "Policy Design"
       summary: Delete a particular version of a policy
       description: 'Rule: the version that has been deployed in PDP group(s) cannot
         be deleted'
@@ -1514,7 +1515,7 @@ paths:
   /policy/api/v1/policytypes:
     get:
       tags:
-      - PolicyTypes
+      - "Policy Design"
       summary: Retrieve existing policy types
       description: Returns a list of existing policy types stored in Policy Framework
       operationId: getAllPolicyTypes
@@ -1625,7 +1626,7 @@ paths:
         last-mod-release: Dublin
     post:
       tags:
-      - PolicyTypes
+      - "Policy Design"
       summary: Create a new policy type
       description: Client should provide TOSCA body of the new policy type
       operationId: createPolicyType
@@ -1807,7 +1808,7 @@ paths:
   /policy/api/v1/policytypes/{policyTypeId}:
     get:
       tags:
-      - PolicyTypes
+      - "Policy Design"
       summary: Retrieve all available versions of a policy type
       description: Returns a list of all available versions for the specified policy
         type
@@ -1926,7 +1927,7 @@ paths:
   /policy/api/v1/policytypes/{policyTypeId}/versions/latest:
     get:
       tags:
-      - PolicyTypes
+      - "Policy Design"
       summary: Retrieve latest version of a policy type
       description: Returns latest version for the specified policy type
       operationId: getLatestVersionOfPolicyType
@@ -2044,7 +2045,7 @@ paths:
   /policy/api/v1/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies:
     get:
       tags:
-      - PolicyInstances
+      - "Policy Design"
       summary: Retrieve all versions of a policy created for a particular policy type
         version
       description: Returns a list of all versions of specified policy created for
@@ -2056,11 +2057,7 @@ paths:
         description: Fetch mode for policies, BARE for bare policies (default), REFERENCED
           for fully referenced policies
         schema:
-          type: string
-          default: BARE
-          enum:
-          - BARE
-          - REFERENCED
+          $ref: '#/components/schemas/PolicyFetchMode'
       - name: policyTypeId
         in: path
         description: ID of policy type
@@ -2179,7 +2176,7 @@ paths:
         last-mod-release: Dublin
     post:
       tags:
-      - PolicyInstances
+      - "Policy Design"
       summary: Create a new policy for a policy type version
       description: Client should provide TOSCA body of the new policy
       operationId: createPolicy
@@ -2373,7 +2370,7 @@ paths:
   /policy/api/v1/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}:
     get:
       tags:
-      - PolicyInstances
+      - "Policy Design"
       summary: Retrieve all version details of a policy created for a particular policy
         type version
       description: Returns a list of all version details of the specified policy
@@ -2384,11 +2381,7 @@ paths:
         description: Fetch mode for policies, BARE for bare policies (default), REFERENCED
           for fully referenced policies
         schema:
-          type: string
-          default: BARE
-          enum:
-          - BARE
-          - REFERENCED
+          $ref: '#/components/schemas/PolicyFetchMode'
       - name: policyId
         in: path
         description: ID of policy
@@ -2514,7 +2507,7 @@ paths:
   /policy/api/v1/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}/versions/latest:
     get:
       tags:
-      - PolicyInstances
+      - "Policy Design"
       summary: Retrieve the latest version of a particular policy
       description: Returns the latest version of specified policy
       operationId: getLatestVersionOfPolicy
@@ -2524,11 +2517,7 @@ paths:
         description: Fetch mode for policies, TERSE for bare policies (default), REFERENCED
           for fully referenced policies
         schema:
-          type: string
-          default: BARE
-          enum:
-          - BARE
-          - REFERENCED
+          $ref: '#/components/schemas/PolicyFetchMode'
       - name: policyId
         in: path
         description: ID of policy
@@ -2654,7 +2643,7 @@ paths:
   /policy/api/v1/policytypes/{policyTypeId}/versions/{policyTypeVersion}/policies/{policyId}/versions/{policyVersion}:
     get:
       tags:
-      - PolicyInstances
+      - "Policy Design"
       summary: Retrieve one version of a policy created for a particular policy type
         version
       description: Returns a particular version of specified policy created for the
@@ -2666,11 +2655,7 @@ paths:
         description: Fetch mode for policies, BARE for bare policies  (default), REFERENCED
           for fully referenced policies
         schema:
-          type: string
-          default: BARE
-          enum:
-          - BARE
-          - REFERENCED
+          $ref: '#/components/schemas/PolicyFetchMode'
       - name: policyId
         in: path
         description: ID of policy
@@ -2801,18 +2786,12 @@ paths:
         last-mod-release: Dublin
     delete:
       tags:
-      - PolicyInstances
+      - "Policy Design"
       summary: Delete a particular version of a policy
       description: 'Rule: the version that has been deployed in PDP group(s) cannot
         be deleted'
       operationId: deleteSpecificVersionOfPolicy
       parameters:
-      - name: policyId
-        in: path
-        description: ID of policy
-        required: true
-        schema:
-          type: string
       - name: policyTypeId
         in: path
         description: PolicyType ID
@@ -2825,6 +2804,12 @@ paths:
         required: true
         schema:
           type: string
+      - name: policyId
+        in: path
+        description: ID of policy
+        required: true
+        schema:
+          type: string
       - name: policyVersion
         in: path
         description: Version of policy
@@ -2972,7 +2957,7 @@ paths:
   /policy/api/v1/policytypes/{policyTypeId}/versions/{versionId}:
     get:
       tags:
-      - PolicyTypes
+      - "Policy Design"
       summary: Retrieve one particular version of a policy type
       description: Returns a particular version for the specified policy type
       operationId: getSpecificVersionOfPolicyType
@@ -3095,7 +3080,7 @@ paths:
         last-mod-release: Dublin
     delete:
       tags:
-      - PolicyTypes
+      - "Policy Design"
       summary: Delete one version of a policy type
       description: 'Rule 1: pre-defined policy types cannot be deleted;Rule 2: policy
         types that are in use (parameterized by a TOSCA policy) cannot be deleted.The
@@ -3255,7 +3240,7 @@ paths:
   /policy/api/v1/statistics:
     get:
       tags:
-      - Statistics
+      - "Policy Design"
       summary: Retrieve current statistics
       description: Returns current statistics including the counters of API invocation
       operationId: getStatistics
@@ -3382,3 +3367,6 @@ components:
     StatisticsReport:
       title: StatisticsReport
       type: object
+    PolicyFetchMode:
+      title: PolicyFetchMode
+      type: object
\ No newline at end of file
index 4f4dd6b..eab9fe7 100644 (file)
@@ -183,6 +183,11 @@ public class TestApiRestServer extends CommonTestRestController {
         registry.add("server.ssl.key-password", () -> SelfSignedKeyStore.PRIVATE_KEY_PASSWORD);
     }
 
+    @Test
+    public void testSwagger() throws Exception {
+        super.testSwagger(apiPort);
+    }
+
     @Test
     public void testCreatePolicyTypes() throws Exception {
         for (String resrcName : TOSCA_POLICYTYPE_RESOURCE_NAMES) {
@@ -318,7 +323,8 @@ public class TestApiRestServer extends CommonTestRestController {
     }
 
     private void testHealthCheckSuccess(String mediaType) throws Exception {
-        final Invocation.Builder invocationBuilder = sendHttpsRequest(HEALTHCHECK_ENDPOINT, mediaType, apiPort);
+        final Invocation.Builder invocationBuilder = sendHttpsRequest(
+                CONTEXT_PATH, HEALTHCHECK_ENDPOINT, mediaType, apiPort);
         final HealthCheckReport report = invocationBuilder.get(HealthCheckReport.class);
         validateHealthCheckReport(NAME, SELF, true, 200, ALIVE, report);
     }
@@ -334,11 +340,11 @@ public class TestApiRestServer extends CommonTestRestController {
     }
 
     private void testApiStatistics_200(String mediaType) throws Exception {
-        Invocation.Builder invocationBuilder = sendHttpsRequest(STATISTICS_ENDPOINT, mediaType, apiPort);
+        Invocation.Builder invocationBuilder = sendHttpsRequest(CONTEXT_PATH, STATISTICS_ENDPOINT, mediaType, apiPort);
         StatisticsReport report = invocationBuilder.get(StatisticsReport.class);
         validateStatisticsReport(report, 200);
         updateApiStatistics();
-        invocationBuilder = sendHttpsRequest(STATISTICS_ENDPOINT, mediaType, apiPort);
+        invocationBuilder = sendHttpsRequest(CONTEXT_PATH, STATISTICS_ENDPOINT, mediaType, apiPort);
         report = invocationBuilder.get(StatisticsReport.class);
         validateStatisticsReport(report, 200);
         // ApiStatisticsManager.resetAllStatistics();
index 9289adb..4f2e8b2 100644 (file)
@@ -22,6 +22,8 @@
 
 package org.onap.policy.api.main.rest.utils;
 
+import static org.junit.Assert.assertTrue;
+
 import java.security.SecureRandom;
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.TrustManager;
@@ -54,6 +56,14 @@ public class CommonTestRestController {
     protected static final StandardCoder standardCoder = new StandardCoder();
     protected static StandardYamlCoder standardYamlCoder = new StandardYamlCoder();
 
+    protected static final String HTTPS_PREFIX = "https://localhost:";
+    protected static final String CONTEXT_PATH = "/policy/api/v1/";
+
+    protected void testSwagger(final int apiPort) throws Exception {
+        final Invocation.Builder invocationBuilder = sendHttpsRequest("/", "v3/api-docs", APP_JSON, apiPort);
+        final String resp = invocationBuilder.get(String.class);
+        assertTrue((resp).contains("{\"openapi\":\"3.0.1\",\"info\":{\"title\":\"Policy Framework Lifecycle API\""));
+    }
 
     protected Response createResource(String endpoint, String resourceName, int apiPort)
         throws Exception {
@@ -63,7 +73,7 @@ public class CommonTestRestController {
         mediaType = mediaType == null ?  APP_JSON : mediaType;
 
         final Invocation.Builder invocationBuilder;
-        invocationBuilder = sendHttpsRequest(endpoint, mediaType, apiPort);
+        invocationBuilder = sendHttpsRequest(CONTEXT_PATH, endpoint, mediaType, apiPort);
         Entity<ToscaServiceTemplate> entity = Entity.entity(rawServiceTemplate, mediaType);
         return invocationBuilder.post(entity);
     }
@@ -71,14 +81,14 @@ public class CommonTestRestController {
     protected Response readResource(String endpoint, String mediaType, int apiPort) throws Exception {
 
         final Invocation.Builder invocationBuilder;
-        invocationBuilder = sendHttpsRequest(endpoint, mediaType, apiPort);
+        invocationBuilder = sendHttpsRequest(CONTEXT_PATH, endpoint, mediaType, apiPort);
         return invocationBuilder.get();
     }
 
     protected Response deleteResource(String endpoint, String mediaType, int apiPort) throws Exception {
 
         final Invocation.Builder invocationBuilder;
-        invocationBuilder = sendHttpsRequest(endpoint, mediaType, apiPort);
+        invocationBuilder = sendHttpsRequest(CONTEXT_PATH, endpoint, mediaType, apiPort);
         return invocationBuilder.delete();
     }
 
@@ -88,7 +98,7 @@ public class CommonTestRestController {
         ToscaServiceTemplate rawServiceTemplate = getRawServiceTemplate(resourceName);
 
         final Invocation.Builder invocationBuilder;
-        invocationBuilder = sendHttpsRequest(endpoint, mediaType, apiPort);
+        invocationBuilder = sendHttpsRequest(CONTEXT_PATH, endpoint, mediaType, apiPort);
         Entity<ToscaServiceTemplate> entity = Entity.entity(rawServiceTemplate, mediaType);
         return invocationBuilder.put(entity);
     }
@@ -101,8 +111,8 @@ public class CommonTestRestController {
         return standardYamlCoder.decode(ResourceUtils.getResourceAsString(resourceName), ToscaServiceTemplate.class);
     }
 
-    protected Invocation.Builder sendHttpsRequest(final String endpoint, String mediaType, int apiPort)
-        throws Exception {
+    protected Invocation.Builder sendHttpsRequest(
+            final String context, final String endpoint, String mediaType, int apiPort) throws Exception {
 
         final TrustManager[] noopTrustManager = NetworkUtil.getAlwaysTrustingManager();
 
@@ -121,7 +131,7 @@ public class CommonTestRestController {
             client.register(YamlMessageBodyHandler.class);
         }
 
-        final WebTarget webTarget = client.target("https://localhost:" + apiPort + "/policy/api/v1/" + endpoint);
+        final WebTarget webTarget = client.target(HTTPS_PREFIX + apiPort + context + endpoint);
 
         final Invocation.Builder invocationBuilder = webTarget.request(mediaType);