New listPolicy API to check pushed policies in PDP
[policy/engine.git] / ONAP-PDP-REST / src / main / java / org / onap / policy / pdp / rest / api / controller / PolicyEngineServices.java
index 2348fd0..4296c05 100644 (file)
@@ -2,14 +2,14 @@
  * ============LICENSE_START=======================================================
  * ONAP-PDP-REST
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
-package org.onap.policy.pdp.rest.api.controller;
 
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
+package org.onap.policy.pdp.rest.api.controller;
 
 import java.lang.reflect.InvocationTargetException;
 import java.util.Collection;
 import java.util.concurrent.atomic.AtomicLong;
-
 import javax.servlet.http.HttpServletRequest;
-
+import org.onap.policy.api.ConfigNameRequest;
 import org.onap.policy.api.ConfigRequestParameters;
 import org.onap.policy.api.DecisionRequestParameters;
 import org.onap.policy.api.DecisionResponse;
@@ -45,7 +40,6 @@ import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
 import org.onap.policy.pdp.rest.XACMLPdpServlet;
 import org.onap.policy.pdp.rest.api.models.ConfigFirewallPolicyAPIRequest;
-import org.onap.policy.pdp.rest.api.models.ConfigNameRequest;
 import org.onap.policy.pdp.rest.api.models.ConfigPolicyAPIRequest;
 import org.onap.policy.pdp.rest.api.models.PolicyConfig;
 import org.onap.policy.pdp.rest.api.services.CreateUpdateConfigPolicyService;
@@ -58,6 +52,7 @@ import org.onap.policy.pdp.rest.api.services.GetDecisionService;
 import org.onap.policy.pdp.rest.api.services.GetDictionaryService;
 import org.onap.policy.pdp.rest.api.services.GetMetricsService;
 import org.onap.policy.pdp.rest.api.services.ListConfigService;
+import org.onap.policy.pdp.rest.api.services.ListPolicyService;
 import org.onap.policy.pdp.rest.api.services.NotificationService;
 import org.onap.policy.pdp.rest.api.services.NotificationService.NotificationServiceType;
 import org.onap.policy.pdp.rest.api.services.PolicyEngineImportService;
@@ -68,6 +63,7 @@ import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.http.converter.HttpMessageNotReadableException;
 import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -76,583 +72,559 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
-
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
 import springfox.documentation.annotations.ApiIgnore;
 
 @RestController
 @Api(value = "Policy Engine Services")
 @RequestMapping("/")
 public class PolicyEngineServices {
-       private static Logger logger = FlexLogger.getLogger(PolicyEngineServices.class.getName());
-       private static final String NOTIFICATIONPERM = "notification"; 
-       
-       private final AtomicLong configCounter = new AtomicLong();
-       private final AtomicLong configNameCounter = new AtomicLong();
-       private final AtomicLong eventCounter = new AtomicLong();
-       private final AtomicLong decisionCounter = new AtomicLong();
-       private final AtomicLong pushCounter = new AtomicLong();
-       private final AtomicLong deleteCounter = new AtomicLong();
-       private final AtomicLong createPolicyCounter = new AtomicLong();
-       private final AtomicLong updatePolicyCounter = new AtomicLong();
-       private final AtomicLong createDictionaryCounter = new AtomicLong();
-       private final AtomicLong updateDictionaryCounter = new AtomicLong();
-       private final AtomicLong getDictionaryCounter = new AtomicLong();
-       private final AtomicLong policyEngineImportCounter = new AtomicLong();
-       private final AtomicLong deprecatedCounter = new AtomicLong();
-       private final AtomicLong metricCounter = new AtomicLong();
-       private final AtomicLong notificationCounter = new AtomicLong();
+    private static Logger logger = FlexLogger.getLogger(PolicyEngineServices.class.getName());
+    private static final String NOTIFICATIONPERM = "notification";
+
+    private final AtomicLong configCounter = new AtomicLong();
+    private final AtomicLong configNameCounter = new AtomicLong();
+    private final AtomicLong eventCounter = new AtomicLong();
+    private final AtomicLong decisionCounter = new AtomicLong();
+    private final AtomicLong pushCounter = new AtomicLong();
+    private final AtomicLong deleteCounter = new AtomicLong();
+    private final AtomicLong createPolicyCounter = new AtomicLong();
+    private final AtomicLong updatePolicyCounter = new AtomicLong();
+    private final AtomicLong createDictionaryCounter = new AtomicLong();
+    private final AtomicLong updateDictionaryCounter = new AtomicLong();
+    private final AtomicLong getDictionaryCounter = new AtomicLong();
+    private final AtomicLong policyEngineImportCounter = new AtomicLong();
+    private final AtomicLong deprecatedCounter = new AtomicLong();
+    private final AtomicLong metricCounter = new AtomicLong();
+    private final AtomicLong notificationCounter = new AtomicLong();
+
+    /**
+     * Gets the config.
+     *
+     * @param configRequestParameters the config request parameters
+     * @param clientEncoding the client encoding
+     * @param requestId the request ID
+     * @return the config
+     */
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Gets the configuration from the PolicyDecisionPoint(PDP)")
+    @RequestMapping(value = "/getConfig", method = RequestMethod.POST)
+    @ResponseBody
+    public ResponseEntity<Collection<PolicyConfig>> getConfig(
+            @RequestBody ConfigRequestParameters configRequestParameters,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        Collection<PolicyConfig> policyConfig = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "getConfig")) {
+            GetConfigService getConfigService = new GetConfigService(configRequestParameters, requestID);
+            policyConfig = getConfigService.getResult();
+            status = getConfigService.getResponseCode();
+        }
+        configCounter.incrementAndGet();
+        return new ResponseEntity<>(policyConfig, status);
+    }
+
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Gets the configuration from the PolicyDecisionPoint(PDP) using PolicyName")
+    @RequestMapping(value = "/getConfigByPolicyName", method = RequestMethod.POST)
+    @ResponseBody
+    @Deprecated
+    public ResponseEntity<Collection<PolicyConfig>> getConfigByPolicyName(
+            @RequestBody ConfigNameRequest configNameRequest,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        Collection<PolicyConfig> policyConfig = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "getConfigByPolicyName")) {
+            ConfigRequestParameters configRequestParameters = new ConfigRequestParameters();
+            configRequestParameters.setPolicyName(configNameRequest.getPolicyName());
+            GetConfigService getConfigService = new GetConfigService(configRequestParameters, requestID);
+            policyConfig = getConfigService.getResult();
+            status = getConfigService.getResponseCode();
+        }
+        configNameCounter.incrementAndGet();
+        return new ResponseEntity<>(policyConfig, status);
+    }
+
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Gets the list of configuration policies from the PDP")
+    @RequestMapping(value = "/listConfig", method = RequestMethod.POST)
+    @ResponseBody
+    public ResponseEntity<Collection<String>> listConfig(@RequestBody ConfigRequestParameters configRequestParameters,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        Collection<String> results = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "listConfig")) {
+            ListConfigService listConfigService = new ListConfigService(configRequestParameters, requestID);
+            results = listConfigService.getResult();
+            status = listConfigService.getResponseCode();
+        }
+        configCounter.incrementAndGet();
+        return new ResponseEntity<>(results, status);
+    }
+
+    /**
+     * List Policy.
+     *
+     * @param ConfigNameRequest the config request parameters
+     * @param clientEncoding the client encoding
+     * @param requestId the request ID
+     * @return the response entity
+     */
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Gets the list of policies from the PDP")
+    @PostMapping(value = "/listPolicy")
+    @ResponseBody
+    public ResponseEntity<Collection<String>> listPolicy(@RequestBody ConfigNameRequest configNameRequest,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestId) {
+        Collection<String> results = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        logger.info("Operation: listPolicy - " + configNameRequest);
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestId, "listPolicy")) {
+            ListPolicyService listPolicyService = new ListPolicyService(configNameRequest);
+            results = listPolicyService.getResult();
+            status = listPolicyService.getResponseCode();
+        }
+        configCounter.incrementAndGet();
+        return new ResponseEntity<>(results, status);
+    }
+
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Gets the policy metrics from the PolicyAccessPoint(PAP)")
+    @RequestMapping(value = "/getMetrics", method = RequestMethod.GET)
+    @ResponseBody
+    public ResponseEntity<MetricsResponse> getMetrics(
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        MetricsResponse response = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "getMetrics")) {
+            GetMetricsService getMetricsService = new GetMetricsService(requestID);
+            response = getMetricsService.getResult();
+            status = getMetricsService.getResponseCode();
+        }
+        metricCounter.incrementAndGet();
+        return new ResponseEntity<>(response, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Gets the configuration from the PolicyDecisionPoint(PDP)")
-       @RequestMapping(value = "/getConfig", method = RequestMethod.POST)
-       @ResponseBody
-       public ResponseEntity<Collection<PolicyConfig>> getConfig(
-                       @RequestBody ConfigRequestParameters configRequestParameters,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               Collection<PolicyConfig> policyConfig = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "getConfig")) {
-                       GetConfigService getConfigService = new GetConfigService(
-                                       configRequestParameters, requestID);
-                       policyConfig = getConfigService.getResult();
-                       status = getConfigService.getResponseCode();
-               }
-               configCounter.incrementAndGet();
-               return new ResponseEntity<>(policyConfig, status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Registers DMaaP Topic to recieve notification from Policy Engine")
+    @RequestMapping(value = "/getNotification", method = RequestMethod.POST)
+    @ResponseBody
+    public ResponseEntity<String> getNotification(@RequestBody String notificationTopic,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        String policyResponse = "Error Unauthorized to use Notification Service.";
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, NOTIFICATIONPERM)) {
+            NotificationService notificationService =
+                    new NotificationService(notificationTopic, requestID, NotificationServiceType.ADD);
+            policyResponse = notificationService.getResult();
+            status = notificationService.getResponseCode();
+        }
+        notificationCounter.incrementAndGet();
+        return new ResponseEntity<>(policyResponse, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Gets the configuration from the PolicyDecisionPoint(PDP) using PolicyName")
-       @RequestMapping(value = "/getConfigByPolicyName", method = RequestMethod.POST)
-       @ResponseBody
-       @Deprecated
-       public ResponseEntity<Collection<PolicyConfig>> getConfigByPolicyName(
-                       @RequestBody ConfigNameRequest configNameRequest,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               Collection<PolicyConfig> policyConfig = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID,"getConfigByPolicyName")) {
-                       ConfigRequestParameters configRequestParameters = new ConfigRequestParameters();
-                       configRequestParameters.setPolicyName(configNameRequest
-                                       .getPolicyName());
-                       GetConfigService getConfigService = new GetConfigService(
-                                       configRequestParameters, requestID);
-                       policyConfig = getConfigService.getResult();
-                       status = getConfigService.getResponseCode();
-               }
-               configNameCounter.incrementAndGet();
-               return new ResponseEntity<>(policyConfig, status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "De-Registers DMaaP Topic to stop recieving notifications from Policy Engine")
+    @RequestMapping(value = "/stopNotification", method = RequestMethod.POST)
+    @ResponseBody
+    public ResponseEntity<String> stopNotification(@RequestBody String notificationTopic,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        String policyResponse = "Error Unauthorized to use Notification Service.";
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, NOTIFICATIONPERM)) {
+            NotificationService notificationService =
+                    new NotificationService(notificationTopic, requestID, NotificationServiceType.REMOVE);
+            policyResponse = notificationService.getResult();
+            status = notificationService.getResponseCode();
+        }
+        notificationCounter.incrementAndGet();
+        return new ResponseEntity<>(policyResponse, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Gets the list of configuration policies from the PDP")
-       @RequestMapping(value = "/listConfig", method = RequestMethod.POST)
-       @ResponseBody
-       public ResponseEntity<Collection<String>> listConfig(
-                       @RequestBody ConfigRequestParameters configRequestParameters,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               Collection<String> results = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth
-                               .checkPermissions(clientEncoding, requestID, "listConfig")) {
-                       ListConfigService listConfigService = new ListConfigService(
-                                       configRequestParameters, requestID);
-                       results = listConfigService.getResult();
-                       status = listConfigService.getResponseCode();
-               }
-               configCounter.incrementAndGet();
-               return new ResponseEntity<>(results, status);
-       }
-       
-       @ApiImplicitParams({
-               @ApiImplicitParam(name ="Authorization", required = true, paramType = "Header"),
-               @ApiImplicitParam(name ="Environment", required = true, paramType = "Header")
-       })
-       @ApiOperation(value= "Gets the policy metrics from the PolicyAccessPoint(PAP)")
-       @RequestMapping(value="/getMetrics", method=RequestMethod.GET)
-       @ResponseBody
-       public ResponseEntity<MetricsResponse> getMetrics(
-                       @RequestHeader(value="ClientAuth", required=true)String clientEncoding,
-                       @RequestHeader(value="X-ECOMP-RequestID", required=false)String requestID) {
-               MetricsResponse response = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions. 
-               if(PDPApiAuth.checkPermissions(clientEncoding, requestID, "getMetrics")){
-                       GetMetricsService getMetricsService = new GetMetricsService(requestID);
-                       response = getMetricsService.getResult();
-                       status = getMetricsService.getResponseCode();
-               }       
-               metricCounter.incrementAndGet();
-               return new ResponseEntity<>(response, status);
-       }
-       
-       @ApiImplicitParams({
-               @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-               @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Registers DMaaP Topic to recieve notification from Policy Engine")
-       @RequestMapping(value = "/getNotification", method = RequestMethod.POST)
-       @ResponseBody
-       public ResponseEntity<String> getNotification(
-                       @RequestBody String notificationTopic,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               String policyResponse = "Error Unauthorized to use Notification Service.";
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID, NOTIFICATIONPERM)) {
-                       NotificationService notificationService = new NotificationService(notificationTopic, requestID, NotificationServiceType.ADD);
-                       policyResponse = notificationService.getResult();
-                       status = notificationService.getResponseCode();
-               }
-               notificationCounter.incrementAndGet();
-               return new ResponseEntity<>(policyResponse, status);
-       }
-       
-       @ApiImplicitParams({
-               @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-               @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "De-Registers DMaaP Topic to stop recieving notifications from Policy Engine")
-       @RequestMapping(value = "/stopNotification", method = RequestMethod.POST)
-       @ResponseBody
-       public ResponseEntity<String> stopNotification(
-                       @RequestBody String notificationTopic,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               String policyResponse = "Error Unauthorized to use Notification Service.";
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID, NOTIFICATIONPERM)) {
-                       NotificationService notificationService = new NotificationService(notificationTopic, requestID, NotificationServiceType.REMOVE);
-                       policyResponse = notificationService.getResult();
-                       status = notificationService.getResponseCode();
-               }
-               notificationCounter.incrementAndGet();
-               return new ResponseEntity<>(policyResponse, status);
-       }
-       
-       @ApiImplicitParams({
-               @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-               @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Sends Heartbeat to DMaaP Topic Registry to continue recieving notifications from Policy Engine")
-       @RequestMapping(value = "/sendHeartbeat", method = RequestMethod.POST)
-       @ResponseBody
-       public ResponseEntity<String> sendHeartbeat(
-                       @RequestBody String notificationTopic,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               String policyResponse = "Error Unauthorized to use Heartbeat Service.";
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID, NOTIFICATIONPERM)) {
-                       NotificationService notificationService = new NotificationService(notificationTopic, requestID, NotificationServiceType.HB);
-                       policyResponse = notificationService.getResult();
-                       status = notificationService.getResponseCode();
-               }
-               return new ResponseEntity<>(policyResponse, status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(
+            value = "Sends Heartbeat to DMaaP Topic Registry to continue recieving notifications from Policy Engine")
+    @RequestMapping(value = "/sendHeartbeat", method = RequestMethod.POST)
+    @ResponseBody
+    public ResponseEntity<String> sendHeartbeat(@RequestBody String notificationTopic,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        String policyResponse = "Error Unauthorized to use Heartbeat Service.";
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, NOTIFICATIONPERM)) {
+            NotificationService notificationService =
+                    new NotificationService(notificationTopic, requestID, NotificationServiceType.HB);
+            policyResponse = notificationService.getResult();
+            status = notificationService.getResponseCode();
+        }
+        return new ResponseEntity<>(policyResponse, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Sends the Events specified to the Policy Engine")
-       @RequestMapping(value = "/sendEvent", method = RequestMethod.POST)
-       @ResponseBody
-       public ResponseEntity<Collection<PolicyResponse>> sendEvent(
-                       @RequestBody EventRequestParameters eventRequestParameters,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               Collection<PolicyResponse> policyResponse = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "sendEvent")) {
-                       SendEventService sendEventService = new SendEventService(
-                                       eventRequestParameters, requestID);
-                       policyResponse = sendEventService.getResult();
-                       status = sendEventService.getResponseCode();
-               }
-               eventCounter.incrementAndGet();
-               return new ResponseEntity<>(policyResponse,
-                               status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Sends the Events specified to the Policy Engine")
+    @RequestMapping(value = "/sendEvent", method = RequestMethod.POST)
+    @ResponseBody
+    public ResponseEntity<Collection<PolicyResponse>> sendEvent(
+            @RequestBody EventRequestParameters eventRequestParameters,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        Collection<PolicyResponse> policyResponse = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "sendEvent")) {
+            SendEventService sendEventService = new SendEventService(eventRequestParameters, requestID);
+            policyResponse = sendEventService.getResult();
+            status = sendEventService.getResponseCode();
+        }
+        eventCounter.incrementAndGet();
+        return new ResponseEntity<>(policyResponse, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Gets the Decision using specified decision parameters")
-       @RequestMapping(value = "/getDecision", method = RequestMethod.POST)
-       @ResponseBody
-       public ResponseEntity<DecisionResponse> getDecision(
-                       @RequestBody DecisionRequestParameters decisionRequestParameters,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               DecisionResponse decisionResponse = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID,
-                               "getDecision")) {
-                       GetDecisionService getDecisionService = new GetDecisionService(
-                                       decisionRequestParameters, requestID);
-                       decisionResponse = getDecisionService.getResult();
-                       status = getDecisionService.getResponseCode();
-               }
-               decisionCounter.incrementAndGet();
-               return new ResponseEntity<>(decisionResponse, status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Gets the Decision using specified decision parameters")
+    @RequestMapping(value = "/getDecision", method = RequestMethod.POST)
+    @ResponseBody
+    public ResponseEntity<DecisionResponse> getDecision(
+            @RequestBody DecisionRequestParameters decisionRequestParameters,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        DecisionResponse decisionResponse = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "getDecision")) {
+            GetDecisionService getDecisionService = new GetDecisionService(decisionRequestParameters, requestID);
+            decisionResponse = getDecisionService.getResult();
+            status = getDecisionService.getResponseCode();
+        }
+        decisionCounter.incrementAndGet();
+        return new ResponseEntity<>(decisionResponse, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Pushes the specified policy to the PDP Group.")
-       @RequestMapping(value = "/pushPolicy", method = RequestMethod.PUT)
-       @ResponseBody
-       public ResponseEntity<String> pushPolicy(
-                       @RequestBody PushPolicyParameters pushPolicyParameters,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               String response = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth
-                               .checkPermissions(clientEncoding, requestID, "pushPolicy")) {
-                       PushPolicyService pushPolicyService = new PushPolicyService(
-                                       pushPolicyParameters, requestID);
-                       response = pushPolicyService.getResult();
-                       status = pushPolicyService.getResponseCode();
-               }
-               pushCounter.incrementAndGet();
-               return new ResponseEntity<>(response, status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Pushes the specified policy to the PDP Group.")
+    @RequestMapping(value = "/pushPolicy", method = RequestMethod.PUT)
+    @ResponseBody
+    public ResponseEntity<String> pushPolicy(@RequestBody PushPolicyParameters pushPolicyParameters,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        String response = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "pushPolicy")) {
+            PushPolicyService pushPolicyService = new PushPolicyService(pushPolicyParameters, requestID);
+            response = pushPolicyService.getResult();
+            status = pushPolicyService.getResponseCode();
+        }
+        pushCounter.incrementAndGet();
+        return new ResponseEntity<>(response, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Deletes the specified policy from the PDP Group or PAP.")
-       @RequestMapping(value = "/deletePolicy", method = RequestMethod.DELETE)
-       @ResponseBody
-       public ResponseEntity<String> deletePolicy(
-                       @RequestBody DeletePolicyParameters deletePolicyParameters,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               String response = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID,
-                               "deletePolicy")) {
-                       DeletePolicyService deletePolicyService = new DeletePolicyService(
-                                       deletePolicyParameters, requestID);
-                       response = deletePolicyService.getResult();
-                       status = deletePolicyService.getResponseCode();
-               }
-               deleteCounter.incrementAndGet();
-               return new ResponseEntity<>(response, status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Deletes the specified policy from the PDP Group or PAP.")
+    @RequestMapping(value = "/deletePolicy", method = RequestMethod.DELETE)
+    @ResponseBody
+    public ResponseEntity<String> deletePolicy(@RequestBody DeletePolicyParameters deletePolicyParameters,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        String response = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "deletePolicy")) {
+            DeletePolicyService deletePolicyService = new DeletePolicyService(deletePolicyParameters, requestID);
+            response = deletePolicyService.getResult();
+            status = deletePolicyService.getResponseCode();
+        }
+        deleteCounter.incrementAndGet();
+        return new ResponseEntity<>(response, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Creates a Policy based on given Policy Parameters.")
-       @RequestMapping(value = "/createPolicy", method = RequestMethod.PUT)
-       @ResponseBody
-       public ResponseEntity<String> createPolicy(
-                       @RequestBody PolicyParameters policyParameters,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               String response = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID,
-                               "createPolicy")) {
-                       CreateUpdatePolicyService createPolicyService;
-                       try {
-                               createPolicyService = (CreateUpdatePolicyService) XACMLPdpServlet.getCreateUpdatePolicyConstructor().newInstance(
-                                               policyParameters, requestID, false);
-                               response = createPolicyService.getResult();
-                               status = createPolicyService.getResponseCode();
-                       } catch (InstantiationException | IllegalAccessException
-                                       | IllegalArgumentException | InvocationTargetException e) {
-                               logger.error(e.getMessage(), e);
-                               response = "Problem with CreateUpdate Policy Service. ";
-                               status = HttpStatus.INTERNAL_SERVER_ERROR;
-                       }
-               }
-               createPolicyCounter.incrementAndGet();
-               return new ResponseEntity<>(response, status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Creates a Policy based on given Policy Parameters.")
+    @RequestMapping(value = "/createPolicy", method = RequestMethod.PUT)
+    @ResponseBody
+    public ResponseEntity<String> createPolicy(@RequestBody PolicyParameters policyParameters,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        String response = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "createPolicy")) {
+            CreateUpdatePolicyService createPolicyService;
+            try {
+                createPolicyService = (CreateUpdatePolicyService) XACMLPdpServlet.getCreateUpdatePolicyConstructor()
+                        .newInstance(policyParameters, requestID, false);
+                response = createPolicyService.getResult();
+                status = createPolicyService.getResponseCode();
+            } catch (InstantiationException | IllegalAccessException | IllegalArgumentException
+                    | InvocationTargetException e) {
+                logger.error(e.getMessage(), e);
+                response = "Problem with CreateUpdate Policy Service. ";
+                status = HttpStatus.INTERNAL_SERVER_ERROR;
+            }
+        }
+        createPolicyCounter.incrementAndGet();
+        return new ResponseEntity<>(response, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Updates a Policy based on given Policy Parameters.")
-       @RequestMapping(value = "/updatePolicy", method = RequestMethod.PUT)
-       @ResponseBody
-       public ResponseEntity<String> updatePolicy(
-                       @RequestBody PolicyParameters policyParameters,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               String response = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID,
-                               "updatePolicy")) {
-                       CreateUpdatePolicyService updatePolicyService;
-                       try {
-                               updatePolicyService = (CreateUpdatePolicyService) XACMLPdpServlet.getCreateUpdatePolicyConstructor().newInstance(
-                                               policyParameters, requestID, true);
-                               response = updatePolicyService.getResult();
-                               status = updatePolicyService.getResponseCode();
-                       } catch (InstantiationException | IllegalAccessException
-                                       | IllegalArgumentException | InvocationTargetException e) {
-                               logger.error(e.getMessage(), e);
-                               response = "Problem with CreateUpdate Policy Service. ";
-                               status = HttpStatus.INTERNAL_SERVER_ERROR;
-                       }
-               }
-               updatePolicyCounter.incrementAndGet();
-               return new ResponseEntity<>(response, status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Updates a Policy based on given Policy Parameters.")
+    @RequestMapping(value = "/updatePolicy", method = RequestMethod.PUT)
+    @ResponseBody
+    public ResponseEntity<String> updatePolicy(@RequestBody PolicyParameters policyParameters,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        String response = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "updatePolicy")) {
+            CreateUpdatePolicyService updatePolicyService;
+            try {
+                updatePolicyService = (CreateUpdatePolicyService) XACMLPdpServlet.getCreateUpdatePolicyConstructor()
+                        .newInstance(policyParameters, requestID, true);
+                response = updatePolicyService.getResult();
+                status = updatePolicyService.getResponseCode();
+            } catch (InstantiationException | IllegalAccessException | IllegalArgumentException
+                    | InvocationTargetException e) {
+                logger.error(e.getMessage(), e);
+                response = "Problem with CreateUpdate Policy Service. ";
+                status = HttpStatus.INTERNAL_SERVER_ERROR;
+            }
+        }
+        updatePolicyCounter.incrementAndGet();
+        return new ResponseEntity<>(response, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Creates a Dictionary Item for a specific dictionary based on given Parameters.")
-       @RequestMapping(value = "/createDictionaryItem", method = RequestMethod.PUT)
-       @ResponseBody
-       public ResponseEntity<String> createDictionaryItem(
-                       @RequestBody DictionaryParameters dictionaryParameters,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               String response = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID,
-                               "createDictionary")) {
-                       CreateUpdateDictionaryService createDictionaryService = new CreateUpdateDictionaryService(
-                                       dictionaryParameters, requestID, false);
-                       response = createDictionaryService.getResult();
-                       status = createDictionaryService.getResponseCode();
-               }
-               createDictionaryCounter.incrementAndGet();
-               return new ResponseEntity<>(response, status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Creates a Dictionary Item for a specific dictionary based on given Parameters.")
+    @RequestMapping(value = "/createDictionaryItem", method = RequestMethod.PUT)
+    @ResponseBody
+    public ResponseEntity<String> createDictionaryItem(@RequestBody DictionaryParameters dictionaryParameters,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        String response = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "createDictionary")) {
+            CreateUpdateDictionaryService createDictionaryService =
+                    new CreateUpdateDictionaryService(dictionaryParameters, requestID, false);
+            response = createDictionaryService.getResult();
+            status = createDictionaryService.getResponseCode();
+        }
+        createDictionaryCounter.incrementAndGet();
+        return new ResponseEntity<>(response, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Updates a Dictionary Item for a specific dictionary based on given Parameters.")
-       @RequestMapping(value = "/updateDictionaryItem", method = RequestMethod.PUT)
-       @ResponseBody
-       public ResponseEntity<String> updateDictionaryItem(
-                       @RequestBody DictionaryParameters dictionaryParameters,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               String response = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID,
-                               "updateDictionary")) {
-                       CreateUpdateDictionaryService updateDictionaryService = new CreateUpdateDictionaryService(
-                                       dictionaryParameters, requestID, true);
-                       response = updateDictionaryService.getResult();
-                       status = updateDictionaryService.getResponseCode();
-               }
-               updateDictionaryCounter.incrementAndGet();
-               return new ResponseEntity<>(response, status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Updates a Dictionary Item for a specific dictionary based on given Parameters.")
+    @RequestMapping(value = "/updateDictionaryItem", method = RequestMethod.PUT)
+    @ResponseBody
+    public ResponseEntity<String> updateDictionaryItem(@RequestBody DictionaryParameters dictionaryParameters,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        String response = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "updateDictionary")) {
+            CreateUpdateDictionaryService updateDictionaryService =
+                    new CreateUpdateDictionaryService(dictionaryParameters, requestID, true);
+            response = updateDictionaryService.getResult();
+            status = updateDictionaryService.getResponseCode();
+        }
+        updateDictionaryCounter.incrementAndGet();
+        return new ResponseEntity<>(response, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Gets the dictionary items from the PAP")
-       @RequestMapping(value = "/getDictionaryItems", method = RequestMethod.POST)
-       @ResponseBody
-       public ResponseEntity<DictionaryResponse> getDictionaryItems(
-                       @RequestBody DictionaryParameters dictionaryParameters,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               DictionaryResponse dictionaryResponse = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID,
-                               "getDictionary")) {
-                       GetDictionaryService getDictionaryService = new GetDictionaryService(
-                                       dictionaryParameters, requestID);
-                       dictionaryResponse = getDictionaryService.getResult();
-                       status = getDictionaryService.getResponseCode();
-               }
-               getDictionaryCounter.incrementAndGet();
-               return new ResponseEntity<>(dictionaryResponse,
-                               status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Gets the dictionary items from the PAP")
+    @RequestMapping(value = "/getDictionaryItems", method = RequestMethod.POST)
+    @ResponseBody
+    public ResponseEntity<DictionaryResponse> getDictionaryItems(@RequestBody DictionaryParameters dictionaryParameters,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        DictionaryResponse dictionaryResponse = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "getDictionary")) {
+            GetDictionaryService getDictionaryService = new GetDictionaryService(dictionaryParameters, requestID);
+            dictionaryResponse = getDictionaryService.getResult();
+            status = getDictionaryService.getResponseCode();
+        }
+        getDictionaryCounter.incrementAndGet();
+        return new ResponseEntity<>(dictionaryResponse, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Imports Policy based on the parameters which represent the service used to create a policy Service.")
-       @RequestMapping(value = "/policyEngineImport", method = RequestMethod.POST)
-       @ResponseBody
-       public ResponseEntity<String> policyEngineImport(
-                       @RequestParam("importParametersJson") String importParametersJson,
-                       @RequestParam("file") MultipartFile file,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               String response = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID,
-                               "policyEngineImport")) {
-                       PolicyEngineImportService policyEngineImportService = new PolicyEngineImportService(
-                                       importParametersJson, file, requestID);
-                       response = policyEngineImportService.getResult();
-                       status = policyEngineImportService.getResponseCode();
-               }
-               policyEngineImportCounter.incrementAndGet();
-               return new ResponseEntity<>(response, status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(
+            value = "Imports Policy based on the parameters which represent the service used to create a policy Service.")
+    @RequestMapping(value = "/policyEngineImport", method = RequestMethod.POST)
+    @ResponseBody
+    public ResponseEntity<String> policyEngineImport(@RequestParam("importParametersJson") String importParametersJson,
+            @RequestParam("file") MultipartFile file,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        String response = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "policyEngineImport")) {
+            PolicyEngineImportService policyEngineImportService =
+                    new PolicyEngineImportService(importParametersJson, file, requestID);
+            response = policyEngineImportService.getResult();
+            status = policyEngineImportService.getResponseCode();
+        }
+        policyEngineImportCounter.incrementAndGet();
+        return new ResponseEntity<>(response, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Creates a Config Policy based on given Policy Parameters.")
-       @RequestMapping(value = "/createConfig", method = RequestMethod.PUT)
-       @ResponseBody
-       @Deprecated
-       public ResponseEntity<String> createConfig(
-                       @RequestBody ConfigPolicyAPIRequest configPolicyAPIRequest,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               String response = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID,
-                               "createPolicy")) {
-                       CreateUpdateConfigPolicyService createPolicyService = new CreateUpdateConfigPolicyService(
-                                       configPolicyAPIRequest, requestID, false);
-                       response = createPolicyService.getResult();
-                       status = createPolicyService.getResponseCode();
-               }
-               deprecatedCounter.incrementAndGet();
-               return new ResponseEntity<>(response, status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Creates a Config Policy based on given Policy Parameters.")
+    @RequestMapping(value = "/createConfig", method = RequestMethod.PUT)
+    @ResponseBody
+    @Deprecated
+    public ResponseEntity<String> createConfig(@RequestBody ConfigPolicyAPIRequest configPolicyAPIRequest,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        String response = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "createPolicy")) {
+            CreateUpdateConfigPolicyService createPolicyService =
+                    new CreateUpdateConfigPolicyService(configPolicyAPIRequest, requestID, false);
+            response = createPolicyService.getResult();
+            status = createPolicyService.getResponseCode();
+        }
+        deprecatedCounter.incrementAndGet();
+        return new ResponseEntity<>(response, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Updates a Config Policy based on given Policy Parameters.")
-       @RequestMapping(value = "/updateConfig", method = RequestMethod.PUT)
-       @ResponseBody
-       @Deprecated
-       public ResponseEntity<String> updateConfig(
-                       @RequestBody ConfigPolicyAPIRequest configPolicyAPIRequest,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               String response = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID,
-                               "updatePolicy")) {
-                       CreateUpdateConfigPolicyService updatePolicyService = new CreateUpdateConfigPolicyService(
-                                       configPolicyAPIRequest, requestID, true);
-                       response = updatePolicyService.getResult();
-                       status = updatePolicyService.getResponseCode();
-               }
-               deprecatedCounter.incrementAndGet();
-               return new ResponseEntity<>(response, status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Updates a Config Policy based on given Policy Parameters.")
+    @RequestMapping(value = "/updateConfig", method = RequestMethod.PUT)
+    @ResponseBody
+    @Deprecated
+    public ResponseEntity<String> updateConfig(@RequestBody ConfigPolicyAPIRequest configPolicyAPIRequest,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        String response = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "updatePolicy")) {
+            CreateUpdateConfigPolicyService updatePolicyService =
+                    new CreateUpdateConfigPolicyService(configPolicyAPIRequest, requestID, true);
+            response = updatePolicyService.getResult();
+            status = updatePolicyService.getResponseCode();
+        }
+        deprecatedCounter.incrementAndGet();
+        return new ResponseEntity<>(response, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Creates a Config Firewall Policy")
-       @RequestMapping(value = "/createFirewallConfig", method = RequestMethod.PUT)
-       @ResponseBody
-       @Deprecated
-       public ResponseEntity<String> createFirewallConfig(
-                       @RequestBody ConfigFirewallPolicyAPIRequest configFirewallPolicyAPIRequest,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               String response = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID,
-                               "createPolicy")) {
-                       CreateUpdateFirewallPolicyService createFirewallPolicyService = new CreateUpdateFirewallPolicyService(
-                                       configFirewallPolicyAPIRequest, requestID, false);
-                       response = createFirewallPolicyService.getResult();
-                       status = createFirewallPolicyService.getResponseCode();
-               }
-               deprecatedCounter.incrementAndGet();
-               return new ResponseEntity<>(response, status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Creates a Config Firewall Policy")
+    @RequestMapping(value = "/createFirewallConfig", method = RequestMethod.PUT)
+    @ResponseBody
+    @Deprecated
+    public ResponseEntity<String> createFirewallConfig(
+            @RequestBody ConfigFirewallPolicyAPIRequest configFirewallPolicyAPIRequest,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        String response = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "createPolicy")) {
+            CreateUpdateFirewallPolicyService createFirewallPolicyService =
+                    new CreateUpdateFirewallPolicyService(configFirewallPolicyAPIRequest, requestID, false);
+            response = createFirewallPolicyService.getResult();
+            status = createFirewallPolicyService.getResponseCode();
+        }
+        deprecatedCounter.incrementAndGet();
+        return new ResponseEntity<>(response, status);
+    }
 
-       @ApiImplicitParams({
-                       @ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
-                       @ApiImplicitParam(name = "Environment", required = true, paramType = "Header") })
-       @ApiOperation(value = "Updates a Config Firewall Policy")
-       @RequestMapping(value = "/updateFirewallConfig", method = RequestMethod.PUT)
-       @ResponseBody
-       @Deprecated
-       public ResponseEntity<String> updateFirewallConfig(
-                       @RequestBody ConfigFirewallPolicyAPIRequest configFirewallPolicyAPIRequest,
-                       @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
-                       @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
-               String response = null;
-               HttpStatus status = HttpStatus.UNAUTHORIZED;
-               // Check Permissions.
-               if (PDPApiAuth.checkPermissions(clientEncoding, requestID,
-                               "updatePolicy")) {
-                       CreateUpdateFirewallPolicyService updateFirewallPolicyService = new CreateUpdateFirewallPolicyService(
-                                       configFirewallPolicyAPIRequest, requestID, true);
-                       response = updateFirewallPolicyService.getResult();
-                       status = updateFirewallPolicyService.getResponseCode();
-               }
-               deprecatedCounter.incrementAndGet();
-               return new ResponseEntity<>(response, status);
-       }
+    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", required = true, paramType = "Header"),
+            @ApiImplicitParam(name = "Environment", required = true, paramType = "Header")})
+    @ApiOperation(value = "Updates a Config Firewall Policy")
+    @RequestMapping(value = "/updateFirewallConfig", method = RequestMethod.PUT)
+    @ResponseBody
+    @Deprecated
+    public ResponseEntity<String> updateFirewallConfig(
+            @RequestBody ConfigFirewallPolicyAPIRequest configFirewallPolicyAPIRequest,
+            @RequestHeader(value = "ClientAuth", required = true) String clientEncoding,
+            @RequestHeader(value = "X-ECOMP-RequestID", required = false) String requestID) {
+        String response = null;
+        HttpStatus status = HttpStatus.UNAUTHORIZED;
+        // Check Permissions.
+        if (PDPApiAuth.checkPermissions(clientEncoding, requestID, "updatePolicy")) {
+            CreateUpdateFirewallPolicyService updateFirewallPolicyService =
+                    new CreateUpdateFirewallPolicyService(configFirewallPolicyAPIRequest, requestID, true);
+            response = updateFirewallPolicyService.getResult();
+            status = updateFirewallPolicyService.getResponseCode();
+        }
+        deprecatedCounter.incrementAndGet();
+        return new ResponseEntity<>(response, status);
+    }
 
-       @ApiOperation(value = "Gets the API Services usage Information")
-       @ApiIgnore
-       @RequestMapping(value = "/count", method = RequestMethod.GET)
-       public String getCount() {
-               return "Total Config Calls : " + configCounter + "\n"
-                               + "Total Config calls made using Policy File Name: "
-                               + configNameCounter + "\n" + "Total Event Calls : "
-                               + eventCounter + "\nTotal Decision Calls: " + decisionCounter
-                               + "\nTotal Push policy Calls: " + pushCounter
-                               + "\nTotal Delete Policy Calls: " + deleteCounter
-                               + "\nTotal Create Policy Calls: " + createPolicyCounter
-                               + "\nTotal Update Policy Calls: " + updatePolicyCounter
-                               + "\nTotal Create Dictionary Calls: " + createDictionaryCounter
-                               + "\nTotal Update Dictionary Calls: " + updateDictionaryCounter
-                               + "\nTotal Get Dictionary Calls: " + getDictionaryCounter
-                               + "\nTotal PolicyEngine Import Calls: "
-                               + policyEngineImportCounter
-                               + "\nTotal Deprecated Policy Calls: " + deprecatedCounter
-                               + "\nTotal Metrics Calls:" + metricCounter
-                               + "\nTotal Notification Calls:" + notificationCounter;
-       }
+    @ApiOperation(value = "Gets the API Services usage Information")
+    @ApiIgnore
+    @RequestMapping(value = "/count", method = RequestMethod.GET)
+    public String getCount() {
+        return "Total Config Calls : " + configCounter + "\n" + "Total Config calls made using Policy File Name: "
+                + configNameCounter + "\n" + "Total Event Calls : " + eventCounter + "\nTotal Decision Calls: "
+                + decisionCounter + "\nTotal Push policy Calls: " + pushCounter + "\nTotal Delete Policy Calls: "
+                + deleteCounter + "\nTotal Create Policy Calls: " + createPolicyCounter
+                + "\nTotal Update Policy Calls: " + updatePolicyCounter + "\nTotal Create Dictionary Calls: "
+                + createDictionaryCounter + "\nTotal Update Dictionary Calls: " + updateDictionaryCounter
+                + "\nTotal Get Dictionary Calls: " + getDictionaryCounter + "\nTotal PolicyEngine Import Calls: "
+                + policyEngineImportCounter + "\nTotal Deprecated Policy Calls: " + deprecatedCounter
+                + "\nTotal Metrics Calls:" + metricCounter + "\nTotal Notification Calls:" + notificationCounter;
+    }
 
-       @ExceptionHandler({ HttpMessageNotReadableException.class })
-       public ResponseEntity<String> messageNotReadableExceptionHandler(
-                       HttpServletRequest req, HttpMessageNotReadableException exception) {
-               logger.error("Request not readable: {}", exception);
-               StringBuilder message = new StringBuilder();
-               message.append(exception.getMessage());
-               if (exception.getCause() != null) {
-                       message.append(" Reason Caused: "
-                                       + exception.getCause().getMessage());
-               }
-               return new ResponseEntity<>(message.toString(), HttpStatus.BAD_REQUEST);
-       }
+    @ExceptionHandler({HttpMessageNotReadableException.class})
+    public ResponseEntity<String> messageNotReadableExceptionHandler(HttpServletRequest req,
+            HttpMessageNotReadableException exception) {
+        logger.error("Request not readable: {}", exception);
+        StringBuilder message = new StringBuilder();
+        message.append(exception.getMessage());
+        if (exception.getCause() != null) {
+            message.append(" Reason Caused: " + exception.getCause().getMessage());
+        }
+        return new ResponseEntity<>(message.toString(), HttpStatus.BAD_REQUEST);
+    }
 }