Improve metadata support

Improve the metadata support for CDS and default values

Issue-ID: CLAMP-786
Signed-off-by: sebdet <sebastien.determe@intl.att.com>
Change-Id: I8a24e31a93ff1e288ec8f0f6d522b1b15d39a8d2
diff --git a/src/main/java/org/onap/clamp/clds/config/DefaultDictionaryElements.java b/src/main/java/org/onap/clamp/clds/config/DefaultDictionaryElements.java
new file mode 100644
index 0000000..d9b017b
--- /dev/null
+++ b/src/main/java/org/onap/clamp/clds/config/DefaultDictionaryElements.java
@@ -0,0 +1,167 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2020 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.clds.config;
+
+import javax.annotation.PostConstruct;
+import org.onap.clamp.tosca.Dictionary;
+import org.onap.clamp.tosca.DictionaryElement;
+import org.onap.clamp.tosca.DictionaryService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Profile;
+
+@Configuration
+@Profile("default-dictionary-elements")
+public class DefaultDictionaryElements {
+
+    @Autowired
+    private DictionaryService dictionaryService;
+
+    /**
+     * Init method.
+     */
+    @PostConstruct
+    public void init() {
+        preProvisionDefaultActors();
+        preProvisionDefaultOperations();
+    }
+
+    private void preProvisionDefaultActors () {
+        // Set up dictionary elements
+        Dictionary actorDictionary = new Dictionary();
+        actorDictionary.setName("DefaultActors");
+        actorDictionary.setSecondLevelDictionary(0);
+        actorDictionary.setSubDictionaryType("");
+
+        DictionaryElement elementSo = new DictionaryElement();
+        elementSo.setName("SO");
+        elementSo.setShortName("SO");
+        elementSo.setType("string");
+        elementSo.setDescription("SO component");
+        actorDictionary.addDictionaryElements(elementSo);
+
+        DictionaryElement elementSdnc = new DictionaryElement();
+        elementSdnc.setName("SDNC");
+        elementSdnc.setShortName("SDNC");
+        elementSdnc.setType("string");
+        elementSdnc.setDescription("SDNC component");
+        actorDictionary.addDictionaryElements(elementSdnc);
+
+        DictionaryElement elementAppc = new DictionaryElement();
+        elementAppc.setName("APPC");
+        elementAppc.setShortName("APPC");
+        elementAppc.setType("string");
+        elementAppc.setDescription("APPC component");
+        actorDictionary.addDictionaryElements(elementAppc);
+
+        DictionaryElement elementVfc = new DictionaryElement();
+        elementVfc.setName("VFC");
+        elementVfc.setShortName("VFC");
+        elementVfc.setType("string");
+        elementVfc.setDescription("VFC component");
+        actorDictionary.addDictionaryElements(elementVfc);
+
+        DictionaryElement elementSdnr = new DictionaryElement();
+        elementSdnr.setName("SDNR");
+        elementSdnr.setShortName("SDNR");
+        elementSdnr.setType("string");
+        elementSdnr.setDescription("SDNR component");
+        actorDictionary.addDictionaryElements(elementSdnr);
+
+        dictionaryService.saveOrUpdateDictionary(actorDictionary);
+    }
+
+    private void preProvisionDefaultOperations () {
+        // Set up dictionary elements
+        Dictionary operationDictionary = new Dictionary();
+        operationDictionary.setName("DefaultOperations");
+        operationDictionary.setSecondLevelDictionary(0);
+        operationDictionary.setSubDictionaryType("");
+
+        DictionaryElement elementRestart = new DictionaryElement();
+        elementRestart.setName("Restart");
+        elementRestart.setShortName("Restart (APPC operation)");
+        elementRestart.setType("string");
+        elementRestart.setDescription("APPC operation");
+        operationDictionary.addDictionaryElements(elementRestart);
+
+        DictionaryElement elementRebuild = new DictionaryElement();
+        elementRebuild.setName("Rebuild");
+        elementRebuild.setShortName("Rebuild (APPC operation)");
+        elementRebuild.setType("string");
+        elementRebuild.setDescription("APPC operation");
+        operationDictionary.addDictionaryElements(elementRebuild);
+
+        DictionaryElement elementMigrate = new DictionaryElement();
+        elementMigrate.setName("Migrate");
+        elementMigrate.setShortName("Migrate (APPC operation)");
+        elementMigrate.setType("string");
+        elementMigrate.setDescription("APPC operation");
+        operationDictionary.addDictionaryElements(elementMigrate);
+
+        DictionaryElement elementHealthCheck = new DictionaryElement();
+        elementHealthCheck.setName("Health-Check");
+        elementHealthCheck.setShortName("Health-Check (APPC operation)");
+        elementHealthCheck.setType("string");
+        elementHealthCheck.setDescription("APPC operation");
+        operationDictionary.addDictionaryElements(elementHealthCheck);
+
+        DictionaryElement elementModifyConfig = new DictionaryElement();
+        elementModifyConfig.setName("ModifyConfig");
+        elementModifyConfig.setShortName("ModifyConfig (APPC/VFC operation)");
+        elementModifyConfig.setType("string");
+        elementModifyConfig.setDescription("APPC/VFC operation");
+        operationDictionary.addDictionaryElements(elementModifyConfig);
+
+        DictionaryElement elementVfModuleCreate = new DictionaryElement();
+        elementVfModuleCreate.setName("VF Module Create");
+        elementVfModuleCreate.setShortName("VF Module Create (SO operation)");
+        elementVfModuleCreate.setType("string");
+        elementVfModuleCreate.setDescription("SO operation");
+        operationDictionary.addDictionaryElements(elementVfModuleCreate);
+
+        DictionaryElement elementVfModuleDelete = new DictionaryElement();
+        elementVfModuleDelete.setName("VF Module Delete");
+        elementVfModuleDelete.setShortName("VF Module Delete (SO operation)");
+        elementVfModuleDelete.setType("string");
+        elementVfModuleDelete.setDescription("SO operation");
+        operationDictionary.addDictionaryElements(elementVfModuleDelete);
+
+        DictionaryElement elementReroute = new DictionaryElement();
+        elementReroute.setName("Reroute");
+        elementReroute.setShortName("Reroute (SDNC operation)");
+        elementReroute.setType("string");
+        elementReroute.setDescription("SDNC operation");
+        operationDictionary.addDictionaryElements(elementReroute);
+
+        DictionaryElement elementBandwidthOnDemand = new DictionaryElement();
+        elementBandwidthOnDemand.setName("BandwidthOnDemand");
+        elementBandwidthOnDemand.setShortName("BandwidthOnDemand (SDNC operation)");
+        elementBandwidthOnDemand.setType("string");
+        elementBandwidthOnDemand.setDescription("SDNC operation");
+        operationDictionary.addDictionaryElements(elementBandwidthOnDemand);
+
+        dictionaryService.saveOrUpdateDictionary(operationDictionary);
+    }
+}
diff --git a/src/main/java/org/onap/clamp/clds/tosca/update/execution/ToscaMetadataExecutor.java b/src/main/java/org/onap/clamp/clds/tosca/update/execution/ToscaMetadataExecutor.java
index dbd8ee1..9240119 100644
--- a/src/main/java/org/onap/clamp/clds/tosca/update/execution/ToscaMetadataExecutor.java
+++ b/src/main/java/org/onap/clamp/clds/tosca/update/execution/ToscaMetadataExecutor.java
@@ -32,8 +32,6 @@
 import org.onap.clamp.clds.tosca.update.execution.cds.ToscaMetadataCdsProcess;
 import org.onap.clamp.clds.tosca.update.execution.target.ToscaMetadataTargetProcess;
 import org.onap.clamp.loop.service.Service;
-import org.onap.clamp.tosca.Dictionary;
-import org.onap.clamp.tosca.DictionaryElement;
 import org.onap.clamp.tosca.DictionaryService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -73,38 +71,5 @@
     public void init() {
         mapOfProcesses.put("CDS", new ToscaMetadataCdsProcess());
         mapOfProcesses.put("CSAR_RESOURCES", new ToscaMetadataTargetProcess());
-
-        preProvisionDictionaryTable();
     }
-
-    private void preProvisionDictionaryTable() {
-        // Set up dictionary elements
-        Dictionary actorDictionary = new Dictionary();
-        actorDictionary.setName("DefaultActor");
-        actorDictionary.setSecondLevelDictionary(0);
-        actorDictionary.setSubDictionaryType("");
-
-        DictionaryElement elementSo = new DictionaryElement();
-        elementSo.setName("SO");
-        elementSo.setShortName("SO");
-        elementSo.setType("string");
-        elementSo.setDescription("SO component");
-        actorDictionary.addDictionaryElements(elementSo);
-
-        DictionaryElement elementSdnc = new DictionaryElement();
-        elementSdnc.setName("SDNC");
-        elementSdnc.setShortName("SDNC");
-        elementSdnc.setType("string");
-        elementSdnc.setDescription("SDNC component");
-        actorDictionary.addDictionaryElements(elementSdnc);
-
-        DictionaryElement elementCds = new DictionaryElement();
-        elementCds.setName("CDS");
-        elementCds.setShortName("CDS");
-        elementCds.setType("string");
-        elementCds.setDescription("CDS component");
-        actorDictionary.addDictionaryElements(elementCds);
-
-        dictionaryService.saveOrUpdateDictionary(actorDictionary);
-   }
 }
diff --git a/src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java b/src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java
index cf9e010..b1c8890 100644
--- a/src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java
+++ b/src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java
@@ -43,31 +43,34 @@
     @Override
     public void executeProcess(String parameters, JsonObject childObject, Service serviceModel) {
         switch (parameters) {
+            case "actor":
+                JsonArray jsonArray = new JsonArray();
+                jsonArray.add("CDS");
+                addToJsonArray(childObject, "enum", jsonArray);
+                break;
             case "payload":
-                childObject.add("anyOf", generatePayload(serviceModel));
+                generatePayload(childObject, serviceModel);
                 break;
             case "operation":
-                childObject.add("enum", generateOperation(serviceModel));
+                generateOperation(childObject, serviceModel);
                 break;
         }
     }
 
-    private static JsonArray generatePayload(Service serviceModel) {
-        JsonArray schemaAnyOf = new JsonArray();
-        schemaAnyOf.addAll(generatePayloadPerResource("VF", serviceModel));
-        schemaAnyOf.addAll(generatePayloadPerResource("PNF", serviceModel));
-        return schemaAnyOf;
+    private static void generatePayload(JsonObject childObject, Service serviceModel) {
+        generatePayloadPerResource(childObject, "VF", serviceModel);
+        generatePayloadPerResource(childObject, "PNF", serviceModel);
     }
 
-    private static JsonArray generateOperation(Service serviceModel) {
-        JsonArray schemaEnum = new JsonArray();
-        schemaEnum.addAll(generateOperationPerResource("VF", serviceModel));
-        schemaEnum.addAll(generateOperationPerResource("PNF", serviceModel));
-        return schemaEnum;
+    private static void generateOperation(JsonObject childObject, Service serviceModel) {
+        generateOperationPerResource(childObject, "VF", serviceModel);
+        generateOperationPerResource(childObject, "PNF", serviceModel);
     }
 
-    private static JsonArray generateOperationPerResource(String resourceName, Service serviceModel) {
+    private static void generateOperationPerResource(JsonObject childObject, String resourceName,
+                                                     Service serviceModel) {
         JsonArray schemaEnum = new JsonArray();
+        JsonArray schemaTitle = new JsonArray();
         for (Map.Entry<String, JsonElement> entry : serviceModel.getResourceDetails().getAsJsonObject(resourceName)
                 .entrySet()) {
             JsonObject controllerProperties = entry.getValue().getAsJsonObject()
@@ -75,14 +78,23 @@
             if (controllerProperties != null) {
                 for (String workflowsEntry : controllerProperties.getAsJsonObject("workflows").keySet()) {
                     schemaEnum.add(workflowsEntry);
+                    schemaTitle.add(workflowsEntry + " (CDS operation)");
                 }
             }
         }
-        return schemaEnum;
+        addToJsonArray(childObject, "enum", schemaEnum);
+        if (childObject.get("options") == null) {
+            JsonObject optionsSection = new JsonObject();
+            childObject.add("options", optionsSection);
+        }
+        addToJsonArray(childObject.getAsJsonObject("options"), "enum_titles", schemaTitle);
+
     }
 
-    private static JsonArray generatePayloadPerResource(String resourceName, Service serviceModel) {
+    private static void generatePayloadPerResource(JsonObject childObject, String resourceName,
+                                                   Service serviceModel) {
         JsonArray schemaAnyOf = new JsonArray();
+
         for (Map.Entry<String, JsonElement> entry : serviceModel.getResourceDetails().getAsJsonObject(resourceName)
                 .entrySet()) {
             JsonObject controllerProperties = entry.getValue().getAsJsonObject()
@@ -98,7 +110,7 @@
                 }
             }
         }
-        return schemaAnyOf;
+        addToJsonArray(childObject, "enum", schemaAnyOf);
     }
 
     private static JsonObject createPayloadProperty(JsonObject workFlow, JsonObject controllerProperties) {
@@ -110,4 +122,13 @@
         payloadResult.add("data", workFlow.getAsJsonObject("inputs"));
         return payloadResult;
     }
+
+    private static void addToJsonArray(JsonObject childObject, String section, JsonArray value) {
+        if (childObject.getAsJsonArray(section) != null) {
+            childObject.getAsJsonArray(section).addAll(value);
+        }
+        else {
+            childObject.add(section, value);
+        }
+    }
 }
diff --git a/src/main/java/org/onap/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java b/src/main/java/org/onap/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java
index 8aff966..33e0842 100644
--- a/src/main/java/org/onap/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java
+++ b/src/main/java/org/onap/clamp/clds/tosca/update/parser/metadata/ToscaMetadataParserWithDictionarySupport.java
@@ -73,13 +73,17 @@
             ((LinkedHashMap<String, Object>) childNodeMap.get(ToscaSchemaConstants.METADATA)).forEach((key,
                                                                                                        value) -> {
                 if (key.equalsIgnoreCase(ToscaSchemaConstants.METADATA_CLAMP_POSSIBLE_VALUES)) {
-                    if (((String) value).contains(ToscaSchemaConstants.DICTIONARY)) {
-                        processDictionaryElements((String) value, childObject, dictionaryService);
+                    String[] multipleValues = ((String) value).split(",");
+                    for (String multipleValue : multipleValues) {
+                        if (multipleValue.contains(ToscaSchemaConstants.DICTIONARY)) {
+                            processDictionaryElements(multipleValue, childObject, dictionaryService);
+                        }
+                        if (multipleValue.contains("ClampExecution:")) {
+                            executeClampProcess(multipleValue.replaceAll("ClampExecution:", ""), childObject,
+                                    serviceModel, toscaMetadataExecutor);
+                        }
                     }
-                    if (((String) value).contains("ClampExecution:")) {
-                        executeClampProcess(((String) value).replaceAll("ClampExecution:", ""), childObject,
-                                serviceModel, toscaMetadataExecutor);
-                    }
+
                 }
             });
         }
@@ -91,72 +95,110 @@
         toscaMetadataExecutor.executeTheProcess(processInfo, childObject, serviceModel);
     }
 
+    /**
+     * For dictionary with multiple levels (defined by #).
+     *
+     * @param dictionaryKeyArray the array containing the different elements
+     * @param childObject        the structure getting the new entries
+     * @param dictionaryService  the dictionary service bean
+     */
+    private static void processComplexDictionaryElements(String[] dictionaryKeyArray, JsonObject childObject,
+                                                         DictionaryService dictionaryService) {
+        // We support only one # as of now.
+        List<DictionaryElement> dictionaryElements = null;
+        if (dictionaryKeyArray.length == 2) {
+            dictionaryElements = new ArrayList<>(dictionaryService.getDictionary(dictionaryKeyArray[0])
+                    .getDictionaryElements());
+            JsonArray subDictionaryNames = new JsonArray();
+            new ArrayList<DictionaryElement>(dictionaryService.getDictionary(dictionaryKeyArray[1])
+                    .getDictionaryElements()).forEach(elem -> subDictionaryNames.add(elem.getShortName()));
+
+            JsonArray jsonArray = new JsonArray();
+
+            Optional.of(dictionaryElements).get().forEach(c -> {
+                JsonObject jsonObject = new JsonObject();
+                jsonObject.addProperty(JsonEditorSchemaConstants.TYPE, getJsonType(c.getType()));
+                if (c.getType() != null
+                        && c.getType().equalsIgnoreCase(ToscaSchemaConstants.TYPE_STRING)) {
+                    jsonObject.addProperty(JsonEditorSchemaConstants.MIN_LENGTH, 1);
+
+                }
+                jsonObject.addProperty(JsonEditorSchemaConstants.ID, c.getName());
+                jsonObject.addProperty(JsonEditorSchemaConstants.LABEL, c.getShortName());
+                jsonObject.add(JsonEditorSchemaConstants.OPERATORS, subDictionaryNames);
+                jsonArray.add(jsonObject);
+            });
+
+            JsonObject filterObject = new JsonObject();
+            filterObject.add(JsonEditorSchemaConstants.FILTERS, jsonArray);
+
+            childObject.addProperty(JsonEditorSchemaConstants.TYPE,
+                    JsonEditorSchemaConstants.TYPE_QBLDR);
+            // TO invoke validation on such parameters
+            childObject.addProperty(JsonEditorSchemaConstants.MIN_LENGTH, 1);
+            childObject.add(JsonEditorSchemaConstants.QSSCHEMA, filterObject);
+
+        }
+    }
+
+    /**
+     * For dictionary with single entry.
+     *
+     * @param dictionaryKeyArray the array containing the different elements
+     * @param childObject        the structure getting the new entries
+     * @param dictionaryService  the dictionary service bean
+     */
+    private static void processSimpleDictionaryElements(String[] dictionaryKeyArray, JsonObject childObject,
+                                                        DictionaryService dictionaryService) {
+        JsonArray dictionaryNames = new JsonArray();
+        JsonArray dictionaryFullNames = new JsonArray();
+        dictionaryService.getDictionary(dictionaryKeyArray[0]).getDictionaryElements().forEach(c -> {
+            // Json type will be translated before Policy creation
+            if (c.getType() != null && !c.getType().equalsIgnoreCase("json")) {
+                dictionaryFullNames.add(c.getName());
+            }
+            dictionaryNames.add(c.getShortName());
+        });
+
+        if (dictionaryFullNames.size() > 0) {
+            if (childObject.get(JsonEditorSchemaConstants.ENUM) != null) {
+                childObject.get(JsonEditorSchemaConstants.ENUM).getAsJsonArray().add(dictionaryFullNames);
+            }
+            else {
+                childObject.add(JsonEditorSchemaConstants.ENUM, dictionaryFullNames);
+            }
+            // Add Enum titles for generated translated values during JSON instance
+            // generation
+            JsonObject enumTitles = new JsonObject();
+            enumTitles.add(JsonEditorSchemaConstants.ENUM_TITLES, dictionaryNames);
+            if (childObject.get(JsonEditorSchemaConstants.OPTIONS) != null) {
+                childObject.get(JsonEditorSchemaConstants.OPTIONS).getAsJsonArray().add(enumTitles);
+            }
+            else {
+                childObject.add(JsonEditorSchemaConstants.OPTIONS, enumTitles);
+            }
+
+        }
+        else {
+            if (childObject.get(JsonEditorSchemaConstants.ENUM) != null) {
+                childObject.get(JsonEditorSchemaConstants.ENUM).getAsJsonArray().add(dictionaryNames);
+            }
+            else {
+                childObject.add(JsonEditorSchemaConstants.ENUM, dictionaryNames);
+            }
+        }
+    }
+
     private static void processDictionaryElements(String dictionaryReference, JsonObject childObject,
                                                   DictionaryService dictionaryService) {
         String[] dictionaryKeyArray =
                 dictionaryReference.substring(dictionaryReference.indexOf(ToscaSchemaConstants.DICTIONARY) + 11,
                         dictionaryReference.length()).split("#");
         if (dictionaryKeyArray.length > 1) {
-            // We support only one # as of now.
-            List<DictionaryElement> dictionaryElements = null;
-            if (dictionaryKeyArray.length == 2) {
-                dictionaryElements = new ArrayList<>(dictionaryService.getDictionary(dictionaryKeyArray[0])
-                        .getDictionaryElements());
-                JsonArray subDictionaryNames = new JsonArray();
-                new ArrayList<DictionaryElement>(dictionaryService.getDictionary(dictionaryKeyArray[1])
-                        .getDictionaryElements()).forEach(elem -> subDictionaryNames.add(elem.getShortName()));
-
-                JsonArray jsonArray = new JsonArray();
-
-                Optional.of(dictionaryElements).get().stream().forEach(c -> {
-                    JsonObject jsonObject = new JsonObject();
-                    jsonObject.addProperty(JsonEditorSchemaConstants.TYPE, getJsonType(c.getType()));
-                    if (c.getType() != null
-                            && c.getType().equalsIgnoreCase(ToscaSchemaConstants.TYPE_STRING)) {
-                        jsonObject.addProperty(JsonEditorSchemaConstants.MIN_LENGTH, 1);
-
-                    }
-                    jsonObject.addProperty(JsonEditorSchemaConstants.ID, c.getName());
-                    jsonObject.addProperty(JsonEditorSchemaConstants.LABEL, c.getShortName());
-                    jsonObject.add(JsonEditorSchemaConstants.OPERATORS, subDictionaryNames);
-                    jsonArray.add(jsonObject);
-                });
-
-                JsonObject filterObject = new JsonObject();
-                filterObject.add(JsonEditorSchemaConstants.FILTERS, jsonArray);
-
-                childObject.addProperty(JsonEditorSchemaConstants.TYPE,
-                        JsonEditorSchemaConstants.TYPE_QBLDR);
-                // TO invoke validation on such parameters
-                childObject.addProperty(JsonEditorSchemaConstants.MIN_LENGTH, 1);
-                childObject.add(JsonEditorSchemaConstants.QSSCHEMA, filterObject);
-
-            }
+            processComplexDictionaryElements(dictionaryKeyArray, childObject, dictionaryService);
         }
         else {
-            List<DictionaryElement> dictionaryElements =
-                    new ArrayList<>(dictionaryService.getDictionary(dictionaryKeyArray[0]).getDictionaryElements());
-            JsonArray dictionaryNames = new JsonArray();
-            JsonArray dictionaryFullNames = new JsonArray();
-            dictionaryElements.stream().forEach(c -> {
-                // Json type will be translated before Policy creation
-                if (c.getType() != null && !c.getType().equalsIgnoreCase("json")) {
-                    dictionaryFullNames.add(c.getName());
-                }
-                dictionaryNames.add(c.getShortName());
-            });
-
-            if (dictionaryFullNames.size() > 0) {
-                childObject.add(JsonEditorSchemaConstants.ENUM, dictionaryFullNames);
-                // Add Enum titles for generated translated values during JSON instance
-                // generation
-                JsonObject enumTitles = new JsonObject();
-                enumTitles.add(JsonEditorSchemaConstants.ENUM_TITLES, dictionaryNames);
-                childObject.add(JsonEditorSchemaConstants.OPTIONS, enumTitles);
-            }
-            else {
-                childObject.add(JsonEditorSchemaConstants.ENUM, dictionaryNames);
-            }
+            processSimpleDictionaryElements(dictionaryKeyArray, childObject, dictionaryService);
         }
     }
 
diff --git a/src/main/java/org/onap/clamp/policy/downloader/PolicyEngineController.java b/src/main/java/org/onap/clamp/policy/downloader/PolicyEngineController.java
index ac054d8..0c3f677 100644
--- a/src/main/java/org/onap/clamp/policy/downloader/PolicyEngineController.java
+++ b/src/main/java/org/onap/clamp/policy/downloader/PolicyEngineController.java
@@ -61,7 +61,7 @@
         this.policyEngineServices = policyEngineService;
     }
 
-    @Scheduled(fixedRate = 120000)
+    @Scheduled(fixedRate = 300000)
     public synchronized void synchronizeAllPolicies() {
         policyEngineServices.synchronizeAllPolicies();
         lastInstantExecuted = Instant.now();
diff --git a/src/main/resources/META-INF/resources/swagger.html b/src/main/resources/META-INF/resources/swagger.html
index f1bb1ca..3f3ec6e 100644
--- a/src/main/resources/META-INF/resources/swagger.html
+++ b/src/main/resources/META-INF/resources/swagger.html
@@ -444,31 +444,31 @@
 </li>
 <li><a href="#_paths">2. Paths</a>
 <ul class="sectlevel2">
-<li><a href="#_route113">2.1. GET /v1/healthcheck</a>
+<li><a href="#_route75">2.1. GET /v1/healthcheck</a>
 <ul class="sectlevel3">
 <li><a href="#_responses">2.1.1. Responses</a></li>
 <li><a href="#_produces">2.1.2. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route114">2.2. GET /v1/user/getUser</a>
+<li><a href="#_route76">2.2. GET /v1/user/getUser</a>
 <ul class="sectlevel3">
 <li><a href="#_responses_2">2.2.1. Responses</a></li>
 <li><a href="#_produces_2">2.2.2. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route112">2.3. GET /v2/clampInformation</a>
+<li><a href="#_route74">2.3. GET /v2/clampInformation</a>
 <ul class="sectlevel3">
 <li><a href="#_responses_3">2.3.1. Responses</a></li>
 <li><a href="#_produces_3">2.3.2. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route98">2.4. GET /v2/dictionary</a>
+<li><a href="#_route58">2.4. GET /v2/dictionary</a>
 <ul class="sectlevel3">
 <li><a href="#_responses_4">2.4.1. Responses</a></li>
 <li><a href="#_produces_4">2.4.2. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route100">2.5. PUT /v2/dictionary</a>
+<li><a href="#_route61">2.5. PUT /v2/dictionary</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters">2.5.1. Parameters</a></li>
 <li><a href="#_responses_5">2.5.2. Responses</a></li>
@@ -476,20 +476,20 @@
 <li><a href="#_produces_5">2.5.4. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_v2_dictionary_secondary_names_get">2.6. GET /v2/dictionary/secondary/names</a>
+<li><a href="#_route59">2.6. GET /v2/dictionary/secondary/names</a>
 <ul class="sectlevel3">
 <li><a href="#_responses_6">2.6.1. Responses</a></li>
 <li><a href="#_produces_6">2.6.2. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_v2_dictionary_dictionaryname_get">2.7. GET /v2/dictionary/{dictionaryName}</a>
+<li><a href="#_route60">2.7. GET /v2/dictionary/{dictionaryName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_2">2.7.1. Parameters</a></li>
 <li><a href="#_responses_7">2.7.2. Responses</a></li>
 <li><a href="#_produces_7">2.7.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_v2_dictionary_name_put">2.8. PUT /v2/dictionary/{name}</a>
+<li><a href="#_route62">2.8. PUT /v2/dictionary/{name}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_3">2.8.1. Parameters</a></li>
 <li><a href="#_responses_8">2.8.2. Responses</a></li>
@@ -497,28 +497,28 @@
 <li><a href="#_produces_8">2.8.4. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route102">2.9. DELETE /v2/dictionary/{name}</a>
+<li><a href="#_route63">2.9. DELETE /v2/dictionary/{name}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_4">2.9.1. Parameters</a></li>
 <li><a href="#_responses_9">2.9.2. Responses</a></li>
 <li><a href="#_produces_9">2.9.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_v2_dictionary_name_elements_shortname_delete">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a>
+<li><a href="#_route64">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_5">2.10.1. Parameters</a></li>
 <li><a href="#_responses_10">2.10.2. Responses</a></li>
 <li><a href="#_produces_10">2.10.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route93">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a>
+<li><a href="#_route55">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_6">2.11.1. Parameters</a></li>
 <li><a href="#_responses_11">2.11.2. Responses</a></li>
 <li><a href="#_produces_11">2.11.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route95">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a>
+<li><a href="#_route57">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_7">2.12.1. Parameters</a></li>
 <li><a href="#_responses_12">2.12.2. Responses</a></li>
@@ -526,89 +526,89 @@
 <li><a href="#_produces_12">2.12.4. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route91">2.13. PUT /v2/loop/delete/{loopName}</a>
+<li><a href="#_route53">2.13. PUT /v2/loop/delete/{loopName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_8">2.13.1. Parameters</a></li>
 <li><a href="#_responses_13">2.13.2. Responses</a></li>
 </ul>
 </li>
-<li><a href="#_route84">2.14. PUT /v2/loop/deploy/{loopName}</a>
+<li><a href="#_route46">2.14. PUT /v2/loop/deploy/{loopName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_9">2.14.1. Parameters</a></li>
 <li><a href="#_responses_14">2.14.2. Responses</a></li>
 <li><a href="#_produces_13">2.14.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route78">2.15. GET /v2/loop/getAllNames</a>
+<li><a href="#_route40">2.15. GET /v2/loop/getAllNames</a>
 <ul class="sectlevel3">
 <li><a href="#_responses_15">2.15.1. Responses</a></li>
 <li><a href="#_produces_14">2.15.2. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route92">2.16. GET /v2/loop/getstatus/{loopName}</a>
+<li><a href="#_route54">2.16. GET /v2/loop/getstatus/{loopName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_10">2.16.1. Parameters</a></li>
 <li><a href="#_responses_16">2.16.2. Responses</a></li>
 <li><a href="#_produces_15">2.16.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route85">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a>
+<li><a href="#_route47">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_11">2.17.1. Parameters</a></li>
 <li><a href="#_responses_17">2.17.2. Responses</a></li>
 <li><a href="#_produces_16">2.17.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route86">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a>
+<li><a href="#_route48">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_12">2.18.1. Parameters</a></li>
 <li><a href="#_responses_18">2.18.2. Responses</a></li>
 <li><a href="#_produces_17">2.18.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route94">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a>
+<li><a href="#_route56">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_13">2.19.1. Parameters</a></li>
 <li><a href="#_responses_19">2.19.2. Responses</a></li>
 <li><a href="#_produces_18">2.19.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route89">2.20. PUT /v2/loop/restart/{loopName}</a>
+<li><a href="#_route51">2.20. PUT /v2/loop/restart/{loopName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_14">2.20.1. Parameters</a></li>
 <li><a href="#_responses_20">2.20.2. Responses</a></li>
 <li><a href="#_produces_19">2.20.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route88">2.21. PUT /v2/loop/stop/{loopName}</a>
+<li><a href="#_route50">2.21. PUT /v2/loop/stop/{loopName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_15">2.21.1. Parameters</a></li>
 <li><a href="#_responses_21">2.21.2. Responses</a></li>
 <li><a href="#_produces_20">2.21.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route90">2.22. PUT /v2/loop/submit/{loopName}</a>
+<li><a href="#_route52">2.22. PUT /v2/loop/submit/{loopName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_16">2.22.1. Parameters</a></li>
 <li><a href="#_responses_22">2.22.2. Responses</a></li>
 <li><a href="#_produces_21">2.22.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route80">2.23. GET /v2/loop/svgRepresentation/{loopName}</a>
+<li><a href="#_route42">2.23. GET /v2/loop/svgRepresentation/{loopName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_17">2.23.1. Parameters</a></li>
 <li><a href="#_responses_23">2.23.2. Responses</a></li>
 <li><a href="#_produces_22">2.23.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route87">2.24. PUT /v2/loop/undeploy/{loopName}</a>
+<li><a href="#_route49">2.24. PUT /v2/loop/undeploy/{loopName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_18">2.24.1. Parameters</a></li>
 <li><a href="#_responses_24">2.24.2. Responses</a></li>
 <li><a href="#_produces_23">2.24.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route81">2.25. POST /v2/loop/updateGlobalProperties/{loopName}</a>
+<li><a href="#_route43">2.25. POST /v2/loop/updateGlobalProperties/{loopName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_19">2.25.1. Parameters</a></li>
 <li><a href="#_responses_25">2.25.2. Responses</a></li>
@@ -616,7 +616,7 @@
 <li><a href="#_produces_24">2.25.4. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route83">2.26. POST /v2/loop/updateMicroservicePolicy/{loopName}</a>
+<li><a href="#_route45">2.26. POST /v2/loop/updateMicroservicePolicy/{loopName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_20">2.26.1. Parameters</a></li>
 <li><a href="#_responses_26">2.26.2. Responses</a></li>
@@ -624,7 +624,7 @@
 <li><a href="#_produces_25">2.26.4. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route82">2.27. POST /v2/loop/updateOperationalPolicies/{loopName}</a>
+<li><a href="#_route44">2.27. POST /v2/loop/updateOperationalPolicies/{loopName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_21">2.27.1. Parameters</a></li>
 <li><a href="#_responses_27">2.27.2. Responses</a></li>
@@ -632,14 +632,14 @@
 <li><a href="#_produces_26">2.27.4. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route79">2.28. GET /v2/loop/{loopName}</a>
+<li><a href="#_route41">2.28. GET /v2/loop/{loopName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_22">2.28.1. Parameters</a></li>
 <li><a href="#_responses_28">2.28.2. Responses</a></li>
 <li><a href="#_produces_27">2.28.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route106">2.29. POST /v2/policyToscaModels</a>
+<li><a href="#_route68">2.29. POST /v2/policyToscaModels</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_23">2.29.1. Parameters</a></li>
 <li><a href="#_responses_29">2.29.2. Responses</a></li>
@@ -647,27 +647,27 @@
 <li><a href="#_produces_28">2.29.4. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route105">2.30. GET /v2/policyToscaModels</a>
+<li><a href="#_route65">2.30. GET /v2/policyToscaModels</a>
 <ul class="sectlevel3">
 <li><a href="#_responses_30">2.30.1. Responses</a></li>
 <li><a href="#_produces_29">2.30.2. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_v2_policytoscamodels_yaml_policymodeltype_policymodelversion_get">2.31. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a>
+<li><a href="#_route67">2.31. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_24">2.31.1. Parameters</a></li>
 <li><a href="#_responses_31">2.31.2. Responses</a></li>
 <li><a href="#_produces_30">2.31.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_v2_policytoscamodels_policymodeltype_policymodelversion_get">2.32. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a>
+<li><a href="#_route66">2.32. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_25">2.32.1. Parameters</a></li>
 <li><a href="#_responses_32">2.32.2. Responses</a></li>
 <li><a href="#_produces_31">2.32.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route107">2.33. PUT /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a>
+<li><a href="#_route69">2.33. PUT /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_26">2.33.1. Parameters</a></li>
 <li><a href="#_responses_33">2.33.2. Responses</a></li>
@@ -675,26 +675,26 @@
 <li><a href="#_produces_32">2.33.4. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_route111">2.34. GET /v2/templates</a>
+<li><a href="#_route70">2.34. GET /v2/templates</a>
 <ul class="sectlevel3">
 <li><a href="#_responses_34">2.34.1. Responses</a></li>
 <li><a href="#_produces_33">2.34.2. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_v2_templates_names_get">2.35. GET /v2/templates/names</a>
+<li><a href="#_route72">2.35. GET /v2/templates/names</a>
 <ul class="sectlevel3">
 <li><a href="#_responses_35">2.35.1. Responses</a></li>
 <li><a href="#_produces_34">2.35.2. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_v2_templates_templatename_get">2.36. GET /v2/templates/{templateName}</a>
+<li><a href="#_route71">2.36. GET /v2/templates/{templateName}</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_27">2.36.1. Parameters</a></li>
 <li><a href="#_responses_36">2.36.2. Responses</a></li>
 <li><a href="#_produces_35">2.36.3. Produces</a></li>
 </ul>
 </li>
-<li><a href="#_v2_templates_templatename_svgrepresentation_get">2.37. GET /v2/templates/{templateName}/svgRepresentation</a>
+<li><a href="#_route73">2.37. GET /v2/templates/{templateName}/svgRepresentation</a>
 <ul class="sectlevel3">
 <li><a href="#_parameters_28">2.37.1. Parameters</a></li>
 <li><a href="#_responses_37">2.37.2. Responses</a></li>
@@ -743,7 +743,7 @@
 <div class="sect2">
 <h3 id="_uri_scheme"><a class="anchor" href="#_uri_scheme"></a><a class="link" href="#_uri_scheme">1.2. URI scheme</a></h3>
 <div class="paragraph">
-<p><em>Host</em> : localhost:42393<br>
+<p><em>Host</em> : localhost:46561<br>
 <em>BasePath</em> : /restservices/clds/<br>
 <em>Schemes</em> : HTTP</p>
 </div>
@@ -754,7 +754,7 @@
 <h2 id="_paths"><a class="anchor" href="#_paths"></a><a class="link" href="#_paths">2. Paths</a></h2>
 <div class="sectionbody">
 <div class="sect2">
-<h3 id="_route113"><a class="anchor" href="#_route113"></a><a class="link" href="#_route113">2.1. GET /v1/healthcheck</a></h3>
+<h3 id="_route75"><a class="anchor" href="#_route75"></a><a class="link" href="#_route75">2.1. GET /v1/healthcheck</a></h3>
 <div class="sect3">
 <h4 id="_responses"><a class="anchor" href="#_responses"></a><a class="link" href="#_responses">2.1.1. Responses</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -791,7 +791,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route114"><a class="anchor" href="#_route114"></a><a class="link" href="#_route114">2.2. GET /v1/user/getUser</a></h3>
+<h3 id="_route76"><a class="anchor" href="#_route76"></a><a class="link" href="#_route76">2.2. GET /v1/user/getUser</a></h3>
 <div class="sect3">
 <h4 id="_responses_2"><a class="anchor" href="#_responses_2"></a><a class="link" href="#_responses_2">2.2.1. Responses</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -825,7 +825,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route112"><a class="anchor" href="#_route112"></a><a class="link" href="#_route112">2.3. GET /v2/clampInformation</a></h3>
+<h3 id="_route74"><a class="anchor" href="#_route74"></a><a class="link" href="#_route74">2.3. GET /v2/clampInformation</a></h3>
 <div class="sect3">
 <h4 id="_responses_3"><a class="anchor" href="#_responses_3"></a><a class="link" href="#_responses_3">2.3.1. Responses</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -862,7 +862,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route98"><a class="anchor" href="#_route98"></a><a class="link" href="#_route98">2.4. GET /v2/dictionary</a></h3>
+<h3 id="_route58"><a class="anchor" href="#_route58"></a><a class="link" href="#_route58">2.4. GET /v2/dictionary</a></h3>
 <div class="sect3">
 <h4 id="_responses_4"><a class="anchor" href="#_responses_4"></a><a class="link" href="#_responses_4">2.4.1. Responses</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -899,7 +899,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route100"><a class="anchor" href="#_route100"></a><a class="link" href="#_route100">2.5. PUT /v2/dictionary</a></h3>
+<h3 id="_route61"><a class="anchor" href="#_route61"></a><a class="link" href="#_route61">2.5. PUT /v2/dictionary</a></h3>
 <div class="sect3">
 <h4 id="_parameters"><a class="anchor" href="#_parameters"></a><a class="link" href="#_parameters">2.5.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -971,7 +971,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_v2_dictionary_secondary_names_get"><a class="anchor" href="#_v2_dictionary_secondary_names_get"></a><a class="link" href="#_v2_dictionary_secondary_names_get">2.6. GET /v2/dictionary/secondary/names</a></h3>
+<h3 id="_route59"><a class="anchor" href="#_route59"></a><a class="link" href="#_route59">2.6. GET /v2/dictionary/secondary/names</a></h3>
 <div class="sect3">
 <h4 id="_responses_6"><a class="anchor" href="#_responses_6"></a><a class="link" href="#_responses_6">2.6.1. Responses</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -1008,7 +1008,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_v2_dictionary_dictionaryname_get"><a class="anchor" href="#_v2_dictionary_dictionaryname_get"></a><a class="link" href="#_v2_dictionary_dictionaryname_get">2.7. GET /v2/dictionary/{dictionaryName}</a></h3>
+<h3 id="_route60"><a class="anchor" href="#_route60"></a><a class="link" href="#_route60">2.7. GET /v2/dictionary/{dictionaryName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_2"><a class="anchor" href="#_parameters_2"></a><a class="link" href="#_parameters_2">2.7.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -1070,7 +1070,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_v2_dictionary_name_put"><a class="anchor" href="#_v2_dictionary_name_put"></a><a class="link" href="#_v2_dictionary_name_put">2.8. PUT /v2/dictionary/{name}</a></h3>
+<h3 id="_route62"><a class="anchor" href="#_route62"></a><a class="link" href="#_route62">2.8. PUT /v2/dictionary/{name}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_3"><a class="anchor" href="#_parameters_3"></a><a class="link" href="#_parameters_3">2.8.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -1148,7 +1148,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route102"><a class="anchor" href="#_route102"></a><a class="link" href="#_route102">2.9. DELETE /v2/dictionary/{name}</a></h3>
+<h3 id="_route63"><a class="anchor" href="#_route63"></a><a class="link" href="#_route63">2.9. DELETE /v2/dictionary/{name}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_4"><a class="anchor" href="#_parameters_4"></a><a class="link" href="#_parameters_4">2.9.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -1207,7 +1207,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_v2_dictionary_name_elements_shortname_delete"><a class="anchor" href="#_v2_dictionary_name_elements_shortname_delete"></a><a class="link" href="#_v2_dictionary_name_elements_shortname_delete">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a></h3>
+<h3 id="_route64"><a class="anchor" href="#_route64"></a><a class="link" href="#_route64">2.10. DELETE /v2/dictionary/{name}/elements/{shortName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_5"><a class="anchor" href="#_parameters_5"></a><a class="link" href="#_parameters_5">2.10.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -1272,7 +1272,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route93"><a class="anchor" href="#_route93"></a><a class="link" href="#_route93">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a></h3>
+<h3 id="_route55"><a class="anchor" href="#_route55"></a><a class="link" href="#_route55">2.11. PUT /v2/loop/addOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_6"><a class="anchor" href="#_parameters_6"></a><a class="link" href="#_parameters_6">2.11.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -1346,7 +1346,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route95"><a class="anchor" href="#_route95"></a><a class="link" href="#_route95">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a></h3>
+<h3 id="_route57"><a class="anchor" href="#_route57"></a><a class="link" href="#_route57">2.12. POST /v2/loop/create/{loopName}?templateName={templateName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_7"><a class="anchor" href="#_parameters_7"></a><a class="link" href="#_parameters_7">2.12.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -1418,7 +1418,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route91"><a class="anchor" href="#_route91"></a><a class="link" href="#_route91">2.13. PUT /v2/loop/delete/{loopName}</a></h3>
+<h3 id="_route53"><a class="anchor" href="#_route53"></a><a class="link" href="#_route53">2.13. PUT /v2/loop/delete/{loopName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_8"><a class="anchor" href="#_parameters_8"></a><a class="link" href="#_parameters_8">2.13.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -1467,7 +1467,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route84"><a class="anchor" href="#_route84"></a><a class="link" href="#_route84">2.14. PUT /v2/loop/deploy/{loopName}</a></h3>
+<h3 id="_route46"><a class="anchor" href="#_route46"></a><a class="link" href="#_route46">2.14. PUT /v2/loop/deploy/{loopName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_9"><a class="anchor" href="#_parameters_9"></a><a class="link" href="#_parameters_9">2.14.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -1529,7 +1529,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route78"><a class="anchor" href="#_route78"></a><a class="link" href="#_route78">2.15. GET /v2/loop/getAllNames</a></h3>
+<h3 id="_route40"><a class="anchor" href="#_route40"></a><a class="link" href="#_route40">2.15. GET /v2/loop/getAllNames</a></h3>
 <div class="sect3">
 <h4 id="_responses_15"><a class="anchor" href="#_responses_15"></a><a class="link" href="#_responses_15">2.15.1. Responses</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -1566,7 +1566,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route92"><a class="anchor" href="#_route92"></a><a class="link" href="#_route92">2.16. GET /v2/loop/getstatus/{loopName}</a></h3>
+<h3 id="_route54"><a class="anchor" href="#_route54"></a><a class="link" href="#_route54">2.16. GET /v2/loop/getstatus/{loopName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_10"><a class="anchor" href="#_parameters_10"></a><a class="link" href="#_parameters_10">2.16.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -1628,7 +1628,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route85"><a class="anchor" href="#_route85"></a><a class="link" href="#_route85">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a></h3>
+<h3 id="_route47"><a class="anchor" href="#_route47"></a><a class="link" href="#_route47">2.17. PUT /v2/loop/refreshMicroServicePolicyJsonSchema/{loopName}/{microServicePolicyName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_11"><a class="anchor" href="#_parameters_11"></a><a class="link" href="#_parameters_11">2.17.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -1696,7 +1696,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route86"><a class="anchor" href="#_route86"></a><a class="link" href="#_route86">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a></h3>
+<h3 id="_route48"><a class="anchor" href="#_route48"></a><a class="link" href="#_route48">2.18. PUT /v2/loop/refreshOperationalPolicyJsonSchema/{loopName}/{operationalPolicyName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_12"><a class="anchor" href="#_parameters_12"></a><a class="link" href="#_parameters_12">2.18.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -1764,7 +1764,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route94"><a class="anchor" href="#_route94"></a><a class="link" href="#_route94">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a></h3>
+<h3 id="_route56"><a class="anchor" href="#_route56"></a><a class="link" href="#_route56">2.19. PUT /v2/loop/removeOperationaPolicy/{loopName}/policyModel/{policyType}/{policyVersion}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_13"><a class="anchor" href="#_parameters_13"></a><a class="link" href="#_parameters_13">2.19.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -1838,7 +1838,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route89"><a class="anchor" href="#_route89"></a><a class="link" href="#_route89">2.20. PUT /v2/loop/restart/{loopName}</a></h3>
+<h3 id="_route51"><a class="anchor" href="#_route51"></a><a class="link" href="#_route51">2.20. PUT /v2/loop/restart/{loopName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_14"><a class="anchor" href="#_parameters_14"></a><a class="link" href="#_parameters_14">2.20.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -1900,7 +1900,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route88"><a class="anchor" href="#_route88"></a><a class="link" href="#_route88">2.21. PUT /v2/loop/stop/{loopName}</a></h3>
+<h3 id="_route50"><a class="anchor" href="#_route50"></a><a class="link" href="#_route50">2.21. PUT /v2/loop/stop/{loopName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_15"><a class="anchor" href="#_parameters_15"></a><a class="link" href="#_parameters_15">2.21.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -1962,7 +1962,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route90"><a class="anchor" href="#_route90"></a><a class="link" href="#_route90">2.22. PUT /v2/loop/submit/{loopName}</a></h3>
+<h3 id="_route52"><a class="anchor" href="#_route52"></a><a class="link" href="#_route52">2.22. PUT /v2/loop/submit/{loopName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_16"><a class="anchor" href="#_parameters_16"></a><a class="link" href="#_parameters_16">2.22.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -2024,7 +2024,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route80"><a class="anchor" href="#_route80"></a><a class="link" href="#_route80">2.23. GET /v2/loop/svgRepresentation/{loopName}</a></h3>
+<h3 id="_route42"><a class="anchor" href="#_route42"></a><a class="link" href="#_route42">2.23. GET /v2/loop/svgRepresentation/{loopName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_17"><a class="anchor" href="#_parameters_17"></a><a class="link" href="#_parameters_17">2.23.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -2086,7 +2086,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route87"><a class="anchor" href="#_route87"></a><a class="link" href="#_route87">2.24. PUT /v2/loop/undeploy/{loopName}</a></h3>
+<h3 id="_route49"><a class="anchor" href="#_route49"></a><a class="link" href="#_route49">2.24. PUT /v2/loop/undeploy/{loopName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_18"><a class="anchor" href="#_parameters_18"></a><a class="link" href="#_parameters_18">2.24.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -2148,7 +2148,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route81"><a class="anchor" href="#_route81"></a><a class="link" href="#_route81">2.25. POST /v2/loop/updateGlobalProperties/{loopName}</a></h3>
+<h3 id="_route43"><a class="anchor" href="#_route43"></a><a class="link" href="#_route43">2.25. POST /v2/loop/updateGlobalProperties/{loopName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_19"><a class="anchor" href="#_parameters_19"></a><a class="link" href="#_parameters_19">2.25.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -2226,7 +2226,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route83"><a class="anchor" href="#_route83"></a><a class="link" href="#_route83">2.26. POST /v2/loop/updateMicroservicePolicy/{loopName}</a></h3>
+<h3 id="_route45"><a class="anchor" href="#_route45"></a><a class="link" href="#_route45">2.26. POST /v2/loop/updateMicroservicePolicy/{loopName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_20"><a class="anchor" href="#_parameters_20"></a><a class="link" href="#_parameters_20">2.26.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -2304,7 +2304,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route82"><a class="anchor" href="#_route82"></a><a class="link" href="#_route82">2.27. POST /v2/loop/updateOperationalPolicies/{loopName}</a></h3>
+<h3 id="_route44"><a class="anchor" href="#_route44"></a><a class="link" href="#_route44">2.27. POST /v2/loop/updateOperationalPolicies/{loopName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_21"><a class="anchor" href="#_parameters_21"></a><a class="link" href="#_parameters_21">2.27.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -2382,7 +2382,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route79"><a class="anchor" href="#_route79"></a><a class="link" href="#_route79">2.28. GET /v2/loop/{loopName}</a></h3>
+<h3 id="_route41"><a class="anchor" href="#_route41"></a><a class="link" href="#_route41">2.28. GET /v2/loop/{loopName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_22"><a class="anchor" href="#_parameters_22"></a><a class="link" href="#_parameters_22">2.28.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -2444,7 +2444,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route106"><a class="anchor" href="#_route106"></a><a class="link" href="#_route106">2.29. POST /v2/policyToscaModels</a></h3>
+<h3 id="_route68"><a class="anchor" href="#_route68"></a><a class="link" href="#_route68">2.29. POST /v2/policyToscaModels</a></h3>
 <div class="sect3">
 <h4 id="_parameters_23"><a class="anchor" href="#_parameters_23"></a><a class="link" href="#_parameters_23">2.29.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -2516,7 +2516,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route105"><a class="anchor" href="#_route105"></a><a class="link" href="#_route105">2.30. GET /v2/policyToscaModels</a></h3>
+<h3 id="_route65"><a class="anchor" href="#_route65"></a><a class="link" href="#_route65">2.30. GET /v2/policyToscaModels</a></h3>
 <div class="sect3">
 <h4 id="_responses_30"><a class="anchor" href="#_responses_30"></a><a class="link" href="#_responses_30">2.30.1. Responses</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -2553,7 +2553,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_v2_policytoscamodels_yaml_policymodeltype_policymodelversion_get"><a class="anchor" href="#_v2_policytoscamodels_yaml_policymodeltype_policymodelversion_get"></a><a class="link" href="#_v2_policytoscamodels_yaml_policymodeltype_policymodelversion_get">2.31. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a></h3>
+<h3 id="_route67"><a class="anchor" href="#_route67"></a><a class="link" href="#_route67">2.31. GET /v2/policyToscaModels/yaml/{policyModelType}/{policyModelVersion}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_24"><a class="anchor" href="#_parameters_24"></a><a class="link" href="#_parameters_24">2.31.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -2621,7 +2621,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_v2_policytoscamodels_policymodeltype_policymodelversion_get"><a class="anchor" href="#_v2_policytoscamodels_policymodeltype_policymodelversion_get"></a><a class="link" href="#_v2_policytoscamodels_policymodeltype_policymodelversion_get">2.32. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3>
+<h3 id="_route66"><a class="anchor" href="#_route66"></a><a class="link" href="#_route66">2.32. GET /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_25"><a class="anchor" href="#_parameters_25"></a><a class="link" href="#_parameters_25">2.32.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -2689,7 +2689,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route107"><a class="anchor" href="#_route107"></a><a class="link" href="#_route107">2.33. PUT /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3>
+<h3 id="_route69"><a class="anchor" href="#_route69"></a><a class="link" href="#_route69">2.33. PUT /v2/policyToscaModels/{policyModelType}/{policyModelVersion}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_26"><a class="anchor" href="#_parameters_26"></a><a class="link" href="#_parameters_26">2.33.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -2773,7 +2773,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_route111"><a class="anchor" href="#_route111"></a><a class="link" href="#_route111">2.34. GET /v2/templates</a></h3>
+<h3 id="_route70"><a class="anchor" href="#_route70"></a><a class="link" href="#_route70">2.34. GET /v2/templates</a></h3>
 <div class="sect3">
 <h4 id="_responses_34"><a class="anchor" href="#_responses_34"></a><a class="link" href="#_responses_34">2.34.1. Responses</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -2810,7 +2810,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_v2_templates_names_get"><a class="anchor" href="#_v2_templates_names_get"></a><a class="link" href="#_v2_templates_names_get">2.35. GET /v2/templates/names</a></h3>
+<h3 id="_route72"><a class="anchor" href="#_route72"></a><a class="link" href="#_route72">2.35. GET /v2/templates/names</a></h3>
 <div class="sect3">
 <h4 id="_responses_35"><a class="anchor" href="#_responses_35"></a><a class="link" href="#_responses_35">2.35.1. Responses</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -2847,7 +2847,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_v2_templates_templatename_get"><a class="anchor" href="#_v2_templates_templatename_get"></a><a class="link" href="#_v2_templates_templatename_get">2.36. GET /v2/templates/{templateName}</a></h3>
+<h3 id="_route71"><a class="anchor" href="#_route71"></a><a class="link" href="#_route71">2.36. GET /v2/templates/{templateName}</a></h3>
 <div class="sect3">
 <h4 id="_parameters_27"><a class="anchor" href="#_parameters_27"></a><a class="link" href="#_parameters_27">2.36.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
@@ -2909,7 +2909,7 @@
 </div>
 </div>
 <div class="sect2">
-<h3 id="_v2_templates_templatename_svgrepresentation_get"><a class="anchor" href="#_v2_templates_templatename_svgrepresentation_get"></a><a class="link" href="#_v2_templates_templatename_svgrepresentation_get">2.37. GET /v2/templates/{templateName}/svgRepresentation</a></h3>
+<h3 id="_route73"><a class="anchor" href="#_route73"></a><a class="link" href="#_route73">2.37. GET /v2/templates/{templateName}/svgRepresentation</a></h3>
 <div class="sect3">
 <h4 id="_parameters_28"><a class="anchor" href="#_parameters_28"></a><a class="link" href="#_parameters_28">2.37.1. Parameters</a></h4>
 <table class="tableblock frame-all grid-all stretch">
diff --git a/src/main/resources/application-noaaf.properties b/src/main/resources/application-noaaf.properties
index dbccb32..4701b36 100644
--- a/src/main/resources/application-noaaf.properties
+++ b/src/main/resources/application-noaaf.properties
@@ -68,7 +68,7 @@
 
 server.servlet.context-path=/
 #Modified engine-rest applicationpath
-spring.profiles.active=clamp-default,clamp-default-user,clamp-sdc-controller,clamp-ssl-config,clamp-policy-controller,legacy-operational-policy
+spring.profiles.active=clamp-default,clamp-default-user,clamp-sdc-controller,clamp-ssl-config,clamp-policy-controller,legacy-operational-policy,default-dictionary-elements
 spring.http.converters.preferred-json-mapper=gson
 
 #The max number of active threads in this pool
@@ -140,7 +140,6 @@
 clamp.config.files.globalProperties=classpath:/clds/templates/globalProperties.json
 clamp.config.files.sdcController=classpath:/clds/sdc-controllers-config.json
 
-
 #
 # Configuration Settings for Policy Engine Components
 clamp.config.policy.api.url=http4://localhost:8085
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 90c4186..5bf7910 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -73,7 +73,7 @@
 
 server.servlet.context-path=/
 #Modified engine-rest applicationpath
-spring.profiles.active=clamp-default,clamp-aaf-authentication,clamp-sdc-controller,clamp-ssl-config,clamp-policy-controller,legacy-operational-policy
+spring.profiles.active=clamp-default,clamp-aaf-authentication,clamp-sdc-controller,clamp-ssl-config,clamp-policy-controller,legacy-operational-policy,default-dictionary-elements
 spring.http.converters.preferred-json-mapper=gson
 
 #The max number of active threads in this pool
@@ -154,7 +154,7 @@
 
 #
 # Sdc service properties
-clamp.config.sdc.csarFolder = /tmp/sdc-controllers
+clamp.config.sdc.csarFolder=/tmp/sdc-controllers
 
 #DCAE Inventory Url Properties
 clamp.config.dcae.inventory.url=http4://dcae.api.simpledemo.onap.org:8080