Code coverage in clamp/models 67/124667/3
authorlapentafd <francesco.lapenta@est.tech>
Wed, 29 Sep 2021 17:13:56 +0000 (18:13 +0100)
committerlapentafd <francesco.lapenta@est.tech>
Tue, 5 Oct 2021 08:57:51 +0000 (09:57 +0100)
Issue-ID: POLICY-3452
Change-Id: I4c24c85edd7a22b05ae81ee7779da13974127164
Signed-off-by: lapentafd <francesco.lapenta@est.tech>
models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/concepts/ControlLoopElementTest.java
models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/concepts/ControlLoopTest.java
models/src/test/java/org/onap/policy/clamp/controlloop/models/controlloop/persistence/provider/ControlLoopProviderTest.java
models/src/test/resources/examples/controlloop/PMSubscriptionHandling.yaml [new file with mode: 0644]

index 9e285a4..ed579fe 100644 (file)
@@ -25,6 +25,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 import java.util.UUID;
 import org.junit.jupiter.api.Test;
@@ -33,24 +34,45 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 class ControlLoopElementTest {
     @Test
     void testControlLoopElement() {
+        var cle0 = new ControlLoopElement();
+        var cle1 = new ControlLoopElement(cle0);
+        assertEquals(cle0, cle1);
 
-        ControlLoopElement cle0 = new ControlLoopElement();
+        cle1.setDefinition(new ToscaConceptIdentifier("defName", "0.0.1"));
+        cle1.setDescription("Description");
+        cle1.setId(UUID.randomUUID());
+        cle1.setOrderedState(ControlLoopOrderedState.UNINITIALISED);
+        cle1.setParticipantId(new ToscaConceptIdentifier("id", "1.2.3"));
+        cle1.setState(ControlLoopState.UNINITIALISED);
 
-        ControlLoopElement cle1 = new ControlLoopElement(cle0);
-        assertEquals(cle0, cle1);
+        var cle2 = new ControlLoopElement(cle1);
+        assertEquals(cle1, cle2);
+    }
+
+    @Test
+    void testControlLoopState() {
+        var cle0 = new ControlLoopElement();
+
+        assertTrue(
+                cle0.getOrderedState()
+                .equalsControlLoopState(ControlLoopState.UNINITIALISED));
+
+        assertTrue(
+                cle0.getOrderedState().asState()
+                .equalsControlLoopOrderedState(ControlLoopOrderedState.UNINITIALISED));
     }
 
     @Test
     void testControlLoopElementLombok() {
         assertNotNull(new ControlLoopElement());
-        ControlLoopElement cle0 = new ControlLoopElement();
+        var cle0 = new ControlLoopElement();
 
         assertThat(cle0.toString()).contains("ControlLoopElement(");
         assertThat(cle0.hashCode()).isNotZero();
         assertEquals(true, cle0.equals(cle0));
         assertEquals(false, cle0.equals(null));
 
-        ControlLoopElement cle1 = new ControlLoopElement();
+        var cle1 = new ControlLoopElement();
 
         cle1.setDefinition(new ToscaConceptIdentifier("defName", "0.0.1"));
         cle1.setDescription("Description");
@@ -66,7 +88,7 @@ class ControlLoopElementTest {
 
         assertNotEquals(cle1, cle0);
 
-        ControlLoopElement cle2 = new ControlLoopElement();
+        var cle2 = new ControlLoopElement();
 
         // @formatter:off
         assertThatThrownBy(() -> cle2.setDefinition(null)).   isInstanceOf(NullPointerException.class);
index 243d8dc..51a4fc7 100644 (file)
@@ -27,7 +27,9 @@ import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
+import java.time.Instant;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.UUID;
 import org.junit.jupiter.api.Test;
 import org.onap.policy.models.base.PfKey;
@@ -36,12 +38,12 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 class ControlLoopTest {
     @Test
     void testControlLoop() {
-        ControlLoop cl0 = new ControlLoop();
+        var cl0 = new ControlLoop();
         cl0.setDefinition(new ToscaConceptIdentifier("dfName", "1.2.3"));
         assertEquals("dfName", cl0.getType());
         assertEquals("1.2.3", cl0.getTypeVersion());
 
-        ControlLoop cl1 = new ControlLoop(cl0);
+        var cl1 = new ControlLoop(cl0);
         assertEquals(cl0, cl1);
 
         assertEquals(0, cl0.compareTo(cl1));
@@ -50,7 +52,7 @@ class ControlLoopTest {
     @Test
     void testControlLoopLombok() {
         assertNotNull(new ControlLoop());
-        ControlLoop cl0 = new ControlLoop();
+        var cl0 = new ControlLoop();
         cl0.setElements(new LinkedHashMap<>());
 
         assertThat(cl0.toString()).contains("ControlLoop(");
@@ -58,7 +60,7 @@ class ControlLoopTest {
         assertEquals(true, cl0.equals(cl0));
         assertEquals(false, cl0.equals(null));
 
-        ControlLoop cl1 = new ControlLoop();
+        var cl1 = new ControlLoop();
 
         cl1.setDefinition(new ToscaConceptIdentifier("defName", "0.0.1"));
         cl1.setDescription("Description");
@@ -75,7 +77,7 @@ class ControlLoopTest {
 
         assertNotEquals(cl1, cl0);
 
-        ControlLoop cl2 = new ControlLoop();
+        var cl2 = new ControlLoop();
         cl2.setElements(new LinkedHashMap<>());
 
         // @formatter:off
@@ -98,5 +100,61 @@ class ControlLoopTest {
         assertNull(cl1.getElements().get(UUID.randomUUID()));
 
         assertEquals(PfKey.NULL_KEY_NAME, cl0.getDefinition().getName());
+
+    }
+
+    @Test
+    void testControlLoopElementStatisticsList() {
+        var cl = new ControlLoop();
+        List<ClElementStatistics> emptylist = cl.getControlLoopElementStatisticsList(cl);
+        assertNull(emptylist);
+
+        var cl1 = getControlLoopTest();
+        List<ClElementStatistics> list = cl1.getControlLoopElementStatisticsList(cl1);
+        assertNotNull(list);
+        assertEquals(2, list.size());
+        assertEquals(ControlLoopState.UNINITIALISED, list.get(0).getControlLoopState());
+    }
+
+    private ControlLoop getControlLoopTest() {
+        var cl = new ControlLoop();
+        cl.setDefinition(new ToscaConceptIdentifier("defName", "1.2.3"));
+        cl.setDescription("Description");
+        cl.setElements(new LinkedHashMap<>());
+        cl.setName("Name");
+        cl.setOrderedState(ControlLoopOrderedState.UNINITIALISED);
+        cl.setState(ControlLoopState.UNINITIALISED);
+        cl.setVersion("0.0.1");
+
+        var uuid = UUID.randomUUID();
+        var id = new ToscaConceptIdentifier(
+                "org.onap.policy.controlloop.PolicyControlLoopParticipant", "1.0.1");
+        var clElement = getControlLoopElementTest(uuid, id);
+
+        var uuid2 = UUID.randomUUID();
+        var id2 = new ToscaConceptIdentifier(
+                "org.onap.policy.controlloop.PolicyControlLoopParticipantIntermediary", "0.0.1");
+        var clElement2 = getControlLoopElementTest(uuid2, id2);
+
+        cl.getElements().put(uuid, clElement);
+        cl.getElements().put(uuid2, clElement2);
+        return cl;
+    }
+
+    private ControlLoopElement getControlLoopElementTest(UUID uuid, ToscaConceptIdentifier id) {
+        var clElement = new ControlLoopElement();
+        clElement.setId(uuid);
+        clElement.setParticipantId(id);
+        clElement.setDefinition(id);
+        clElement.setOrderedState(ControlLoopOrderedState.UNINITIALISED);
+
+        var clElementStatistics = new ClElementStatistics();
+        clElementStatistics.setParticipantId(id);
+        clElementStatistics.setControlLoopState(ControlLoopState.UNINITIALISED);
+        clElementStatistics.setTimeStamp(Instant.now());
+
+        clElement.setClElementStatistics(clElementStatistics);
+
+        return clElement;
     }
 }
index 8aec568..9805edb 100644 (file)
@@ -23,6 +23,7 @@ package org.onap.policy.clamp.controlloop.models.controlloop.persistence.provide
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
 import java.util.List;
@@ -35,9 +36,12 @@ import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop
 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops;
 import org.onap.policy.common.utils.coder.Coder;
 import org.onap.policy.common.utils.coder.StandardCoder;
+import org.onap.policy.common.utils.coder.YamlJsonTranslator;
 import org.onap.policy.common.utils.resources.ResourceUtils;
 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaTypedEntityFilter;
 
 class ControlLoopProviderTest {
@@ -46,7 +50,9 @@ class ControlLoopProviderTest {
     private static final Coder CODER = new StandardCoder();
     private static final String CONTROL_LOOP_JSON = "src/test/resources/providers/TestControlLoops.json";
     private static final String UPDATE_CL_JSON = "src/test/resources/providers/UpdateControlLoops.json";
+    private static final String TOSCA_TEMPLATE_YAML = "examples/controlloop/PMSubscriptionHandling.yaml";
 
+    private static final YamlJsonTranslator yamlTranslator = new YamlJsonTranslator();
     private static AtomicInteger dbNameCounter = new AtomicInteger();
 
     private PolicyModelsProviderParameters parameters;
@@ -85,7 +91,7 @@ class ControlLoopProviderTest {
             controlLoopProvider.createControlLoops(null);
         }).hasMessageMatching(LIST_IS_NULL);
 
-        ControlLoops createdControlLoops = new ControlLoops();
+        var createdControlLoops = new ControlLoops();
         createdControlLoops
             .setControlLoopList(controlLoopProvider.createControlLoops(inputControlLoops.getControlLoopList()));
 
@@ -102,11 +108,11 @@ class ControlLoopProviderTest {
         assertThat(getResponse).isEmpty();
 
         controlLoopProvider.createControlLoops(inputControlLoops.getControlLoopList());
-        String name = inputControlLoops.getControlLoopList().get(0).getName();
-        String version = inputControlLoops.getControlLoopList().get(0).getVersion();
+        var name = inputControlLoops.getControlLoopList().get(0).getName();
+        var version = inputControlLoops.getControlLoopList().get(0).getVersion();
         assertEquals(1, controlLoopProvider.getControlLoops(name, version).size());
 
-        ControlLoop cl = new ControlLoop();
+        var cl = new ControlLoop();
         cl = controlLoopProvider.getControlLoop(new ToscaConceptIdentifier("PMSHInstance1", "1.0.1"));
         assertEquals(inputControlLoops.getControlLoopList().get(1), cl);
 
@@ -127,10 +133,10 @@ class ControlLoopProviderTest {
             controlLoopProvider.updateControlLoops(null);
         }).hasMessageMatching("controlLoops is marked .*ull but is null");
 
-        ControlLoops existingControlLoops = new ControlLoops();
+        var existingControlLoops = new ControlLoops();
         existingControlLoops
             .setControlLoopList(controlLoopProvider.createControlLoops(inputControlLoops.getControlLoopList()));
-        ControlLoop updateResponse = new ControlLoop();
+        var updateResponse = new ControlLoop();
         updateResponse = controlLoopProvider.updateControlLoop(updateControlLoops.getControlLoopList().get(0));
 
         assertEquals(ControlLoopOrderedState.RUNNING, updateResponse.getOrderedState());
@@ -144,11 +150,61 @@ class ControlLoopProviderTest {
 
         ControlLoop deletedCl;
         List<ControlLoop> clList = controlLoopProvider.createControlLoops(inputControlLoops.getControlLoopList());
-        String name = inputControlLoops.getControlLoopList().get(0).getName();
-        String version = inputControlLoops.getControlLoopList().get(0).getVersion();
+        var name = inputControlLoops.getControlLoopList().get(0).getName();
+        var version = inputControlLoops.getControlLoopList().get(0).getVersion();
 
         deletedCl = controlLoopProvider.deleteControlLoop(name, version);
         assertEquals(clList.get(0), deletedCl);
+    }
+
+    @Test
+    void testDeleteAllInstanceProperties() throws Exception {
+        var toscaServiceTemplate = testControlLoopRead();
+        controlLoopProvider.deleteInstanceProperties(
+                controlLoopProvider.saveInstanceProperties(toscaServiceTemplate),
+                controlLoopProvider.getNodeTemplates(null, null));
+        assertThat(controlLoopProvider.getControlLoops(null, null)).isEmpty();
+    }
+
+    @Test
+    void testSaveAndDeleteInstanceProperties() throws Exception {
+        var toscaServiceTest = testControlLoopRead();
+        controlLoopProvider.createControlLoops(inputControlLoops.getControlLoopList());
+
+        controlLoopProvider.saveInstanceProperties(toscaServiceTest);
+        assertThat(controlLoopProvider.getNodeTemplates(
+                "org.onap.policy.controlloop.PolicyControlLoopParticipant",
+                "2.3.1")).isNotEmpty();
+
+        controlLoopProvider.deleteInstanceProperties(
+                controlLoopProvider.saveInstanceProperties(toscaServiceTest),
+                controlLoopProvider.getNodeTemplates(
+                        "org.onap.policy.controlloop.PolicyControlLoopParticipant",
+                        "2.3.1"));
+
+        assertThat(controlLoopProvider.getNodeTemplates(
+                "org.onap.policy.controlloop.PolicyControlLoopParticipant",
+                "2.3.1")).isEmpty();
+    }
+
+    @Test
+    void testGetNodeTemplates() throws Exception {
+        //Getting all nodes
+        List<ToscaNodeTemplate> listNodes = controlLoopProvider.getNodeTemplates(null, null);
+        assertNotNull(listNodes);
+
+        assertThatThrownBy(() -> {
+            controlLoopProvider.getFilteredNodeTemplates(null);
+        }).hasMessageMatching("filter is marked non-null but is null");
+    }
+
+    private static ToscaServiceTemplate testControlLoopRead() {
+        return testControlLoopYamlSerialization(TOSCA_TEMPLATE_YAML);
+    }
 
+    private static ToscaServiceTemplate testControlLoopYamlSerialization(String controlLoopFilePath) {
+        String controlLoopString = ResourceUtils.getResourceAsString(controlLoopFilePath);
+        ToscaServiceTemplate serviceTemplate = yamlTranslator.fromYaml(controlLoopString, ToscaServiceTemplate.class);
+        return serviceTemplate;
     }
 }
diff --git a/models/src/test/resources/examples/controlloop/PMSubscriptionHandling.yaml b/models/src/test/resources/examples/controlloop/PMSubscriptionHandling.yaml
new file mode 100644 (file)
index 0000000..8e8f3cd
--- /dev/null
@@ -0,0 +1,3325 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2021 Nordix Foundation.
+# ================================================================================
+# 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+tosca_definitions_version: tosca_simple_yaml_1_3
+data_types:
+  onap.datatypes.ToscaConceptIdentifier:
+    derived_from: tosca.datatypes.Root
+    properties:
+      name:
+        type: string
+        required: true
+      version:
+        type: string
+        required: true
+  org.onap.datatypes.policy.clamp.controlloop.DCAEMicroserviceControlLoopElementConsulInfo:
+    name: org.onap.datatypes.policy.clamp.controlloop.DCAEMicroserviceControlLoopElementConsulInfo
+    version: 0.0.0
+    derived_from: tosca.datatypes.Root
+    properties:
+      consulUrl:
+        name: consulUrl
+        type: string
+        typeVersion: 0.0.0
+        description: Consul url for this entry
+        required: true
+      consul_body:
+        name: consulBody
+        type: string
+        typeVersion: 0.0.0
+        description: Body of Consul entry
+        required: true
+  onap.datatypes.monitoring.managedObjectDNsBasic:
+    constraints: []
+    properties:
+      DN:
+        name: DN
+        type: string
+        typeVersion: 0.0.0
+        description: Managed object distinguished name
+        required: true
+        constraints: []
+        metadata: {}
+    name: onap.datatypes.monitoring.managedObjectDNsBasic
+    version: 0.0.0
+    derived_from: tosca.datatypes.Root
+    metadata: {}
+  onap.datatypes.monitoring.managedObjectDNsBasics:
+    constraints: []
+    properties:
+      managedObjectDNsBasic:
+        name: managedObjectDNsBasic
+        type: map
+        typeVersion: 0.0.0
+        description: Managed object distinguished name object
+        required: true
+        constraints: []
+        entry_schema:
+          type: onap.datatypes.monitoring.managedObjectDNsBasic
+          typeVersion: 0.0.0
+          constraints: []
+        metadata: {}
+    name: onap.datatypes.monitoring.managedObjectDNsBasics
+    version: 0.0.0
+    derived_from: tosca.datatypes.Root
+    metadata: {}
+  onap.datatypes.monitoring.measurementGroup:
+    constraints: []
+    properties:
+      measurementTypes:
+        name: measurementTypes
+        type: list
+        typeVersion: 0.0.0
+        description: List of measurement types
+        required: true
+        constraints: []
+        entry_schema:
+          type: onap.datatypes.monitoring.measurementTypes
+          typeVersion: 0.0.0
+          constraints: []
+        metadata: {}
+      managedObjectDNsBasic:
+        name: managedObjectDNsBasic
+        type: list
+        typeVersion: 0.0.0
+        description: List of managed object distinguished names
+        required: true
+        constraints: []
+        entry_schema:
+          type: onap.datatypes.monitoring.managedObjectDNsBasics
+          typeVersion: 0.0.0
+          constraints: []
+        metadata: {}
+    name: onap.datatypes.monitoring.measurementGroup
+    version: 0.0.0
+    derived_from: tosca.datatypes.Root
+    metadata: {}
+  onap.datatypes.monitoring.measurementGroups:
+    constraints: []
+    properties:
+      measurementGroup:
+        name: measurementGroup
+        type: map
+        typeVersion: 0.0.0
+        description: Measurement Group
+        required: true
+        constraints: []
+        entry_schema:
+          type: onap.datatypes.monitoring.measurementGroup
+          typeVersion: 0.0.0
+          constraints: []
+        metadata: {}
+    name: onap.datatypes.monitoring.measurementGroups
+    version: 0.0.0
+    derived_from: tosca.datatypes.Root
+    metadata: {}
+  onap.datatypes.monitoring.measurementType:
+    constraints: []
+    properties:
+      measurementType:
+        name: measurementType
+        type: string
+        typeVersion: 0.0.0
+        description: Measurement type
+        required: true
+        constraints: []
+        metadata: {}
+    name: onap.datatypes.monitoring.measurementType
+    version: 0.0.0
+    derived_from: tosca.datatypes.Root
+    metadata: {}
+  onap.datatypes.monitoring.measurementTypes:
+    constraints: []
+    properties:
+      measurementType:
+        name: measurementType
+        type: map
+        typeVersion: 0.0.0
+        description: Measurement type object
+        required: true
+        constraints: []
+        entry_schema:
+          type: onap.datatypes.monitoring.measurementType
+          typeVersion: 0.0.0
+          constraints: []
+        metadata: {}
+    name: onap.datatypes.monitoring.measurementTypes
+    version: 0.0.0
+    derived_from: tosca.datatypes.Root
+    metadata: {}
+  onap.datatypes.monitoring.nfFilter:
+    constraints: []
+    properties:
+      modelNames:
+        name: modelNames
+        type: list
+        typeVersion: 0.0.0
+        description: List of model names
+        required: true
+        constraints: []
+        entry_schema:
+          type: string
+          typeVersion: 0.0.0
+          constraints: []
+        metadata: {}
+      modelInvariantIDs:
+        name: modelInvariantIDs
+        type: list
+        typeVersion: 0.0.0
+        description: List of model invariant IDs
+        required: true
+        constraints: []
+        entry_schema:
+          type: string
+          typeVersion: 0.0.0
+          constraints: []
+        metadata: {}
+      modelVersionIDs:
+        name: modelVersionIDs
+        type: list
+        typeVersion: 0.0.0
+        description: List of model version IDs
+        required: true
+        constraints: []
+        entry_schema:
+          type: string
+          typeVersion: 0.0.0
+          constraints: []
+        metadata: {}
+      nfNames:
+        name: nfNames
+        type: list
+        typeVersion: 0.0.0
+        description: List of network functions
+        required: true
+        constraints: []
+        entry_schema:
+          type: string
+          typeVersion: 0.0.0
+          constraints: []
+        metadata: {}
+    name: onap.datatypes.monitoring.nfFilter
+    version: 0.0.0
+    derived_from: tosca.datatypes.Root
+    metadata: {}
+  onap.datatypes.monitoring.subscription:
+    constraints: []
+    properties:
+      measurementGroups:
+        name: measurementGroups
+        type: list
+        typeVersion: 0.0.0
+        description: Measurement Groups
+        required: true
+        constraints: []
+        entry_schema:
+          type: onap.datatypes.monitoring.measurementGroups
+          typeVersion: 0.0.0
+          constraints: []
+        metadata: {}
+      fileBasedGP:
+        name: fileBasedGP
+        type: integer
+        typeVersion: 0.0.0
+        description: File based granularity period
+        required: true
+        constraints: []
+        metadata: {}
+      fileLocation:
+        name: fileLocation
+        type: string
+        typeVersion: 0.0.0
+        description: ROP file location
+        required: true
+        constraints: []
+        metadata: {}
+      subscriptionName:
+        name: subscriptionName
+        type: string
+        typeVersion: 0.0.0
+        description: Name of the subscription
+        required: true
+        constraints: []
+        metadata: {}
+      administrativeState:
+        name: administrativeState
+        type: string
+        typeVersion: 0.0.0
+        description: State of the subscription
+        required: true
+        constraints:
+        - valid_values:
+          - LOCKED
+          - UNLOCKED
+        metadata: {}
+      nfFilter:
+        name: nfFilter
+        type: map
+        typeVersion: 0.0.0
+        description: Network function filter
+        required: true
+        constraints: []
+        entry_schema:
+          type: onap.datatypes.monitoring.nfFilter
+          typeVersion: 0.0.0
+          constraints: []
+        metadata: {}
+    name: onap.datatypes.monitoring.subscription
+    version: 0.0.0
+    derived_from: tosca.datatypes.Root
+    metadata: {}
+policy_types:
+  onap.policies.Monitoring:
+    derived_from: tosca.policies.Root
+    description: a base policy type for all policies that govern monitoring provisioning
+    version: 1.0.0
+    name: onap.policies.Monitoring
+  onap.policies.monitoring.dcae-pm-subscription-handler:
+    properties:
+      pmsh_policy:
+        name: pmsh_policy
+        type: onap.datatypes.monitoring.subscription
+        typeVersion: 0.0.0
+        description: PMSH Policy JSON
+        required: false
+        constraints: []
+        metadata: {}
+    name: onap.policies.monitoring.dcae-pm-subscription-handler
+    version: 1.0.0
+    derived_from: onap.policies.Monitoring
+    metadata: {}
+node_types:
+  org.onap.policy.clamp.controlloop.Participant:
+    version: 1.0.1
+    derived_from: tosca.nodetypes.Root
+    properties:
+      provider:
+        type: string
+        required: false
+  org.onap.policy.clamp.controlloop.ControlLoopElement:
+    version: 1.0.1
+    derived_from: tosca.nodetypes.Root
+    properties:
+      provider:
+        type: string
+        required: false
+      participantType:
+        type: onap.datatypes.ToscaConceptIdentifier
+        required: true
+      startPhase:
+        type: integer
+        required: false
+        constraints:
+        - greater-or-equal: 0
+        metadata:
+            common: true
+        description: A value indicating the start phase in which this control loop element will be started, the
+                     first start phase is zero. Control Loop Elements are started in their start_phase order and stopped
+                     in reverse start phase order. Control Loop Elements with the same start phase are started and
+                     stopped simultaneously
+  org.onap.policy.clamp.controlloop.ControlLoop:
+    version: 1.0.1
+    derived_from: tosca.nodetypes.Root
+    properties:
+      provider:
+        type: string
+        required: false
+      elements:
+        type: list
+        required: true
+        entry_schema:
+          type: onap.datatypes.ToscaConceptIdentifier
+  org.onap.policy.clamp.controlloop.DCAEMicroserviceControlLoopElement:
+    version: 1.0.1
+    derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
+    properties:
+      dcae_blueprint_id:
+        type: onap.datatypes.ToscaConceptIdentifier
+        required: false
+      dcae_blueprint:
+        type: onap.dcae.cloudify_blueprint
+        required: false
+      consul_info:
+        type: list
+        required: false
+        entry_schema:
+          type: org.onap.datatypes.policy.clamp.controlloop.DCAEMicroserviceControlLoopElementConsulInfo
+  org.onap.policy.clamp.controlloop.PolicyControlLoopElement:
+    version: 1.0.1
+    derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
+    properties:
+      policy_type_id:
+        type: onap.datatypes.ToscaConceptIdentifier
+        required: true
+      policy_id:
+        type: onap.datatypes.ToscaConceptIdentifier
+        required: false
+  org.onap.policy.clamp.controlloop.CDSControlLoopElement:
+    version: 1.0.1
+    derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
+    properties:
+      cds_blueprint_id:
+        type: onap.datatypes.ToscaConceptIdentifier
+        required: true
+topology_template:
+  inputs:
+    pmsh_monitoring_policy:
+      type: onap.datatypes.ToscaConceptIdentifier
+      description: The ID of the PMSH monitoring policy to use
+      default:
+        name: MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0test
+        version: 1.0.0
+    pmsh_operational_policy:
+      type: onap.datatypes.ToscaConceptIdentifier
+      description: The ID of the PMSH operational policy to use
+      default:
+        name: operational.apex.pmcontrol
+        version: 1.0.0
+  node_templates:
+    org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant:
+      version: 2.3.4
+      type: org.onap.policy.clamp.controlloop.Participant
+      type_version: 1.0.1
+      description: Participant for DCAE microservices
+      properties:
+        provider: ONAP
+    org.onap.policy.controlloop.PolicyControlLoopParticipant:
+      version: 2.3.1
+      type: org.onap.policy.clamp.controlloop.Participant
+      type_version: 1.0.1
+      description: Participant for DCAE microservices
+      properties:
+        provider: ONAP
+    org.onap.ccsdk.cds.controlloop.CdsControlLoopParticipant:
+      version: 2.2.1
+      type: org.onap.policy.clamp.controlloop.Participant
+      type_version: 1.0.1
+      description: Participant for DCAE microservices
+      properties:
+        provider: ONAP
+    org.onap.domain.pmsh.PMSH_DCAEMicroservice:
+      version: 1.2.3
+      type: org.onap.policy.clamp.controlloop.DCAEMicroserviceControlLoopElement
+      type_version: 1.0.0
+      description: Control loop element for the DCAE microservice for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        participantType:
+          name: org.onap.dcae.controlloop.DCAEMicroserviceControlLoopParticipant
+          version: 2.3.4
+        dcae_blueprint:
+          tosca_definitions_version: cloudify_dsl_1_3
+          imports:
+          - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml
+          - plugin:k8splugin?version=3.7.0
+          - plugin:pgaas?version=1.3.0
+          - plugin:clamppolicyplugin?version=1.1.0
+          inputs:
+            tag_version:
+              type: string
+              description: Docker image to be used
+              default: nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.pmsh:1.1.2
+            replicas:
+              type: integer
+              description: Number of instances
+              default: 1
+            operational_policy_name:
+              type: string
+              default: operational.apex.pmcontrol
+            control_loop_name:
+              type: string
+              default: pmsh-control-loop
+            pmsh_publish_topic_name:
+              type: string
+              default: unauthenticated.DCAE_CL_OUTPUT
+            policy_feedback_topic_name:
+              type: string
+              default: unauthenticated.PMSH_CL_INPUT
+            aai_notification_topic_name:
+              type: string
+              default: AAI-EVENT
+            publisher_client_role:
+              type: string
+              description: Client role to request secure access to topic
+              default: org.onap.dcae.pmPublisher
+            subscriber_client_role:
+              type: string
+              description: Client role to request secure access to topic
+              default: org.onap.dcae.pmSubscriber
+            dcae_location:
+              type: string
+              description: DCAE location for the subscriber, used to set up routing
+              default: san-francisco
+            cpu_limit:
+              type: string
+              default: 1000m
+            cpu_request:
+              type: string
+              default: 1000m
+            memory_limit:
+              type: string
+              default: 1024Mi
+            memory_request:
+              type: string
+              default: 1024Mi
+            pgaas_cluster_name:
+              type: string
+              default: dcae-pg-primary.onap
+            enable_tls:
+              type: boolean
+              default: true
+            protocol:
+              type: string
+              description: PMSH protocol. If enable_tls is false, set to http
+              default: https
+            policy_model_id:
+              type: string
+              default: onap.policies.monitoring.dcae-pm-subscription-handler
+            policy_id:
+              type: string
+              default: MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0test
+          node_templates:
+            pgaasvm:
+              type: dcae.nodes.pgaas.database
+              properties:
+                writerfqdn:
+                  get_input: pgaas_cluster_name
+                name: pmsh
+            pmsh:
+              type: dcae.nodes.ContainerizedServiceComponentUsingDmaap
+              interfaces:
+                cloudify.interfaces.lifecycle:
+                  create:
+                    inputs:
+                      ports:
+                      - '8443:0'
+                      envs:
+                        PMSH_PG_URL:
+                          get_attribute:
+                          - pgaasvm
+                          - admin
+                          - host
+                        PMSH_PG_PASSWORD:
+                          get_attribute:
+                          - pgaasvm
+                          - admin
+                          - password
+                        PMSH_PG_USERNAME:
+                          get_attribute:
+                          - pgaasvm
+                          - admin
+                          - user
+                        PMSH_DB_NAME:
+                          get_attribute:
+                          - pgaasvm
+                          - admin
+                          - database
+              relationships:
+              - target: pmsh-policy
+                type: cloudify.relationships.depends_on
+              properties:
+                service_component_type: dcae-pmsh
+                service_component_name_override: dcae-pmsh
+                application_config:
+                  enable_tls:
+                    get_input: enable_tls
+                  aaf_identity: dcae@dcae.onap.org
+                  aaf_password: demo123456!
+                  operational_policy_name:
+                    get_input: operational_policy_name
+                  control_loop_name:
+                    get_input: control_loop_name
+                  cert_path: /opt/app/pmsh/etc/certs/cert.pem
+                  key_path: /opt/app/pmsh/etc/certs/key.pem
+                  ca_cert_path: /opt/app/pmsh/etc/certs/cacert.pem
+                  streams_publishes:
+                    policy_pm_publisher:
+                      type: message_router
+                      dmaap_info:
+                        topic_url:
+                          concat:
+                          - http://message-router:3904/events/
+                          - get_input: pmsh_publish_topic_name
+                  streams_subscribes:
+                    policy_pm_subscriber:
+                      type: message_router
+                      dmaap_info:
+                        topic_url:
+                          concat:
+                          - http://message-router:3904/events/
+                          - get_input: policy_feedback_topic_name
+                    aai_subscriber:
+                      type: message_router
+                      dmaap_info:
+                        topic_url:
+                          concat:
+                          - http://message-router:3904/events/
+                          - get_input: aai_notification_topic_name
+                resource_config:
+                  limits:
+                    cpu:
+                      get_input: cpu_limit
+                    memory:
+                      get_input: memory_limit
+                  requests:
+                    cpu:
+                      get_input: cpu_request
+                    memory:
+                      get_input: memory_request
+                docker_config:
+                  healthcheck:
+                    endpoint: /healthcheck
+                    interval: 15s
+                    timeout: 1s
+                    type:
+                      get_input: protocol
+                image:
+                  get_input: tag_version
+                replicas:
+                  get_input: replicas
+                log_info:
+                  log_directory: /var/log/ONAP/dcaegen2/services/pmsh
+                tls_info:
+                  cert_directory: /opt/app/pmsh/etc/certs
+                  use_tls:
+                    get_input: enable_tls
+            pmsh-policy:
+              type: clamp.nodes.policy
+              properties:
+                policy_model_id:
+                  get_input: policy_model_id
+                policy_id:
+                  get_input: policy_id
+        consul_info:
+        - consulUrl: http://consul:31321/v1/kv/dcae-pmsh:policy
+          consulBody:
+            subscription:
+              subscriptionName: subscriptiona
+              administrativeState: UNLOCKED
+              fileBasedGP: 15
+              fileLocation: /pm/pm.xml
+              nfFilter:
+                nfNames:
+                - ^pnf1.*
+                modelInvariantIDs:
+                - 5845y423-g654-6fju-po78-8n53154532k6
+                - 7129e420-d396-4efb-af02-6b83499b12f8
+                modelVersionIDs:
+                - e80a6ae3-cafd-4d24-850d-e14c084a5ca9
+              measurementGroups:
+              - measurementGroup:
+                  measurementTypes:
+                  - measurementType: countera
+                  - measurementType: counterb
+                  managedObjectDNsBasic:
+                  - DN: dna
+                  - DN: dnb
+              - measurementGroup:
+                  measurementTypes:
+                  - measurementType: counterc
+                  - measurementType: counterd
+                  managedObjectDNsBasic:
+                  - DN: dnc
+                  - DN: dnd
+    org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement:
+      version: 1.2.3
+      type: org.onap.policy.clamp.controlloop.PolicyControlLoopElement
+      type_version: 1.0.0
+      description: Control loop element for the monitoring policy for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        participantType:
+          name: org.onap.policy.controlloop.PolicyControlLoopParticipant
+          version: 2.3.1
+        policy_type_id:
+          name: onap.policies.monitoring.pm-subscription-handler
+          version: 1.0.0
+        policy_id:
+          get_input: pmsh_monitoring_policy
+    org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement:
+      version: 1.2.3
+      type: org.onap.policy.clamp.controlloop.PolicyControlLoopElement
+      type_version: 1.0.0
+      description: Control loop element for the operational policy for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        participantType:
+          name: org.onap.policy.controlloop.PolicyControlLoopParticipant
+          version: 2.2.1
+        policy_type_id:
+          name: onap.policies.operational.pm-subscription-handler
+          version: 1.0.0
+        policy_id:
+          get_input: pmsh_operational_policy
+    org.onap.domain.pmsh.PMSH_CDS_ControlLoopElement:
+      version: 1.2.3
+      type: org.onap.policy.clamp.controlloop.CDSControlLoopElement
+      type_version: 1.0.0
+      description: Control loop element for CDS for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        participantType:
+          name: org.onap.ccsdk.cds.controlloop.CdsControlLoopParticipant
+          version: 3.2.1
+        cds_blueprint_id:
+          name: org.onap.ccsdk.cds.PMSHCdsBlueprint
+          version: 1.0.0
+    org.onap.domain.pmsh.PMSHControlLoopDefinition:
+      version: 1.2.3
+      type: org.onap.policy.clamp.controlloop.ControlLoop
+      type_version: 1.0.0
+      description: Control loop for Performance Management Subscription Handling
+      properties:
+        provider: Ericsson
+        elements:
+        - name: org.onap.domain.pmsh.PMSH_DCAEMicroservice
+          version: 1.2.3
+        - name: org.onap.domain.pmsh.PMSH_MonitoringPolicyControlLoopElement
+          version: 1.2.3
+        - name: org.onap.domain.pmsh.PMSH_OperationalPolicyControlLoopElement
+          version: 1.2.3
+        - name: org.onap.domain.pmsh.PMSH_CDS_ControlLoopElement
+          version: 1.2.3
+  policies:
+  - MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0test:
+      type: onap.policies.monitoring.dcae-pm-subscription-handler
+      type_version: 1.0.0
+      name: MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0test
+      version: 1.0.0
+      metadata:
+        policy-id: MICROSERVICE_vLoadBalancerMS_v1_0_dcae-pm-subscription-handler_1_0_0test
+        policy-version: 1.0.0
+      properties:
+        pmsh_policy:
+          fileBasedGP: 15
+          fileLocation: /pm/pm.xml
+          subscriptionName: subscriptiona
+          administrativeState: UNLOCKED
+          nfFilter:
+            onap.datatypes.monitoring.nfFilter:
+              modelVersionIDs:
+              - e80a6ae3-cafd-4d24-850d-e14c084a5ca9
+              modelInvariantIDs:
+              - 5845y423-g654-6fju-po78-8n53154532k6
+              - 7129e420-d396-4efb-af02-6b83499b12f8
+              modelNames: []
+              nfNames:
+              - '"^pnf1.*"'
+          measurementGroups:
+          - measurementGroup:
+              onap.datatypes.monitoring.measurementGroup:
+                measurementTypes:
+                - measurementType:
+                    onap.datatypes.monitoring.measurementType:
+                      measurementType: countera
+                - measurementType:
+                    onap.datatypes.monitoring.measurementType:
+                      measurementType: counterb
+                managedObjectDNsBasic:
+                - managedObjectDNsBasic:
+                    onap.datatypes.monitoring.managedObjectDNsBasic:
+                      DN: dna
+                - managedObjectDNsBasic:
+                    onap.datatypes.monitoring.managedObjectDNsBasic:
+                      DN: dnb
+          - measurementGroup:
+              onap.datatypes.monitoring.measurementGroup:
+                measurementTypes:
+                - measurementType:
+                    onap.datatypes.monitoring.measurementType:
+                      measurementType: counterc
+                - measurementType:
+                    onap.datatypes.monitoring.measurementType:
+                      measurementType: counterd
+                managedObjectDNsBasic:
+                - managedObjectDNsBasic:
+                    onap.datatypes.monitoring.managedObjectDNsBasic:
+                      DN: dnc
+                - managedObjectDNsBasic:
+                    onap.datatypes.monitoring.managedObjectDNsBasic:
+                      DN: dnd
+  - operational.apex.pmcontrol:
+      type: onap.policies.controlloop.operational.common.Apex
+      type_version: 1.0.0
+      version: 1.0.0
+      metadata:
+        policy-id: operational.apex.pmcontrol
+        policy-version: 1
+      properties:
+        engineServiceParameters:
+          name: MyApexEngine
+          version: 0.0.1
+          id: 45
+          instanceCount: 2
+          deploymentPort: 12561
+          policy_type_impl:
+            apexPolicyModel:
+              key:
+                name: PMControlPolicy
+                version: 0.0.1
+              keyInformation:
+                key:
+                  name: PMControlPolicy_KeyInfo
+                  version: 0.0.1
+                keyInfoMap:
+                  entry:
+                  - key:
+                      name: CDSActionIdentifiersType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSActionIdentifiersType
+                        version: 0.0.1
+                      UUID: 6e5fa19b-14df-37e3-a4ae-8c537e861a82
+                      description: Generated description for concept referred to by key "CDSActionIdentifiersType:0.0.1"
+                  - key:
+                      name: CDSCreateResponseEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSCreateResponseEvent
+                        version: 0.0.1
+                      UUID: 14b29e38-ac75-3273-aa4e-8583c0aa7dad
+                      description: Generated description for concept referred to by key "CDSCreateResponseEvent:0.0.1"
+                  - key:
+                      name: CDSCreateResponsePayloadType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSCreateResponsePayloadType
+                        version: 0.0.1
+                      UUID: 04573f8f-e772-30a5-b1d9-d7318d4a1e13
+                      description: Generated description for concept referred to by key "CDSCreateResponsePayloadType:0.0.1"
+                  - key:
+                      name: CDSCreateResponsePolicy
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSCreateResponsePolicy
+                        version: 0.0.1
+                      UUID: e126c965-fc09-3bfe-8f55-70f380a4a49c
+                      description: Generated description for concept referred to by key "CDSCreateResponsePolicy:0.0.1"
+                  - key:
+                      name: CDSCreateResponseTask
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSCreateResponseTask
+                        version: 0.0.1
+                      UUID: 6165ee82-afd2-3aab-a517-f00b3f2461d2
+                      description: Generated description for concept referred to by key "CDSCreateResponseTask:0.0.1"
+                  - key:
+                      name: CDSCreateSubscriptionPayloadType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSCreateSubscriptionPayloadType
+                        version: 0.0.1
+                      UUID: 8350ac5e-c157-38b9-9614-a0f93a830e60
+                      description: Generated description for concept referred to by key "CDSCreateSubscriptionPayloadType:0.0.1"
+                  - key:
+                      name: CDSCreateSubscriptionRequestEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSCreateSubscriptionRequestEvent
+                        version: 0.0.1
+                      UUID: cfa325ba-226b-3a31-9183-ec43e2b6e9a2
+                      description: Generated description for concept referred to by key "CDSCreateSubscriptionRequestEvent:0.0.1"
+                  - key:
+                      name: CDSDeleteResponseEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSDeleteResponseEvent
+                        version: 0.0.1
+                      UUID: 8be9c0fa-7437-3841-aff2-b3cec6ae3bd8
+                      description: Generated description for concept referred to by key "CDSDeleteResponseEvent:0.0.1"
+                  - key:
+                      name: CDSDeleteResponsePayloadType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSDeleteResponsePayloadType
+                        version: 0.0.1
+                      UUID: 3fbfe0c9-152e-34d3-a504-09cd13c058d0
+                      description: Generated description for concept referred to by key "CDSDeleteResponsePayloadType:0.0.1"
+                  - key:
+                      name: CDSDeleteResponsePolicy
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSDeleteResponsePolicy
+                        version: 0.0.1
+                      UUID: a780251c-edd5-3132-b865-04313246b43c
+                      description: Generated description for concept referred to by key "CDSDeleteResponsePolicy:0.0.1"
+                  - key:
+                      name: CDSDeleteResponseTask
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSDeleteResponseTask
+                        version: 0.0.1
+                      UUID: afce4555-3aa3-3521-a7d8-ee8cdf0d3efc
+                      description: Generated description for concept referred to by key "CDSDeleteResponseTask:0.0.1"
+                  - key:
+                      name: CDSDeleteSubscriptionPayloadType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSDeleteSubscriptionPayloadType
+                        version: 0.0.1
+                      UUID: 12658406-9147-3c9d-a38c-5ad5e30b092b
+                      description: Generated description for concept referred to by key "CDSDeleteSubscriptionPayloadType:0.0.1"
+                  - key:
+                      name: CDSDeleteSubscriptionRequestEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSDeleteSubscriptionRequestEvent
+                        version: 0.0.1
+                      UUID: 24380c95-9289-36e6-8cbf-0edefa15ccd9
+                      description: Generated description for concept referred to by key "CDSDeleteSubscriptionRequestEvent:0.0.1"
+                  - key:
+                      name: CDSRequestCommonHeaderType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSRequestCommonHeaderType
+                        version: 0.0.1
+                      UUID: 35590ac0-062c-39f1-8786-b4ff716e30b1
+                      description: Generated description for concept referred to by key "CDSRequestCommonHeaderType:0.0.1"
+                  - key:
+                      name: CDSResponseCommonHeaderType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSResponseCommonHeaderType
+                        version: 0.0.1
+                      UUID: dd7e1805-885a-350b-aaf9-ed541321ae3c
+                      description: Generated description for concept referred to by key "CDSResponseCommonHeaderType:0.0.1"
+                  - key:
+                      name: CDSResponseStatusEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSResponseStatusEvent
+                        version: 0.0.1
+                      UUID: 7986e21b-32f7-302e-9554-31f21b673493
+                      description: Generated description for concept referred to by key "CDSResponseStatusEvent:0.0.1"
+                  - key:
+                      name: CDSResponseStatusType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSResponseStatusType
+                        version: 0.0.1
+                      UUID: 92b8a2cf-344e-3ce1-8cc0-2b7d3cb695fa
+                      description: Generated description for concept referred to by key "CDSResponseStatusType:0.0.1"
+                  - key:
+                      name: CreateSubscriptionPayloadEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CreateSubscriptionPayloadEvent
+                        version: 0.0.1
+                      UUID: 92162397-1a8e-3a3f-a469-d2af7700af4a
+                      description: Generated description for concept referred to by key "CreateSubscriptionPayloadEvent:0.0.1"
+                  - key:
+                      name: CreateSubscriptionPayloadTask
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CreateSubscriptionPayloadTask
+                        version: 0.0.1
+                      UUID: bc0c69f0-52ed-38ea-b468-ae4a6fd1730d
+                      description: Generated description for concept referred to by key "CreateSubscriptionPayloadTask:0.0.1"
+                  - key:
+                      name: CreateSubscriptionRequestTask
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CreateSubscriptionRequestTask
+                        version: 0.0.1
+                      UUID: 89cb75e9-f06c-30d3-b4ff-698d45f63869
+                      description: Generated description for concept referred to by key "CreateSubscriptionRequestTask:0.0.1"
+                  - key:
+                      name: DeleteSubscriptionPayloadEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: DeleteSubscriptionPayloadEvent
+                        version: 0.0.1
+                      UUID: 994fa441-04ab-33bb-832d-1cd12ab5d074
+                      description: Generated description for concept referred to by key "DeleteSubscriptionPayloadEvent:0.0.1"
+                  - key:
+                      name: DeleteSubscriptionPayloadTask
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: DeleteSubscriptionPayloadTask
+                        version: 0.0.1
+                      UUID: 0f519117-5fea-3e4b-941f-8f778100465f
+                      description: Generated description for concept referred to by key "DeleteSubscriptionPayloadTask:0.0.1"
+                  - key:
+                      name: DeleteSubscriptionRequestTask
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: DeleteSubscriptionRequestTask
+                        version: 0.0.1
+                      UUID: acb772fe-d442-39e3-98f9-b1080caf4150
+                      description: Generated description for concept referred to by key "DeleteSubscriptionRequestTask:0.0.1"
+                  - key:
+                      name: MRResponseEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: MRResponseEvent
+                        version: 0.0.1
+                      UUID: 13c747a3-6bae-3bcf-9c80-b152e01dc194
+                      description: Generated description for concept referred to by key "MRResponseEvent:0.0.1"
+                  - key:
+                      name: PMControlPolicy
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: PMControlPolicy
+                        version: 0.0.1
+                      UUID: acf1e55c-7bc5-3bd5-975a-0ca54afcd8a4
+                      description: Generated description for concept referred to by key "PMControlPolicy:0.0.1"
+                  - key:
+                      name: PMControlPolicy_Albums
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: PMControlPolicy_Albums
+                        version: 0.0.1
+                      UUID: b38ad204-c2c8-32f4-9b5a-dda0aeb0145b
+                      description: Generated description for concept referred to by key "PMControlPolicy_Albums:0.0.1"
+                  - key:
+                      name: PMControlPolicy_Events
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: PMControlPolicy_Events
+                        version: 0.0.1
+                      UUID: be3871a0-c42a-3113-a066-82d192840eca
+                      description: Generated description for concept referred to by key "PMControlPolicy_Events:0.0.1"
+                  - key:
+                      name: PMControlPolicy_KeyInfo
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: PMControlPolicy_KeyInfo
+                        version: 0.0.1
+                      UUID: ced37634-28a4-3178-b7f6-2980794927b0
+                      description: Generated description for concept referred to by key "PMControlPolicy_KeyInfo:0.0.1"
+                  - key:
+                      name: PMControlPolicy_Policies
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: PMControlPolicy_Policies
+                        version: 0.0.1
+                      UUID: be3d180d-ef9c-3a75-8e9c-84271a038bed
+                      description: Generated description for concept referred to by key "PMControlPolicy_Policies:0.0.1"
+                  - key:
+                      name: PMControlPolicy_Schemas
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: PMControlPolicy_Schemas
+                        version: 0.0.1
+                      UUID: e61973f1-189c-39e5-82f6-0d3afe298a20
+                      description: Generated description for concept referred to by key "PMControlPolicy_Schemas:0.0.1"
+                  - key:
+                      name: PMControlPolicy_Tasks
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: PMControlPolicy_Tasks
+                        version: 0.0.1
+                      UUID: 5658adb3-2962-30a3-a241-fae75bb8eb4a
+                      description: Generated description for concept referred to by key "PMControlPolicy_Tasks:0.0.1"
+                  - key:
+                      name: PMSubscriptionAlbum
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: PMSubscriptionAlbum
+                        version: 0.0.1
+                      UUID: c2bd6f0d-6854-317a-9be2-97c08338428c
+                      description: Generated description for concept referred to by key "PMSubscriptionAlbum:0.0.1"
+                  - key:
+                      name: PMSubscriptionOutputEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: PMSubscriptionOutputEvent
+                        version: 0.0.1
+                      UUID: 992b7819-9f69-3aa0-bb0f-6e45ea15ce05
+                      description: Generated description for concept referred to by key "PMSubscriptionOutputEvent:0.0.1"
+                  - key:
+                      name: PMSubscriptionType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: PMSubscriptionType
+                        version: 0.0.1
+                      UUID: 73c1c397-4fc3-357f-93b6-a8ad707fbaae
+                      description: Generated description for concept referred to by key "PMSubscriptionType:0.0.1"
+                  - key:
+                      name: ReceiveEventPolicy
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: ReceiveEventPolicy
+                        version: 0.0.1
+                      UUID: 568b7345-9de1-36d3-b6a3-9b857e6809a1
+                      description: Generated description for concept referred to by key "ReceiveEventPolicy:0.0.1"
+                  - key:
+                      name: ReceiveSubscriptionTask
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: ReceiveSubscriptionTask
+                        version: 0.0.1
+                      UUID: f596afc8-100c-35eb-92c8-352355ea457d
+                      description: Generated description for concept referred to by key "ReceiveSubscriptionTask:0.0.1"
+                  - key:
+                      name: SimpleIntType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: SimpleIntType
+                        version: 0.0.1
+                      UUID: 153791fd-ae0a-36a7-88a5-309a7936415d
+                      description: Generated description for concept referred to by key "SimpleIntType:0.0.1"
+                  - key:
+                      name: SimpleStringType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: SimpleStringType
+                        version: 0.0.1
+                      UUID: 8a4957cf-9493-3a76-8c22-a208e23259af
+                      description: Generated description for concept referred to by key "SimpleStringType:0.0.1"
+                  - key:
+                      name: SubscriptionStatusType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: SubscriptionStatusType
+                        version: 0.0.1
+                      UUID: 597643b1-9db1-31ce-85d0-e1c63c43b30b
+                      description: Generated description for concept referred to by key "SubscriptionStatusType:0.0.1"
+                  - key:
+                      name: SubscriptionType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: SubscriptionType
+                        version: 0.0.1
+                      UUID: 184547bb-7d64-3cb2-a273-d7185102c5ce
+                      description: Generated description for concept referred to by key "SubscriptionType:0.0.1"
+                  - key:
+                      name: UUIDType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: UUIDType
+                        version: 0.0.1
+                      UUID: 6a8cc68e-dfc8-3403-9c6d-071c886b319c
+                      description: Generated description for concept referred to by key "UUIDType:0.0.1"
+                  - key:
+                      name: pmsh-operational-policy
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: pmsh-operational-policy
+                        version: 0.0.1
+                      UUID: fdf2c9ff-6422-3ea6-b6b6-49b12116265d
+                      description: Generated description for concept referred to by key "pmsh-operational-policy:0.0.1"
+              policies:
+                key:
+                  name: PMControlPolicy_Policies
+                  version: 0.0.1
+                policyMap:
+                  entry:
+                  - key:
+                      name: CDSCreateResponsePolicy
+                      version: 0.0.1
+                    value:
+                      policyKey:
+                        name: CDSCreateResponsePolicy
+                        version: 0.0.1
+                      template: Freestyle
+                      state:
+                        entry:
+                        - key: CDSCreateResponseState
+                          value:
+                            stateKey:
+                              parentKeyName: CDSCreateResponsePolicy
+                              parentKeyVersion: 0.0.1
+                              parentLocalName: 'NULL'
+                              localName: CDSCreateResponseState
+                            trigger:
+                              name: CDSCreateResponseEvent
+                              version: 0.0.1
+                            stateOutputs:
+                              entry:
+                              - key: ResponseOutput
+                                value:
+                                  key:
+                                    parentKeyName: CDSCreateResponsePolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: CDSCreateResponseState
+                                    localName: ResponseOutput
+                                  outgoingEvent:
+                                    name: CDSResponseStatusEvent
+                                    version: 0.0.1
+                                  nextState:
+                                    parentKeyName: 'NULL'
+                                    parentKeyVersion: 0.0.0
+                                    parentLocalName: 'NULL'
+                                    localName: 'NULL'
+                            contextAlbumReference: []
+                            taskSelectionLogic:
+                              key: 'NULL'
+                              logicFlavour: UNDEFINED
+                              logic: ''
+                            stateFinalizerLogicMap:
+                              entry: []
+                            defaultTask:
+                              name: CDSCreateResponseTask
+                              version: 0.0.1
+                            taskReferences:
+                              entry:
+                              - key:
+                                  name: CDSCreateResponseTask
+                                  version: 0.0.1
+                                value:
+                                  key:
+                                    parentKeyName: CDSCreateResponsePolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: CDSCreateResponseState
+                                    localName: CDSCreateResponsePolicy
+                                  outputType: DIRECT
+                                  output:
+                                    parentKeyName: CDSCreateResponsePolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: CDSCreateResponseState
+                                    localName: ResponseOutput
+                      firstState: CDSCreateResponseState
+                  - key:
+                      name: CDSDeleteResponsePolicy
+                      version: 0.0.1
+                    value:
+                      policyKey:
+                        name: CDSDeleteResponsePolicy
+                        version: 0.0.1
+                      template: Freestyle
+                      state:
+                        entry:
+                        - key: CDSDeleteResponseState
+                          value:
+                            stateKey:
+                              parentKeyName: CDSDeleteResponsePolicy
+                              parentKeyVersion: 0.0.1
+                              parentLocalName: 'NULL'
+                              localName: CDSDeleteResponseState
+                            trigger:
+                              name: CDSDeleteResponseEvent
+                              version: 0.0.1
+                            stateOutputs:
+                              entry:
+                              - key: ResponseOutput
+                                value:
+                                  key:
+                                    parentKeyName: CDSDeleteResponsePolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: CDSDeleteResponseState
+                                    localName: ResponseOutput
+                                  outgoingEvent:
+                                    name: CDSResponseStatusEvent
+                                    version: 0.0.1
+                                  nextState:
+                                    parentKeyName: 'NULL'
+                                    parentKeyVersion: 0.0.0
+                                    parentLocalName: 'NULL'
+                                    localName: 'NULL'
+                            contextAlbumReference: []
+                            taskSelectionLogic:
+                              key: 'NULL'
+                              logicFlavour: UNDEFINED
+                              logic: ''
+                            stateFinalizerLogicMap:
+                              entry: []
+                            defaultTask:
+                              name: CDSDeleteResponseTask
+                              version: 0.0.1
+                            taskReferences:
+                              entry:
+                              - key:
+                                  name: CDSDeleteResponseTask
+                                  version: 0.0.1
+                                value:
+                                  key:
+                                    parentKeyName: CDSDeleteResponsePolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: CDSDeleteResponseState
+                                    localName: CDSDeleteResponsePolicy
+                                  outputType: DIRECT
+                                  output:
+                                    parentKeyName: CDSDeleteResponsePolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: CDSDeleteResponseState
+                                    localName: ResponseOutput
+                      firstState: CDSDeleteResponseState
+                  - key:
+                      name: ReceiveEventPolicy
+                      version: 0.0.1
+                    value:
+                      policyKey:
+                        name: ReceiveEventPolicy
+                        version: 0.0.1
+                      template: Freestyle
+                      state:
+                        entry:
+                        - key: CreateOrDeleteState
+                          value:
+                            stateKey:
+                              parentKeyName: ReceiveEventPolicy
+                              parentKeyVersion: 0.0.1
+                              parentLocalName: 'NULL'
+                              localName: CreateOrDeleteState
+                            trigger:
+                              name: PMSubscriptionOutputEvent
+                              version: 0.0.1
+                            stateOutputs:
+                              entry:
+                              - key: CreateSubscriptionPayload
+                                value:
+                                  key:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: CreateOrDeleteState
+                                    localName: CreateSubscriptionPayload
+                                  outgoingEvent:
+                                    name: CreateSubscriptionPayloadEvent
+                                    version: 0.0.1
+                                  nextState:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: 'NULL'
+                                    localName: CreateSubscription
+                              - key: DeleteSubscriptionPayload
+                                value:
+                                  key:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: CreateOrDeleteState
+                                    localName: DeleteSubscriptionPayload
+                                  outgoingEvent:
+                                    name: DeleteSubscriptionPayloadEvent
+                                    version: 0.0.1
+                                  nextState:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: 'NULL'
+                                    localName: DeleteSubscription
+                            contextAlbumReference:
+                            - name: PMSubscriptionAlbum
+                              version: 0.0.1
+                            taskSelectionLogic:
+                              key: TaskSelectionLogic
+                              logicFlavour: JAVASCRIPT
+                              logic: |-
+                                /*
+                                 * ============LICENSE_START=======================================================
+                                 *  Copyright (C) 2020 Nordix. 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.
+                                 *
+                                 * SPDX-License-Identifier: Apache-2.0
+                                 * ============LICENSE_END=========================================================
+                                 */
+
+                                executor.logger.info(executor.subject.id);
+
+                                var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").get(executor.inFields.get("albumID").toString())
+                                var changeType = pmSubscriptionInfo.get("changeType").toString()
+
+                                executor.logger.info("Change Type is " + changeType)
+
+                                if ("CREATE".equals(changeType)) {
+                                    executor.logger.info("Choosing to create a subscription")
+                                    executor.subject.getTaskKey("CreateSubscriptionPayloadTask").copyTo(executor.selectedTask);
+                                }
+                                else if ("DELETE".equals(changeType)) {
+                                    executor.logger.info("Choosing to delete a subscription")
+                                    executor.subject.getTaskKey("DeleteSubscriptionPayloadTask").copyTo(executor.selectedTask);
+                                }
+
+                                //var returnValue = executor.isTrue;
+                                true;
+                            stateFinalizerLogicMap:
+                              entry: []
+                            defaultTask:
+                              name: CreateSubscriptionPayloadTask
+                              version: 0.0.1
+                            taskReferences:
+                              entry:
+                              - key:
+                                  name: CreateSubscriptionPayloadTask
+                                  version: 0.0.1
+                                value:
+                                  key:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: CreateOrDeleteState
+                                    localName: ReceiveEventPolicy
+                                  outputType: DIRECT
+                                  output:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: CreateOrDeleteState
+                                    localName: CreateSubscriptionPayload
+                              - key:
+                                  name: DeleteSubscriptionPayloadTask
+                                  version: 0.0.1
+                                value:
+                                  key:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: CreateOrDeleteState
+                                    localName: ReceiveEventPolicy
+                                  outputType: DIRECT
+                                  output:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: CreateOrDeleteState
+                                    localName: DeleteSubscriptionPayload
+                        - key: CreateSubscription
+                          value:
+                            stateKey:
+                              parentKeyName: ReceiveEventPolicy
+                              parentKeyVersion: 0.0.1
+                              parentLocalName: 'NULL'
+                              localName: CreateSubscription
+                            trigger:
+                              name: CreateSubscriptionPayloadEvent
+                              version: 0.0.1
+                            stateOutputs:
+                              entry:
+                              - key: IssueCreateSubscriptionRequestOutput
+                                value:
+                                  key:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: CreateSubscription
+                                    localName: IssueCreateSubscriptionRequestOutput
+                                  outgoingEvent:
+                                    name: CDSCreateSubscriptionRequestEvent
+                                    version: 0.0.1
+                                  nextState:
+                                    parentKeyName: 'NULL'
+                                    parentKeyVersion: 0.0.0
+                                    parentLocalName: 'NULL'
+                                    localName: 'NULL'
+                            contextAlbumReference:
+                            - name: PMSubscriptionAlbum
+                              version: 0.0.1
+                            taskSelectionLogic:
+                              key: 'NULL'
+                              logicFlavour: UNDEFINED
+                              logic: ''
+                            stateFinalizerLogicMap:
+                              entry: []
+                            defaultTask:
+                              name: CreateSubscriptionRequestTask
+                              version: 0.0.1
+                            taskReferences:
+                              entry:
+                              - key:
+                                  name: CreateSubscriptionRequestTask
+                                  version: 0.0.1
+                                value:
+                                  key:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: CreateSubscription
+                                    localName: ReceiveEventPolicy
+                                  outputType: DIRECT
+                                  output:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: CreateSubscription
+                                    localName: IssueCreateSubscriptionRequestOutput
+                        - key: DeleteSubscription
+                          value:
+                            stateKey:
+                              parentKeyName: ReceiveEventPolicy
+                              parentKeyVersion: 0.0.1
+                              parentLocalName: 'NULL'
+                              localName: DeleteSubscription
+                            trigger:
+                              name: DeleteSubscriptionPayloadEvent
+                              version: 0.0.1
+                            stateOutputs:
+                              entry:
+                              - key: IssueDeleteSubscriptionRequestOutput
+                                value:
+                                  key:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: DeleteSubscription
+                                    localName: IssueDeleteSubscriptionRequestOutput
+                                  outgoingEvent:
+                                    name: CDSDeleteSubscriptionRequestEvent
+                                    version: 0.0.1
+                                  nextState:
+                                    parentKeyName: 'NULL'
+                                    parentKeyVersion: 0.0.0
+                                    parentLocalName: 'NULL'
+                                    localName: 'NULL'
+                            contextAlbumReference:
+                            - name: PMSubscriptionAlbum
+                              version: 0.0.1
+                            taskSelectionLogic:
+                              key: 'NULL'
+                              logicFlavour: UNDEFINED
+                              logic: ''
+                            stateFinalizerLogicMap:
+                              entry: []
+                            defaultTask:
+                              name: DeleteSubscriptionRequestTask
+                              version: 0.0.1
+                            taskReferences:
+                              entry:
+                              - key:
+                                  name: DeleteSubscriptionRequestTask
+                                  version: 0.0.1
+                                value:
+                                  key:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: DeleteSubscription
+                                    localName: ReceiveEventPolicy
+                                  outputType: DIRECT
+                                  output:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: DeleteSubscription
+                                    localName: IssueDeleteSubscriptionRequestOutput
+                        - key: ReceiveSubscriptionState
+                          value:
+                            stateKey:
+                              parentKeyName: ReceiveEventPolicy
+                              parentKeyVersion: 0.0.1
+                              parentLocalName: 'NULL'
+                              localName: ReceiveSubscriptionState
+                            trigger:
+                              name: pmsh-operational-policy
+                              version: 0.0.1
+                            stateOutputs:
+                              entry:
+                              - key: ReceivePMSubscriptionOutput
+                                value:
+                                  key:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: ReceiveSubscriptionState
+                                    localName: ReceivePMSubscriptionOutput
+                                  outgoingEvent:
+                                    name: PMSubscriptionOutputEvent
+                                    version: 0.0.1
+                                  nextState:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: 'NULL'
+                                    localName: CreateOrDeleteState
+                            contextAlbumReference:
+                            - name: PMSubscriptionAlbum
+                              version: 0.0.1
+                            taskSelectionLogic:
+                              key: 'NULL'
+                              logicFlavour: UNDEFINED
+                              logic: ''
+                            stateFinalizerLogicMap:
+                              entry: []
+                            defaultTask:
+                              name: ReceiveSubscriptionTask
+                              version: 0.0.1
+                            taskReferences:
+                              entry:
+                              - key:
+                                  name: ReceiveSubscriptionTask
+                                  version: 0.0.1
+                                value:
+                                  key:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: ReceiveSubscriptionState
+                                    localName: ReceiveEventPolicy
+                                  outputType: DIRECT
+                                  output:
+                                    parentKeyName: ReceiveEventPolicy
+                                    parentKeyVersion: 0.0.1
+                                    parentLocalName: ReceiveSubscriptionState
+                                    localName: ReceivePMSubscriptionOutput
+                      firstState: ReceiveSubscriptionState
+              tasks:
+                key:
+                  name: PMControlPolicy_Tasks
+                  version: 0.0.1
+                taskMap:
+                  entry:
+                  - key:
+                      name: CDSCreateResponseTask
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSCreateResponseTask
+                        version: 0.0.1
+                      inputFields:
+                        entry:
+                        - key: actionIdentifiers
+                          value:
+                            key: actionIdentifiers
+                            fieldSchemaKey:
+                              name: CDSActionIdentifiersType
+                              version: 0.0.1
+                            optional: false
+                        - key: commonHeader
+                          value:
+                            key: commonHeader
+                            fieldSchemaKey:
+                              name: CDSResponseCommonHeaderType
+                              version: 0.0.1
+                            optional: false
+                        - key: payload
+                          value:
+                            key: payload
+                            fieldSchemaKey:
+                              name: CDSCreateResponsePayloadType
+                              version: 0.0.1
+                            optional: false
+                        - key: status
+                          value:
+                            key: status
+                            fieldSchemaKey:
+                              name: CDSResponseStatusType
+                              version: 0.0.1
+                            optional: false
+                      outputFields:
+                        entry:
+                        - key: status
+                          value:
+                            key: status
+                            fieldSchemaKey:
+                              name: SubscriptionStatusType
+                              version: 0.0.1
+                            optional: false
+                      taskParameters:
+                        entry: []
+                      contextAlbumReference:
+                      - name: PMSubscriptionAlbum
+                        version: 0.0.1
+                      taskLogic:
+                        key: TaskLogic
+                        logicFlavour: JAVASCRIPT
+                        logic: |-
+                          /*
+                           * ============LICENSE_START=======================================================
+                           *  Copyright (C) 2020 Nordix. 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.
+                           *
+                           * SPDX-License-Identifier: Apache-2.0
+                           * ============LICENSE_END=========================================================
+                           */
+
+                          executor.logger.info(executor.subject.id);
+
+                          var commonHeader = executor.inFields.get("commonHeader")
+                          var response = executor.inFields.get("payload")
+                          var albumID = commonHeader.get("requestId")
+
+                          var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").get(albumID.toString());
+                          var responseStatus = executor.subject.getOutFieldSchemaHelper("status").createNewInstance();
+
+                          responseStatus.put("subscriptionName", pmSubscriptionInfo.get("subscription").get("subscriptionName"))
+                          responseStatus.put("nfName", pmSubscriptionInfo.get("nfName"))
+                          responseStatus.put("changeType", pmSubscriptionInfo.get("changeType"))
+
+                          var status = response.get(pmSubscriptionInfo.get("changeType").toLowerCase() + "_DasH_subscription_DasH_response").get("odl_DasH_response").get("status")
+
+                          executor.logger.info("RESPONSE STATUS = " + status)
+
+                          if(status == "success") {
+                              responseStatus.put("message", "success")
+                          } else {
+                              responseStatus.put("message", "failed")
+                          }
+
+                          executor.outFields.put("status", responseStatus)
+
+                          //var returnValue = executor.isTrue;
+                          true;
+                  - key:
+                      name: CDSDeleteResponseTask
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSDeleteResponseTask
+                        version: 0.0.1
+                      inputFields:
+                        entry:
+                        - key: actionIdentifiers
+                          value:
+                            key: actionIdentifiers
+                            fieldSchemaKey:
+                              name: CDSActionIdentifiersType
+                              version: 0.0.1
+                            optional: false
+                        - key: commonHeader
+                          value:
+                            key: commonHeader
+                            fieldSchemaKey:
+                              name: CDSResponseCommonHeaderType
+                              version: 0.0.1
+                            optional: false
+                        - key: payload
+                          value:
+                            key: payload
+                            fieldSchemaKey:
+                              name: CDSDeleteResponsePayloadType
+                              version: 0.0.1
+                            optional: false
+                        - key: status
+                          value:
+                            key: status
+                            fieldSchemaKey:
+                              name: CDSResponseStatusType
+                              version: 0.0.1
+                            optional: false
+                      outputFields:
+                        entry:
+                        - key: status
+                          value:
+                            key: status
+                            fieldSchemaKey:
+                              name: SubscriptionStatusType
+                              version: 0.0.1
+                            optional: false
+                      taskParameters:
+                        entry: []
+                      contextAlbumReference:
+                      - name: PMSubscriptionAlbum
+                        version: 0.0.1
+                      taskLogic:
+                        key: TaskLogic
+                        logicFlavour: JAVASCRIPT
+                        logic: |-
+                          /*
+                           * ============LICENSE_START=======================================================
+                           *  Copyright (C) 2020 Nordix. 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.
+                           *
+                           * SPDX-License-Identifier: Apache-2.0
+                           * ============LICENSE_END=========================================================
+                           */
+
+                          executor.logger.info(executor.subject.id);
+
+                          var commonHeader = executor.inFields.get("commonHeader")
+                          var response = executor.inFields.get("payload")
+                          var albumID = commonHeader.get("requestId")
+
+                          var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").get(albumID.toString());
+                          var responseStatus = executor.subject.getOutFieldSchemaHelper("status").createNewInstance();
+
+                          responseStatus.put("subscriptionName", pmSubscriptionInfo.get("subscription").get("subscriptionName"))
+                          responseStatus.put("nfName", pmSubscriptionInfo.get("nfName"))
+                          responseStatus.put("changeType", pmSubscriptionInfo.get("changeType"))
+
+                          var status = response.get(pmSubscriptionInfo.get("changeType").toLowerCase() + "_DasH_subscription_DasH_response").get("odl_DasH_response").get("status")
+
+                          executor.logger.info("RESPONSE STATUS = " + status)
+
+                          if(status == "success") {
+                              responseStatus.put("message", "success")
+                          } else {
+                              responseStatus.put("message", "failed")
+                          }
+
+                          executor.outFields.put("status", responseStatus)
+
+                          //var returnValue = executor.isTrue;
+                          true;
+                  - key:
+                      name: CreateSubscriptionPayloadTask
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CreateSubscriptionPayloadTask
+                        version: 0.0.1
+                      inputFields:
+                        entry:
+                        - key: albumID
+                          value:
+                            key: albumID
+                            fieldSchemaKey:
+                              name: UUIDType
+                              version: 0.0.1
+                            optional: false
+                      outputFields:
+                        entry:
+                        - key: albumID
+                          value:
+                            key: albumID
+                            fieldSchemaKey:
+                              name: UUIDType
+                              version: 0.0.1
+                            optional: false
+                        - key: payload
+                          value:
+                            key: payload
+                            fieldSchemaKey:
+                              name: CDSCreateSubscriptionPayloadType
+                              version: 0.0.1
+                            optional: false
+                      taskParameters:
+                        entry: []
+                      contextAlbumReference:
+                      - name: PMSubscriptionAlbum
+                        version: 0.0.1
+                      taskLogic:
+                        key: TaskLogic
+                        logicFlavour: JAVASCRIPT
+                        logic: |-
+                          /*
+                           * ============LICENSE_START=======================================================
+                           *  Copyright (C) 2020 Nordix. 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.
+                           *
+                           * SPDX-License-Identifier: Apache-2.0
+                           * ============LICENSE_END=========================================================
+                           */
+
+                          executor.logger.info(executor.subject.id);
+
+                          var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").get(executor.inFields.get("albumID").toString())
+
+                          var changeType = pmSubscriptionInfo.get("changeType").toLowerCase()
+
+                          var payloadProperties = executor.subject.getOutFieldSchemaHelper("payload").createNewSubInstance(changeType + "_DasH_subscription_DasH_properties_record");
+
+                          payloadProperties.put("nfName",  pmSubscriptionInfo.get("nfName"))
+                          payloadProperties.put("subscriptionName",  pmSubscriptionInfo.get("subscription").get("subscriptionName"))
+                          payloadProperties.put("administrativeState", pmSubscriptionInfo.get("subscription").get("administrativeState"))
+                          payloadProperties.put("fileBasedGP",  pmSubscriptionInfo.get("subscription").get("fileBasedGP").toString())
+                          payloadProperties.put("fileLocation", pmSubscriptionInfo.get("subscription").get("fileLocation"))
+                          payloadProperties.put("measurementGroups", pmSubscriptionInfo.get("subscription").get("measurementGroups"))
+
+                          var payloadEntry = executor.subject.getOutFieldSchemaHelper("payload").createNewSubInstance("CDSRequestPayloadEntry");
+                          payloadEntry.put(changeType + "_DasH_subscription_DasH_properties", payloadProperties)
+
+                          var payload = executor.subject.getOutFieldSchemaHelper("payload").createNewInstance();
+                          payload.put(changeType + "_DasH_subscription_DasH_request", payloadEntry);
+
+                          executor.outFields.put("albumID", executor.inFields.get("albumID"))
+                          executor.outFields.put("payload", payload);
+
+                          //var returnValue = executor.isTrue;
+                          true;
+                  - key:
+                      name: CreateSubscriptionRequestTask
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CreateSubscriptionRequestTask
+                        version: 0.0.1
+                      inputFields:
+                        entry:
+                        - key: albumID
+                          value:
+                            key: albumID
+                            fieldSchemaKey:
+                              name: UUIDType
+                              version: 0.0.1
+                            optional: false
+                        - key: payload
+                          value:
+                            key: payload
+                            fieldSchemaKey:
+                              name: CDSCreateSubscriptionPayloadType
+                              version: 0.0.1
+                            optional: false
+                      outputFields:
+                        entry:
+                        - key: actionIdentifiers
+                          value:
+                            key: actionIdentifiers
+                            fieldSchemaKey:
+                              name: CDSActionIdentifiersType
+                              version: 0.0.1
+                            optional: false
+                        - key: commonHeader
+                          value:
+                            key: commonHeader
+                            fieldSchemaKey:
+                              name: CDSRequestCommonHeaderType
+                              version: 0.0.1
+                            optional: false
+                        - key: payload
+                          value:
+                            key: payload
+                            fieldSchemaKey:
+                              name: CDSCreateSubscriptionPayloadType
+                              version: 0.0.1
+                            optional: false
+                      taskParameters:
+                        entry: []
+                      contextAlbumReference:
+                      - name: PMSubscriptionAlbum
+                        version: 0.0.1
+                      taskLogic:
+                        key: TaskLogic
+                        logicFlavour: JAVASCRIPT
+                        logic: |-
+                          /*
+                           * ============LICENSE_START=======================================================
+                           *  Copyright (C) 2020 Nordix. 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.
+                           *
+                           * SPDX-License-Identifier: Apache-2.0
+                           * ============LICENSE_END=========================================================
+                           */
+
+                          executor.logger.info(executor.subject.id);
+
+                          var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").get(executor.inFields.get("albumID").toString())
+
+                          var changeType = pmSubscriptionInfo.get("changeType").toLowerCase()
+                          var blueprintName = pmSubscriptionInfo.get("blueprintName").toLowerCase()
+                          var blueprintVersion = pmSubscriptionInfo.get("blueprintVersion").toLowerCase()
+                          var payload = executor.inFields.get("payload")
+                          var actionName = changeType + "-subscription"
+
+                          var commonHeader = executor.subject.getOutFieldSchemaHelper("commonHeader").createNewInstance();
+                          commonHeader.put("originatorId", "sdnc");
+                          commonHeader.put("requestId", executor.inFields.get("albumID").toString());
+                          commonHeader.put("subRequestId", "sub-123456-1000");
+
+                          var actionIdentifiers = executor.subject.getOutFieldSchemaHelper("actionIdentifiers").createNewInstance();
+                          actionIdentifiers.put("actionName", actionName);
+                          actionIdentifiers.put("blueprintName", blueprintName);
+                          actionIdentifiers.put("blueprintVersion", blueprintVersion);
+                          actionIdentifiers.put("mode", "sync");
+
+                          executor.outFields.put("commonHeader", commonHeader);
+                          executor.outFields.put("actionIdentifiers", actionIdentifiers);
+                          executor.outFields.put("payload", payload);
+
+                          //var returnValue = executor.isTrue;
+                          true;
+                  - key:
+                      name: DeleteSubscriptionPayloadTask
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: DeleteSubscriptionPayloadTask
+                        version: 0.0.1
+                      inputFields:
+                        entry:
+                        - key: albumID
+                          value:
+                            key: albumID
+                            fieldSchemaKey:
+                              name: UUIDType
+                              version: 0.0.1
+                            optional: false
+                      outputFields:
+                        entry:
+                        - key: albumID
+                          value:
+                            key: albumID
+                            fieldSchemaKey:
+                              name: UUIDType
+                              version: 0.0.1
+                            optional: false
+                        - key: payload
+                          value:
+                            key: payload
+                            fieldSchemaKey:
+                              name: CDSDeleteSubscriptionPayloadType
+                              version: 0.0.1
+                            optional: false
+                      taskParameters:
+                        entry: []
+                      contextAlbumReference:
+                      - name: PMSubscriptionAlbum
+                        version: 0.0.1
+                      taskLogic:
+                        key: TaskLogic
+                        logicFlavour: JAVASCRIPT
+                        logic: |-
+                          /*
+                           * ============LICENSE_START=======================================================
+                           *  Copyright (C) 2020 Nordix. 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.
+                           *
+                           * SPDX-License-Identifier: Apache-2.0
+                           * ============LICENSE_END=========================================================
+                           */
+
+                          executor.logger.info(executor.subject.id);
+
+                          var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").get(executor.inFields.get("albumID").toString())
+
+                          var changeType = pmSubscriptionInfo.get("changeType").toLowerCase()
+
+                          var payloadProperties = executor.subject.getOutFieldSchemaHelper("payload").createNewSubInstance(changeType + "_DasH_subscription_DasH_properties_record");
+
+                          payloadProperties.put("nfName",  pmSubscriptionInfo.get("nfName"))
+                          payloadProperties.put("subscriptionName",  pmSubscriptionInfo.get("subscription").get("subscriptionName"))
+                          payloadProperties.put("administrativeState", pmSubscriptionInfo.get("subscription").get("administrativeState"))
+                          payloadProperties.put("fileBasedGP",  pmSubscriptionInfo.get("subscription").get("fileBasedGP").toString())
+                          payloadProperties.put("fileLocation", pmSubscriptionInfo.get("subscription").get("fileLocation"))
+                          payloadProperties.put("measurementGroups", pmSubscriptionInfo.get("subscription").get("measurementGroups"))
+
+                          var payloadEntry = executor.subject.getOutFieldSchemaHelper("payload").createNewSubInstance("CDSRequestPayloadEntry");
+                          payloadEntry.put(changeType + "_DasH_subscription_DasH_properties", payloadProperties)
+
+                          var payload = executor.subject.getOutFieldSchemaHelper("payload").createNewInstance();
+                          payload.put(changeType + "_DasH_subscription_DasH_request", payloadEntry);
+
+                          executor.outFields.put("albumID", executor.inFields.get("albumID"))
+                          executor.outFields.put("payload", payload);
+
+                          //var returnValue = executor.isTrue;
+                          true;
+                  - key:
+                      name: DeleteSubscriptionRequestTask
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: DeleteSubscriptionRequestTask
+                        version: 0.0.1
+                      inputFields:
+                        entry:
+                        - key: albumID
+                          value:
+                            key: albumID
+                            fieldSchemaKey:
+                              name: UUIDType
+                              version: 0.0.1
+                            optional: false
+                        - key: payload
+                          value:
+                            key: payload
+                            fieldSchemaKey:
+                              name: CDSDeleteSubscriptionPayloadType
+                              version: 0.0.1
+                            optional: false
+                      outputFields:
+                        entry:
+                        - key: actionIdentifiers
+                          value:
+                            key: actionIdentifiers
+                            fieldSchemaKey:
+                              name: CDSActionIdentifiersType
+                              version: 0.0.1
+                            optional: false
+                        - key: commonHeader
+                          value:
+                            key: commonHeader
+                            fieldSchemaKey:
+                              name: CDSRequestCommonHeaderType
+                              version: 0.0.1
+                            optional: false
+                        - key: payload
+                          value:
+                            key: payload
+                            fieldSchemaKey:
+                              name: CDSDeleteSubscriptionPayloadType
+                              version: 0.0.1
+                            optional: false
+                      taskParameters:
+                        entry: []
+                      contextAlbumReference:
+                      - name: PMSubscriptionAlbum
+                        version: 0.0.1
+                      taskLogic:
+                        key: TaskLogic
+                        logicFlavour: JAVASCRIPT
+                        logic: |-
+                          /*
+                           * ============LICENSE_START=======================================================
+                           *  Copyright (C) 2020 Nordix. 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.
+                           *
+                           * SPDX-License-Identifier: Apache-2.0
+                           * ============LICENSE_END=========================================================
+                           */
+
+                          executor.logger.info(executor.subject.id);
+
+                          var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").get(executor.inFields.get("albumID").toString())
+
+                          var changeType = pmSubscriptionInfo.get("changeType").toLowerCase()
+                          var blueprintName = pmSubscriptionInfo.get("blueprintName").toLowerCase()
+                          var blueprintVersion = pmSubscriptionInfo.get("blueprintVersion").toLowerCase()
+                          var payload = executor.inFields.get("payload")
+                          var actionName = changeType + "-subscription"
+
+                          var commonHeader = executor.subject.getOutFieldSchemaHelper("commonHeader").createNewInstance();
+                          commonHeader.put("originatorId", "sdnc");
+                          commonHeader.put("requestId", executor.inFields.get("albumID").toString());
+                          commonHeader.put("subRequestId", "sub-123456-1000");
+
+                          var actionIdentifiers = executor.subject.getOutFieldSchemaHelper("actionIdentifiers").createNewInstance();
+                          actionIdentifiers.put("actionName", actionName);
+                          actionIdentifiers.put("blueprintName", blueprintName);
+                          actionIdentifiers.put("blueprintVersion", blueprintVersion);
+                          actionIdentifiers.put("mode", "sync");
+
+                          executor.outFields.put("commonHeader", commonHeader);
+                          executor.outFields.put("actionIdentifiers", actionIdentifiers);
+                          executor.outFields.put("payload", payload);
+
+                          //var returnValue = executor.isTrue;
+                          true;
+                  - key:
+                      name: ReceiveSubscriptionTask
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: ReceiveSubscriptionTask
+                        version: 0.0.1
+                      inputFields:
+                        entry:
+                        - key: blueprintName
+                          value:
+                            key: blueprintName
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: blueprintVersion
+                          value:
+                            key: blueprintVersion
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: changeType
+                          value:
+                            key: changeType
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: closedLoopControlName
+                          value:
+                            key: closedLoopControlName
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: nfName
+                          value:
+                            key: nfName
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: policyName
+                          value:
+                            key: policyName
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: subscription
+                          value:
+                            key: subscription
+                            fieldSchemaKey:
+                              name: SubscriptionType
+                              version: 0.0.1
+                            optional: false
+                      outputFields:
+                        entry:
+                        - key: albumID
+                          value:
+                            key: albumID
+                            fieldSchemaKey:
+                              name: UUIDType
+                              version: 0.0.1
+                            optional: false
+                      taskParameters:
+                        entry: []
+                      contextAlbumReference:
+                      - name: PMSubscriptionAlbum
+                        version: 0.0.1
+                      taskLogic:
+                        key: TaskLogic
+                        logicFlavour: JAVASCRIPT
+                        logic: |-
+                          /*
+                           * ============LICENSE_START=======================================================
+                           *  Copyright (C) 2020 Nordix. 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.
+                           *
+                           * SPDX-License-Identifier: Apache-2.0
+                           * ============LICENSE_END=========================================================
+                           */
+                          var uuidType = java.util.UUID;
+
+                          executor.logger.info(executor.subject.id);
+
+                          //albumID will be used to fetch info from our album later
+                          var albumID = uuidType.randomUUID();
+                          var pmSubscriptionInfo = executor.getContextAlbum("PMSubscriptionAlbum").getSchemaHelper().createNewInstance();
+                          var returnValue = true;
+
+                          if(executor.inFields.get("policyName") != null) {
+                              executor.logger.info("nfName in receive sub event " + executor.inFields.get("nfName"));
+
+                              var changeType = executor.inFields.get("changeType")
+                              var nfName = executor.inFields.get("nfName")
+                              var policyName = executor.inFields.get("policyName")
+                              var closedLoopControlName = executor.inFields.get("closedLoopControlName")
+                              var subscription = executor.inFields.get("subscription")
+                              var blueprintName = executor.inFields.get("blueprintName")
+                              var blueprintVersion = executor.inFields.get("blueprintVersion")
+
+                              pmSubscriptionInfo.put("nfName", executor.inFields.get("nfName"));
+                              pmSubscriptionInfo.put("changeType", executor.inFields.get("changeType"))
+                              pmSubscriptionInfo.put("policyName", executor.inFields.get("policyName"))
+                              pmSubscriptionInfo.put("closedLoopControlName", executor.inFields.get("closedLoopControlName"))
+                              pmSubscriptionInfo.put("subscription", subscription)
+                              pmSubscriptionInfo.put("blueprintName", blueprintName)
+                              pmSubscriptionInfo.put("blueprintVersion", blueprintVersion)
+
+
+                              executor.getContextAlbum("PMSubscriptionAlbum").put(albumID.toString(), pmSubscriptionInfo);
+
+                              executor.outFields.put("albumID", albumID)
+                          } else {
+                              executor.message = "Received invalid event"
+                              returnValue = false;
+                          }
+
+                          returnValue;
+              events:
+                key:
+                  name: PMControlPolicy_Events
+                  version: 0.0.1
+                eventMap:
+                  entry:
+                  - key:
+                      name: CDSCreateResponseEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSCreateResponseEvent
+                        version: 0.0.1
+                      nameSpace: org.onap.policy.apex.onap.pmcontrol
+                      source: CDS
+                      target: APEX
+                      parameter:
+                        entry:
+                        - key: actionIdentifiers
+                          value:
+                            key: actionIdentifiers
+                            fieldSchemaKey:
+                              name: CDSActionIdentifiersType
+                              version: 0.0.1
+                            optional: false
+                        - key: commonHeader
+                          value:
+                            key: commonHeader
+                            fieldSchemaKey:
+                              name: CDSResponseCommonHeaderType
+                              version: 0.0.1
+                            optional: false
+                        - key: payload
+                          value:
+                            key: payload
+                            fieldSchemaKey:
+                              name: CDSCreateResponsePayloadType
+                              version: 0.0.1
+                            optional: false
+                        - key: status
+                          value:
+                            key: status
+                            fieldSchemaKey:
+                              name: CDSResponseStatusType
+                              version: 0.0.1
+                            optional: false
+                  - key:
+                      name: CDSCreateSubscriptionRequestEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSCreateSubscriptionRequestEvent
+                        version: 0.0.1
+                      nameSpace: org.onap.policy.apex.onap.pmcontrol
+                      source: APEX
+                      target: APEX
+                      parameter:
+                        entry:
+                        - key: actionIdentifiers
+                          value:
+                            key: actionIdentifiers
+                            fieldSchemaKey:
+                              name: CDSActionIdentifiersType
+                              version: 0.0.1
+                            optional: false
+                        - key: commonHeader
+                          value:
+                            key: commonHeader
+                            fieldSchemaKey:
+                              name: CDSRequestCommonHeaderType
+                              version: 0.0.1
+                            optional: false
+                        - key: payload
+                          value:
+                            key: payload
+                            fieldSchemaKey:
+                              name: CDSCreateSubscriptionPayloadType
+                              version: 0.0.1
+                            optional: false
+                  - key:
+                      name: CDSDeleteResponseEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSDeleteResponseEvent
+                        version: 0.0.1
+                      nameSpace: org.onap.policy.apex.onap.pmcontrol
+                      source: CDS
+                      target: APEX
+                      parameter:
+                        entry:
+                        - key: actionIdentifiers
+                          value:
+                            key: actionIdentifiers
+                            fieldSchemaKey:
+                              name: CDSActionIdentifiersType
+                              version: 0.0.1
+                            optional: false
+                        - key: commonHeader
+                          value:
+                            key: commonHeader
+                            fieldSchemaKey:
+                              name: CDSResponseCommonHeaderType
+                              version: 0.0.1
+                            optional: false
+                        - key: payload
+                          value:
+                            key: payload
+                            fieldSchemaKey:
+                              name: CDSDeleteResponsePayloadType
+                              version: 0.0.1
+                            optional: false
+                        - key: status
+                          value:
+                            key: status
+                            fieldSchemaKey:
+                              name: CDSResponseStatusType
+                              version: 0.0.1
+                            optional: false
+                  - key:
+                      name: CDSDeleteSubscriptionRequestEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSDeleteSubscriptionRequestEvent
+                        version: 0.0.1
+                      nameSpace: org.onap.policy.apex.onap.pmcontrol
+                      source: APEX
+                      target: APEX
+                      parameter:
+                        entry:
+                        - key: actionIdentifiers
+                          value:
+                            key: actionIdentifiers
+                            fieldSchemaKey:
+                              name: CDSActionIdentifiersType
+                              version: 0.0.1
+                            optional: false
+                        - key: commonHeader
+                          value:
+                            key: commonHeader
+                            fieldSchemaKey:
+                              name: CDSRequestCommonHeaderType
+                              version: 0.0.1
+                            optional: false
+                        - key: payload
+                          value:
+                            key: payload
+                            fieldSchemaKey:
+                              name: CDSDeleteSubscriptionPayloadType
+                              version: 0.0.1
+                            optional: false
+                  - key:
+                      name: CDSResponseStatusEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSResponseStatusEvent
+                        version: 0.0.1
+                      nameSpace: org.onap.policy.apex.onap.pmcontrol
+                      source: APEX
+                      target: DCAE
+                      parameter:
+                        entry:
+                        - key: status
+                          value:
+                            key: status
+                            fieldSchemaKey:
+                              name: SubscriptionStatusType
+                              version: 0.0.1
+                            optional: false
+                  - key:
+                      name: CreateSubscriptionPayloadEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CreateSubscriptionPayloadEvent
+                        version: 0.0.1
+                      nameSpace: org.onap.policy.apex.onap.pmcontrol
+                      source: APEX
+                      target: APEX
+                      parameter:
+                        entry:
+                        - key: albumID
+                          value:
+                            key: albumID
+                            fieldSchemaKey:
+                              name: UUIDType
+                              version: 0.0.1
+                            optional: false
+                        - key: payload
+                          value:
+                            key: payload
+                            fieldSchemaKey:
+                              name: CDSCreateSubscriptionPayloadType
+                              version: 0.0.1
+                            optional: false
+                  - key:
+                      name: DeleteSubscriptionPayloadEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: DeleteSubscriptionPayloadEvent
+                        version: 0.0.1
+                      nameSpace: org.onap.policy.apex.onap.pmcontrol
+                      source: APEX
+                      target: APEX
+                      parameter:
+                        entry:
+                        - key: albumID
+                          value:
+                            key: albumID
+                            fieldSchemaKey:
+                              name: UUIDType
+                              version: 0.0.1
+                            optional: false
+                        - key: payload
+                          value:
+                            key: payload
+                            fieldSchemaKey:
+                              name: CDSDeleteSubscriptionPayloadType
+                              version: 0.0.1
+                            optional: false
+                  - key:
+                      name: MRResponseEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: MRResponseEvent
+                        version: 0.0.1
+                      nameSpace: org.onap.policy.apex.onap.pmcontrol
+                      source: DCAE
+                      target: APEX
+                      parameter:
+                        entry:
+                        - key: count
+                          value:
+                            key: count
+                            fieldSchemaKey:
+                              name: SimpleIntType
+                              version: 0.0.1
+                            optional: false
+                        - key: serverTimeMs
+                          value:
+                            key: serverTimeMs
+                            fieldSchemaKey:
+                              name: SimpleIntType
+                              version: 0.0.1
+                            optional: false
+                  - key:
+                      name: PMSubscriptionOutputEvent
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: PMSubscriptionOutputEvent
+                        version: 0.0.1
+                      nameSpace: org.onap.policy.apex.onap.pmcontrol
+                      source: APEX
+                      target: APEX
+                      parameter:
+                        entry:
+                        - key: albumID
+                          value:
+                            key: albumID
+                            fieldSchemaKey:
+                              name: UUIDType
+                              version: 0.0.1
+                            optional: false
+                  - key:
+                      name: pmsh-operational-policy
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: pmsh-operational-policy
+                        version: 0.0.1
+                      nameSpace: org.onap.policy.apex.onap.pmcontrol
+                      source: DCAE
+                      target: APEX
+                      parameter:
+                        entry:
+                        - key: blueprintName
+                          value:
+                            key: blueprintName
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: blueprintVersion
+                          value:
+                            key: blueprintVersion
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: changeType
+                          value:
+                            key: changeType
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: closedLoopControlName
+                          value:
+                            key: closedLoopControlName
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: nfName
+                          value:
+                            key: nfName
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: policyName
+                          value:
+                            key: policyName
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: subscription
+                          value:
+                            key: subscription
+                            fieldSchemaKey:
+                              name: SubscriptionType
+                              version: 0.0.1
+                            optional: false
+              albums:
+                key:
+                  name: PMControlPolicy_Albums
+                  version: 0.0.1
+                albums:
+                  entry:
+                  - key:
+                      name: PMSubscriptionAlbum
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: PMSubscriptionAlbum
+                        version: 0.0.1
+                      scope: policy
+                      isWritable: true
+                      itemSchema:
+                        name: PMSubscriptionType
+                        version: 0.0.1
+              schemas:
+                key:
+                  name: PMControlPolicy_Schemas
+                  version: 0.0.1
+                schemas:
+                  entry:
+                  - key:
+                      name: CDSActionIdentifiersType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSActionIdentifiersType
+                        version: 0.0.1
+                      schemaFlavour: Avro
+                      schemaDefinition: |-
+                        {
+                            "type": "record",
+                            "name": "ActionIdentifiers_Type",
+                            "namespace": "org.onap.policy.apex.onap.helloworld",
+                            "fields": [
+                                {
+                                    "name": "actionName",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "blueprintName",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "blueprintVersion",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "mode",
+                                    "type": "string"
+                                }
+                            ]
+                        }
+                  - key:
+                      name: CDSCreateResponsePayloadType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSCreateResponsePayloadType
+                        version: 0.0.1
+                      schemaFlavour: Avro
+                      schemaDefinition: |-
+                        {
+                          "name": "CreateResponsePayloadEntry",
+                          "type": "record",
+                          "namespace": "org.onap.policy.apex.onap.helloworld",
+                          "fields": [
+                            {
+                              "name": "create_DasH_subscription_DasH_response",
+                              "type": {
+                                "name": "create_DasH_subscription_DasH_response",
+                                "type": "record",
+                                "fields": [
+                                  {
+                                    "name": "odl_DasH_response",
+                                    "type": {
+                                      "name": "odl_DasH_response",
+                                      "type": "record",
+                                      "fields": [
+                                          {
+                                            "name": "status",
+                                            "type": "string"
+                                          }
+                                      ]
+                                    }
+                                  }
+                                ]
+                              }
+                            }
+                          ]
+                        }
+                  - key:
+                      name: CDSCreateSubscriptionPayloadType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSCreateSubscriptionPayloadType
+                        version: 0.0.1
+                      schemaFlavour: Avro
+                      schemaDefinition: |-
+                        {
+                          "type": "map",
+                          "values": {
+                            "type": "record",
+                            "name": "CDSRequestPayloadEntry",
+                            "fields": [
+                              {
+                                "name": "create_DasH_subscription_DasH_properties",
+                                "type": {
+                                  "name": "create_DasH_subscription_DasH_properties_record",
+                                  "type": "record",
+                                  "fields": [
+                                    {
+                                      "name": "nfName",
+                                      "type": "string"
+                                    },
+                                    {
+                                      "name": "subscriptionName",
+                                      "type": "string"
+                                    },
+                                    {
+                                      "name": "administrativeState",
+                                      "type": "string"
+                                    },
+                                    {
+                                      "name": "fileBasedGP",
+                                      "type": "string"
+                                    },
+                                    {
+                                      "name": "fileLocation",
+                                      "type": "string"
+                                    },
+                                    {
+                                      "name": "measurementGroups",
+                                      "type": {
+                                        "type": "array",
+                                        "items": {
+                                          "name": "measurementGroups_record",
+                                          "type": "record",
+                                          "fields": [
+                                            {
+                                              "name": "measurementGroup",
+                                              "type": {
+                                                "name": "measurementGroup",
+                                                "type": "record",
+                                                "fields": [
+                                                  {
+                                                    "name": "measurementTypes",
+                                                    "type": {
+                                                      "type": "array",
+                                                      "items": {
+                                                        "name": "measurementTypes_record",
+                                                        "type": "record",
+                                                        "fields": [
+                                                          {
+                                                            "name": "measurementType",
+                                                            "type": "string"
+                                                          }
+                                                        ]
+                                                      }
+                                                    }
+                                                  },
+                                                  {
+                                                    "name": "managedObjectDNsBasic",
+                                                    "type": {
+                                                      "type": "array",
+                                                      "items": {
+                                                        "name": "managedObjectDNsBasic_record",
+                                                        "type": "record",
+                                                        "fields": [
+                                                          {
+                                                            "name": "DN",
+                                                            "type": "string"
+                                                          }
+                                                        ]
+                                                      }
+                                                    }
+                                                  }
+                                                ]
+                                              }
+                                            }
+                                          ]
+                                        }
+                                      }
+                                    }
+                                  ]
+                                }
+                              }
+                            ]
+                          }
+                        }
+                  - key:
+                      name: CDSDeleteResponsePayloadType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSDeleteResponsePayloadType
+                        version: 0.0.1
+                      schemaFlavour: Avro
+                      schemaDefinition: |-
+                        {
+                          "name": "DeleteResponsePayloadEntry",
+                          "type": "record",
+                          "namespace": "com.acme.avro",
+                          "fields": [
+                            {
+                              "name": "delete_DasH_subscription_DasH_response",
+                              "type": {
+                                "name": "delete_DasH_subscription_DasH_response",
+                                "type": "record",
+                                "fields": [
+                                  {
+                                    "name": "odl_DasH_response",
+                                    "type": {
+                                      "name": "odl_DasH_response",
+                                      "type": "record",
+                                      "fields": [
+                                          {
+                                            "name": "status",
+                                            "type": "string"
+                                          }
+                                      ]
+                                    }
+                                  }
+                                ]
+                              }
+                            }
+                          ]
+                        }
+                  - key:
+                      name: CDSDeleteSubscriptionPayloadType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSDeleteSubscriptionPayloadType
+                        version: 0.0.1
+                      schemaFlavour: Avro
+                      schemaDefinition: |-
+                        {
+                          "type": "map",
+                          "values": {
+                            "type": "record",
+                            "name": "CDSRequestPayloadEntry",
+                            "fields": [
+                              {
+                                "name": "delete_DasH_subscription_DasH_properties",
+                                "type": {
+                                  "name": "delete_DasH_subscription_DasH_properties_record",
+                                  "type": "record",
+                                  "fields": [
+                                    {
+                                      "name": "nfName",
+                                      "type": "string"
+                                    },
+                                    {
+                                      "name": "subscriptionName",
+                                      "type": "string"
+                                    },
+                                    {
+                                      "name": "administrativeState",
+                                      "type": "string"
+                                    },
+                                    {
+                                      "name": "fileBasedGP",
+                                      "type": "string"
+                                    },
+                                    {
+                                      "name": "fileLocation",
+                                      "type": "string"
+                                    },
+                                    {
+                                      "name": "measurementGroups",
+                                      "type": {
+                                        "type": "array",
+                                        "items": {
+                                          "name": "measurementGroups_record",
+                                          "type": "record",
+                                          "fields": [
+                                            {
+                                              "name": "measurementGroup",
+                                              "type": {
+                                                "name": "measurementGroup",
+                                                "type": "record",
+                                                "fields": [
+                                                  {
+                                                    "name": "measurementTypes",
+                                                    "type": {
+                                                      "type": "array",
+                                                      "items": {
+                                                        "name": "measurementTypes_record",
+                                                        "type": "record",
+                                                        "fields": [
+                                                          {
+                                                            "name": "measurementType",
+                                                            "type": "string"
+                                                          }
+                                                        ]
+                                                      }
+                                                    }
+                                                  },
+                                                  {
+                                                    "name": "managedObjectDNsBasic",
+                                                    "type": {
+                                                      "type": "array",
+                                                      "items": {
+                                                        "name": "managedObjectDNsBasic_record",
+                                                        "type": "record",
+                                                        "fields": [
+                                                          {
+                                                            "name": "DN",
+                                                            "type": "string"
+                                                          }
+                                                        ]
+                                                      }
+                                                    }
+                                                  }
+                                                ]
+                                              }
+                                            }
+                                          ]
+                                        }
+                                      }
+                                    }
+                                  ]
+                                }
+                              }
+                            ]
+                          }
+                        }
+                  - key:
+                      name: CDSRequestCommonHeaderType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSRequestCommonHeaderType
+                        version: 0.0.1
+                      schemaFlavour: Avro
+                      schemaDefinition: |-
+                        {
+                            "type": "record",
+                            "name": "RequestCommonHeader_Type",
+                            "namespace": "org.onap.policy.apex.onap.helloworld",
+                            "fields": [
+                                {
+                                    "name": "originatorId",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "requestId",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "subRequestId",
+                                    "type": "string"
+                                }
+                            ]
+                        }
+                  - key:
+                      name: CDSResponseCommonHeaderType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSResponseCommonHeaderType
+                        version: 0.0.1
+                      schemaFlavour: Avro
+                      schemaDefinition: |-
+                        {
+                            "type": "record",
+                            "name": "ResponseCommonHeader_Type",
+                            "namespace": "org.onap.policy.apex.onap.helloworld",
+                            "fields": [
+                                {
+                                    "name": "originatorId",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "requestId",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "subRequestId",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "timestamp",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "flags",
+                                    "type": ["null", "string"]
+                                }
+                            ]
+                        }
+                  - key:
+                      name: CDSResponseStatusType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: CDSResponseStatusType
+                        version: 0.0.1
+                      schemaFlavour: Avro
+                      schemaDefinition: |-
+                        {
+                            "type": "record",
+                            "name": "ResponseStatus_Type",
+                            "namespace": "org.onap.policy.apex.onap.helloworld",
+                            "fields": [
+                                {
+                                    "name": "code",
+                                    "type": "int"
+                                },
+                                {
+                                    "name": "eventType",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "timestamp",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "message",
+                                    "type": "string"
+                                }
+                            ]
+                        }
+                  - key:
+                      name: PMSubscriptionType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: PMSubscriptionType
+                        version: 0.0.1
+                      schemaFlavour: Avro
+                      schemaDefinition: "{\n\t\"name\": \"PMSubscription\",\n\t\"type\": \"record\",\n\t\"namespace\": \"\
+                        org.onap.policy.apex.onap.pmcontrol\",\n\t\"fields\": [\n        {\n            \"name\": \"nfName\"\
+                        ,\n            \"type\": \"string\"\n        },\n\t    {\n\t\t\t\"name\": \"changeType\",\n\t\t\t\"\
+                        type\": \"string\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"closedLoopControlName\",\n\t\t\t\"type\": \"\
+                        string\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"policyName\",\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\
+                        {\n\t\t    \"name\": \"blueprintName\",\n\t\t    \"type\": \"string\"\n\t\t},\n\t\t{\n\t\t    \"name\"\
+                        : \"blueprintVersion\",\n\t\t    \"type\": \"string\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"subscription\"\
+                        ,\n\t\t\t\"type\": {\n\t\t\t\t\"name\": \"subscription\",\n\t\t\t\t\"type\": \"record\",\n\t\t\t\t\
+                        \"fields\": [{\n\t\t\t\t\t\t\"name\": \"subscriptionName\",\n\t\t\t\t\t\t\"type\": \"string\"\n\t\t\
+                        \t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"name\": \"administrativeState\",\n\t\t\t\t\t\t\"type\": \"string\"\
+                        \n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"name\": \"fileBasedGP\",\n\t\t\t\t\t\t\"type\": \"int\"\
+                        \n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"name\": \"fileLocation\",\n\t\t\t\t\t\t\"type\": \"string\"\
+                        \n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"name\": \"measurementGroups\",\n\t\t\t\t\t\t\"type\": {\n\
+                        \t\t\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\t\t\"name\": \"Measurement_Groups_Type\"\
+                        ,\n\t\t\t\t\t\t\t\t\"type\": \"record\",\n\t\t\t\t\t\t\t\t\"fields\": [{\n\t\t\t\t\t\t\t\t\t\"name\"\
+                        : \"measurementGroup\",\n\t\t\t\t\t\t\t\t\t\"type\": {\n\t\t\t\t\t\t\t\t\t\t\"name\": \"Measurement_Group_Type\"\
+                        ,\n\t\t\t\t\t\t\t\t\t\t\"type\": \"record\",\n\t\t\t\t\t\t\t\t\t\t\"fields\": [{\n\t\t\t\t\t\t\t\t\
+                        \t\t\t\t\"name\": \"measurementTypes\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"type\": {\n\t\t\t\t\t\t\t\t\t\t\
+                        \t\t\t\"type\": \"array\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"\
+                        name\": \"Measurement_Types_Type\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"type\": \"record\",\n\t\t\t\t\t\
+                        \t\t\t\t\t\t\t\t\t\"fields\": [{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"name\": \"measurementType\",\n\t\
+                        \t\t\t\t\t\t\t\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t\t\t\
+                        \t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\
+                        \t\t\t\t\t\t\t\t\"name\": \"managedObjectDNsBasic\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"type\": {\n\t\t\t\t\
+                        \t\t\t\t\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\t\t\t\
+                        \t\t\t\t\t\"name\": \"Managed_Object_Dns_Basic_Type\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"type\": \"record\"\
+                        ,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"fields\": [{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"name\": \"DN\",\n\t\
+                        \t\t\t\t\t\t\t\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t\t\t\
+                        \t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\
+                        \t\t\t\t}\n\t\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\
+                        \t}\n\t]\n}"
+                  - key:
+                      name: SimpleIntType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: SimpleIntType
+                        version: 0.0.1
+                      schemaFlavour: Java
+                      schemaDefinition: java.lang.Integer
+                  - key:
+                      name: SimpleStringType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: SimpleStringType
+                        version: 0.0.1
+                      schemaFlavour: Java
+                      schemaDefinition: java.lang.String
+                  - key:
+                      name: SubscriptionStatusType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: SubscriptionStatusType
+                        version: 0.0.1
+                      schemaFlavour: Avro
+                      schemaDefinition: |-
+                        {
+                            "type": "record",
+                            "name": "ActivateSubscriptionStatus_Type",
+                            "namespace": "org.onap.policy.apex.onap.helloworld",
+                            "fields": [
+                                {
+                                    "name": "subscriptionName",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "nfName",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "changeType",
+                                    "type": "string"
+                                },
+                                {
+                                    "name": "message",
+                                    "type": "string"
+                                }
+                            ]
+                        }
+                  - key:
+                      name: SubscriptionType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: SubscriptionType
+                        version: 0.0.1
+                      schemaFlavour: Avro
+                      schemaDefinition: "{\n\t\"name\": \"subscription\",\n\t\"type\": \"record\",\n\t\"fields\": [{\n\t\t\
+                        \t\"name\": \"subscriptionName\",\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"administrativeState\"\
+                        ,\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"fileBasedGP\",\n\t\t\t\"type\": \"\
+                        int\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"fileLocation\",\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\
+                        {\n\t\t\t\"name\": \"measurementGroups\",\n\t\t\t\"type\": {\n\t\t\t\t\"type\": \"array\",\n\t\t\t\
+                        \t\"items\": {\n\t\t\t\t\t\"name\": \"Measurement_Groups_Type\",\n\t\t\t\t\t\"type\": \"record\",\n\
+                        \t\t\t\t\t\"fields\": [{\n\t\t\t\t\t\t\"name\": \"measurementGroup\",\n\t\t\t\t\t\t\"type\": {\n\t\
+                        \t\t\t\t\t\t\"name\": \"Measurement_Group_Type\",\n\t\t\t\t\t\t\t\"type\": \"record\",\n\t\t\t\t\t\
+                        \t\t\"fields\": [{\n\t\t\t\t\t\t\t\t\t\"name\": \"measurementTypes\",\n\t\t\t\t\t\t\t\t\t\"type\"\
+                        : {\n\t\t\t\t\t\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\t\t\t\
+                        \t\t\"name\": \"Measurement_Types_Type\",\n\t\t\t\t\t\t\t\t\t\t\t\"type\": \"record\",\n\t\t\t\t\t\
+                        \t\t\t\t\t\t\"fields\": [{\n\t\t\t\t\t\t\t\t\t\t\t\t\"name\": \"measurementType\",\n\t\t\t\t\t\t\t\
+                        \t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\
+                        }\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\"name\": \"managedObjectDNsBasic\",\n\
+                        \t\t\t\t\t\t\t\t\t\"type\": {\n\t\t\t\t\t\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\t\t\t\t\t\"items\"\
+                        : {\n\t\t\t\t\t\t\t\t\t\t\t\"name\": \"Managed_Object_Dns_Basic_Type\",\n\t\t\t\t\t\t\t\t\t\t\t\"\
+                        type\": \"record\",\n\t\t\t\t\t\t\t\t\t\t\t\"fields\": [{\n\t\t\t\t\t\t\t\t\t\t\t\t\"name\": \"DN\"\
+                        ,\n\t\t\t\t\t\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t\t\t\t\t}\n\
+                        \t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}\n\t\t\t\t\t}]\n\t\t\t\t}\n\t\
+                        \t\t}\n\t\t}\n\t]\n}"
+                  - key:
+                      name: UUIDType
+                      version: 0.0.1
+                    value:
+                      key:
+                        name: UUIDType
+                        version: 0.0.1
+                      schemaFlavour: Java
+                      schemaDefinition: java.util.UUID
+          engineParameters:
+            executorParameters:
+              JAVASCRIPT:
+                parameterClassName: org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters
+            contextParameters:
+              parameterClassName: org.onap.policy.apex.context.parameters.ContextParameters
+              schemaParameters:
+                Avro:
+                  parameterClassName: org.onap.policy.apex.plugins.context.schema.avro.AvroSchemaHelperParameters
+                Java:
+                  parameterClassName: org.onap.policy.apex.context.impl.schema.java.JavaSchemaHelperParameters
+                  jsonAdapters:
+                    Instant:
+                      adaptedClass: java.time.Instant
+                      adaptorClass: org.onap.policy.controlloop.util.Serialization$GsonInstantAdapter
+        eventInputParameters:
+          DCAEConsumer:
+            carrierTechnologyParameters:
+              carrierTechnology: RESTCLIENT
+              parameterClassName: org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters
+              parameters:
+                consumerPollTime: '50'
+                url: https://message-router:3905/events/unauthenticated.DCAE_CL_OUTPUT/cg1/sg1
+            eventProtocolParameters:
+              eventProtocol: JSON
+              parameters:
+                nameAlias: policyName
+            eventName: pmsh-operational-policy
+            eventNameFilter: pmsh-operational-policy
+          CDSRequestConsumer:
+            carrierTechnologyParameters:
+              carrierTechnology: RESTREQUESTOR
+              parameterClassName: org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters
+              parameters:
+                url: http://10.10.10.184:30254/api/v1/execution-service/process
+                httpMethod: POST
+                restRequestTimeout: 2000
+                httpHeaders:
+                - - Authorization
+                  - Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==
+            eventProtocolParameters:
+              eventProtocol: JSON
+            eventName: CDSCreateResponseEvent
+            eventNameFilter: CDSCreateResponseEvent
+            requestorMode: true
+            requestorPeer: CDSRequestProducer
+            requestorTimeout: 500
+          CDSDeleteRequestConsumer:
+            carrierTechnologyParameters:
+              carrierTechnology: RESTREQUESTOR
+              parameterClassName: org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters
+              parameters:
+                url: http://10.10.10.184:30254/api/v1/execution-service/process
+                httpMethod: POST
+                restRequestTimeout: 2000
+                httpHeaders:
+                - - Authorization
+                  - Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==
+            eventProtocolParameters:
+              eventProtocol: JSON
+            eventName: CDSDeleteResponseEvent
+            eventNameFilter: CDSDeleteResponseEvent
+            requestorMode: true
+            requestorPeer: CDSDeleteRequestProducer
+            requestorTimeout: 500
+          CDSReplyConsumer:
+            carrierTechnologyParameters:
+              carrierTechnology: RESTREQUESTOR
+              parameterClassName: org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters
+              parameters:
+                url: https://message-router:3905/events/unauthenticated.PMSH_CL_INPUT
+                httpMethod: POST
+                restRequestTimeout: 2000
+            eventProtocolParameters:
+              eventProtocol: JSON
+            eventName: MRResponseEvent
+            eventNameFilter: MRResponseEvent
+            requestorMode: true
+            requestorPeer: CDSReplyProducer
+            requestorTimeout: 500
+        eventOutputParameters:
+          logOutputter:
+            carrierTechnologyParameters:
+              carrierTechnology: FILE
+              parameters:
+                fileName: /tmp/outputevents.log
+            eventProtocolParameters:
+              eventProtocol: JSON
+          StdOutOutputter:
+            carrierTechnologyParameters:
+              carrierTechnology: FILE
+              parameters:
+                standardIo: true
+            eventProtocolParameters:
+              eventProtocol: JSON
+          CDSRequestProducer:
+            carrierTechnologyParameters:
+              carrierTechnology: RESTREQUESTOR
+              parameterClassName: org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters
+            eventProtocolParameters:
+              eventProtocol: JSON
+            eventNameFilter: CDSCreateSubscriptionRequestEvent
+            requestorMode: true
+            requestorPeer: CDSRequestConsumer
+            requestorTimeout: 500
+          CDSDeleteRequestProducer:
+            carrierTechnologyParameters:
+              carrierTechnology: RESTREQUESTOR
+              parameterClassName: org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters
+            eventProtocolParameters:
+              eventProtocol: JSON
+            eventNameFilter: CDSDeleteSubscriptionRequestEvent
+            requestorMode: true
+            requestorPeer: CDSDeleteRequestConsumer
+            requestorTimeout: 500
+          CDSReplyProducer:
+            carrierTechnologyParameters:
+              carrierTechnology: RESTREQUESTOR
+              parameterClassName: org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters
+            eventProtocolParameters:
+              eventProtocol: JSON
+            eventNameFilter: CDSResponseStatusEvent
+            requestorMode: true
+            requestorPeer: CDSReplyConsumer
+            requestorTimeout: 500