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
diff --git a/src/test/java/org/onap/clamp/clds/tosca/DictionaryRepositoriesTestItCase.java b/src/test/java/org/onap/clamp/clds/tosca/DictionaryRepositoriesTestItCase.java
index 2faf38f..092d35b 100644
--- a/src/test/java/org/onap/clamp/clds/tosca/DictionaryRepositoriesTestItCase.java
+++ b/src/test/java/org/onap/clamp/clds/tosca/DictionaryRepositoriesTestItCase.java
@@ -76,12 +76,12 @@
 
         dictionaryRepository.save(dictionaryTest1);
         List<String> res1 = dictionaryRepository.getAllDictionaryNames();
-        assertThat(res1.size()).isGreaterThan(1);
+        assertThat(res1.size()).isEqualTo(1);
         assertThat(res1).contains("testDictionary1");
 
         dictionaryRepository.save(dictionaryTest2);
         List<String> res2 = dictionaryRepository.getAllDictionaryNames();
-        assertThat(res2.size()).isGreaterThan(2);
+        assertThat(res2.size()).isEqualTo(2);
         assertThat(res2).contains("testDictionary1");
         assertThat(res2).contains("testDictionary2");
     }
diff --git a/src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java b/src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java
index 3ff6ffb..ea11f80 100644
--- a/src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java
+++ b/src/test/java/org/onap/clamp/clds/tosca/update/ToscaConverterWithDictionarySupportItCase.java
@@ -41,10 +41,12 @@
 import org.skyscreamer.jsonassert.JSONAssert;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
 @RunWith(SpringJUnit4ClassRunner.class)
 @SpringBootTest(classes = Application.class)
+@ActiveProfiles(profiles = "clamp-default,clamp-default-user,default-dictionary-elements")
 public class ToscaConverterWithDictionarySupportItCase {
 
     @Autowired
@@ -108,7 +110,8 @@
 
         JsonTemplateManager jsonTemplateManager =
                 new JsonTemplateManager(
-                        ResourceFileUtil.getResourceAsString("tosca/new-converter/tosca_metadata_clamp_possible_values.yaml"),
+                        ResourceFileUtil
+                                .getResourceAsString("tosca/new-converter/tosca_metadata_clamp_possible_values.yaml"),
                         ResourceFileUtil.getResourceAsString("clds/tosca-converter/default-tosca-types.yaml"),
                         ResourceFileUtil.getResourceAsString("clds/tosca-converter/templates.json"));
 
diff --git "a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0&\04363;connectionTimeToLive=5000/.file" "b/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0&\04363;connectionTimeToLive=5000/.file"
index ae0dfbf..49f409a 100644
--- "a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0&\04363;connectionTimeToLive=5000/.file"
+++ "b/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Apex/versions/1.0.0&\04363;connectionTimeToLive=5000/.file"
@@ -85,13 +85,13 @@
                 description: The actor performing the operation.
                 required: true
                 metadata:
-                    clamp_possible_values: Dictionary:DefaultActor
+                    clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor
             operation:
                 type: string
                 description: The operation the actor is performing.
                 required: true
                 metadata:
-                    clamp_possible_values: ClampExecution:CDS/operation
+                    clamp_possible_values: Dictionary:DefaultOperations,ClampExecution:CDS/operation
             target:
                 type: onap.datatype.controlloop.Target
                 description: The resource the operation should be performed on.
diff --git "a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0&\04363;connectionTimeToLive=5000/.file" "b/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0&\04363;connectionTimeToLive=5000/.file"
index 1f8723c..af7a61e 100644
--- "a/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0&\04363;connectionTimeToLive=5000/.file"
+++ "b/src/test/resources/http-cache/example/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0&\04363;connectionTimeToLive=5000/.file"
@@ -73,13 +73,13 @@
                 description: The actor performing the operation.
                 required: true
                 metadata:
-                    clamp_possible_values: Dictionary:DefaultActor
+                    clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor
             operation:
                 type: string
                 description: The operation the actor is performing.
                 required: true
                 metadata:
-                    clamp_possible_values: ClampExecution:CDS/operation
+                    clamp_possible_values: Dictionary:DefaultOperations, ClampExecution:CDS/operations
             target:
                 type: onap.datatype.controlloop.Target
                 description: The resource the operation should be performed on.
diff --git a/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json b/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json
index a44b94e..3fda111 100644
--- a/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json
+++ b/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json
@@ -66,15 +66,20 @@
                 "type": "string",
                 "description": "The actor performing the operation.",
                 "enum": [
-                  "CDS",
+                  "SDNR",
                   "SDNC",
-                  "SO"
+                  "VFC",
+                  "SO",
+                  "APPC",
+                  "CDS"
                 ],
                 "options": {
                   "enum_titles": [
-                    "CDS",
+                    "SDNR",
                     "SDNC",
-                    "SO"
+                    "VFC",
+                    "SO",
+                    "APPC"
                   ]
                 }
               },
@@ -82,13 +87,41 @@
                 "type": "string",
                 "description": "The operation the actor is performing.",
                 "enum": [
+                  "BandwidthOnDemand",
+                  "VF Module Delete",
+                  "Reroute",
+                  "VF Module Create",
+                  "ModifyConfig",
+                  "Rebuild",
+                  "Restart",
+                  "Migrate",
+                  "Health-Check",
                   "resource-assignment",
                   "activate",
                   "activate-restconf",
                   "activate-cli",
                   "assign-activate",
                   "imperative-test-wf"
-                ]
+                ],
+                "options": {
+                  "enum_titles": [
+                    "BandwidthOnDemand (SDNC operation)",
+                    "VF Module Delete (SO operation)",
+                    "Reroute (SDNC operation)",
+                    "VF Module Create (SO operation)",
+                    "ModifyConfig (APPC/VFC operation)",
+                    "Rebuild (APPC operation)",
+                    "Restart (APPC operation)",
+                    "Migrate (APPC operation)",
+                    "Health-Check (APPC operation)",
+                    "resource-assignment (CDS operation)",
+                    "activate (CDS operation)",
+                    "activate-restconf (CDS operation)",
+                    "activate-cli (CDS operation)",
+                    "assign-activate (CDS operation)",
+                    "imperative-test-wf (CDS operation)"
+                  ]
+                }
               },
               "target": {
                 "title": "onap.datatype.controlloop.Target",
@@ -294,7 +327,7 @@
               "payload": {
                 "type": "object",
                 "description": "Name/value pairs of payload information passed by Policy to the actor",
-                "anyOf": [
+                "enum": [
                   {
                     "title": "resource-assignment",
                     "properties": {
