Refactoring Subscription Create LCM use case

- Client to NCMP: CmSubscriptionNcmpInEvent
- NCMP to DMI: CmSubscriptionDmiInEvent
- DMI to NCMP: CmSubscriptionDmiOutEvent
- NCMP to Client: CmSubscriptionNcmpOutEvent
- code package changed from avcsubscription to cmsubscription
- Other classes name as per the events naming above
- Test classes refactored
- NO LOGIC changes incorporated in this patch

Issue-ID: CPS-1831
Change-Id: Id5ad5f799007deaaf6d6fc0f402c130339263d09
Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
diff --git a/cps-ncmp-events/src/main/resources/schemas/subscription/ncmp-to-dmi-subscription-event-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-dmi-in-event-schema-1.0.0.json
similarity index 92%
rename from cps-ncmp-events/src/main/resources/schemas/subscription/ncmp-to-dmi-subscription-event-schema-1.0.0.json
rename to cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-dmi-in-event-schema-1.0.0.json
index 6e359f8..3750bd0 100644
--- a/cps-ncmp-events/src/main/resources/schemas/subscription/ncmp-to-dmi-subscription-event-schema-1.0.0.json
+++ b/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-dmi-in-event-schema-1.0.0.json
@@ -1,11 +1,11 @@
 {
   "$schema": "https://json-schema.org/draft/2019-09/schema",
-  "$id": "urn:cps:org.onap.cps.ncmp.events:subscription-event-schema:1.0.0",
-  "$ref": "#/definitions/SubscriptionEvent",
+  "$id": "urn:cps:org.onap.cps.ncmp.events:cm-subscription-dmi-in-event-schema:1.0.0",
+  "$ref": "#/definitions/CmSubscriptionDmiInEvent",
   "definitions": {
-    "SubscriptionEvent": {
+    "CmSubscriptionDmiInEvent": {
       "description": "The payload for subscription event to be forwarded to dmi plugins.",
-      "javaType": "org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_dmi.SubscriptionEvent",
+      "javaType": "org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_dmi.CmSubscriptionDmiInEvent",
       "properties": {
         "data": {
           "properties": {
diff --git a/cps-ncmp-events/src/main/resources/schemas/subscription/dmi-to-ncmp-subscription-response-event-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-dmi-out-event-schema-1.0.0.json
similarity index 83%
rename from cps-ncmp-events/src/main/resources/schemas/subscription/dmi-to-ncmp-subscription-response-event-schema-1.0.0.json
rename to cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-dmi-out-event-schema-1.0.0.json
index ec968fd..c08a4ea 100644
--- a/cps-ncmp-events/src/main/resources/schemas/subscription/dmi-to-ncmp-subscription-response-event-schema-1.0.0.json
+++ b/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-dmi-out-event-schema-1.0.0.json
@@ -1,7 +1,7 @@
 {
   "$schema": "https://json-schema.org/draft/2019-09/schema",
-  "$id": "urn:cps:org.onap.cps.ncmp.events:dmi-subscription-response-event-schema:1.0.0",
-  "$ref": "#/definitions/SubscriptionEventResponse",
+  "$id": "urn:cps:org.onap.cps.ncmp.events:cm-subscription-dmi-out-event-schema:1.0.0",
+  "$ref": "#/definitions/CmSubscriptionDmiOutEvent",
   "definitions": {
     "SubscriptionStatus": {
       "description": "The subscription status information",
@@ -28,10 +28,10 @@
       ],
       "additionalProperties": false
     },
-    "SubscriptionEventResponse" : {
+    "CmSubscriptionDmiOutEvent" : {
       "description": "The payload for subscription response event.",
       "type": "object",
-      "javaType": "org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionEventResponse",
+      "javaType": "org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent",
       "properties": {
         "data": {
           "type": "object",
diff --git a/cps-ncmp-events/src/main/resources/schemas/subscription/client-to-ncmp-subscription-event-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-ncmp-in-event-schema-1.0.0.json
similarity index 90%
rename from cps-ncmp-events/src/main/resources/schemas/subscription/client-to-ncmp-subscription-event-schema-1.0.0.json
rename to cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-ncmp-in-event-schema-1.0.0.json
index 2bbd09b..818a8e7 100644
--- a/cps-ncmp-events/src/main/resources/schemas/subscription/client-to-ncmp-subscription-event-schema-1.0.0.json
+++ b/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-ncmp-in-event-schema-1.0.0.json
@@ -1,11 +1,11 @@
 {
-  "$id": "urn:cps:org.onap.cps.ncmp.events:avc-subscription-event:1.0.0",
-  "$ref": "#/definitions/SubscriptionEvent",
+  "$id": "urn:cps:org.onap.cps.ncmp.events:cm-subscription-ncmp-in-event:1.0.0",
+  "$ref": "#/definitions/CmSubscriptionNcmpInEvent",
   "$schema": "https://json-schema.org/draft/2019-09/schema",
   "definitions": {
-    "SubscriptionEvent": {
+    "CmSubscriptionNcmpInEvent": {
       "description": "The payload for subscription event.",
-      "javaType": "org.onap.cps.ncmp.events.avcsubscription1_0_0.client_to_ncmp.SubscriptionEvent",
+      "javaType": "org.onap.cps.ncmp.events.cmsubscription1_0_0.client_to_ncmp.CmSubscriptionNcmpInEvent",
       "properties": {
         "data": {
           "properties": {
diff --git a/cps-ncmp-events/src/main/resources/schemas/subscription/ncmp-to-client-subscription-event-outcome-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-ncmp-out-event-schema-1.0.0.json
similarity index 84%
rename from cps-ncmp-events/src/main/resources/schemas/subscription/ncmp-to-client-subscription-event-outcome-schema-1.0.0.json
rename to cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-ncmp-out-event-schema-1.0.0.json
index a2017b4..9c0c28b 100644
--- a/cps-ncmp-events/src/main/resources/schemas/subscription/ncmp-to-client-subscription-event-outcome-schema-1.0.0.json
+++ b/cps-ncmp-events/src/main/resources/schemas/cmsubscription/cm-subscription-ncmp-out-event-schema-1.0.0.json
@@ -1,12 +1,12 @@
 {
   "$schema": "https://json-schema.org/draft/2019-09/schema",
-  "$id": "urn:cps:org.onap.cps.ncmp.events:subscription-event-outcome-schema:1.0.0",
-  "$ref": "#/definitions/SubscriptionEventOutcome",
+  "$id": "urn:cps:org.onap.cps.ncmp.events:cm-subscription-ncmp-out-event-schema:1.0.0",
+  "$ref": "#/definitions/CmSubscriptionNcmpOutEvent",
   "definitions": {
-    "SubscriptionEventOutcome": {
+    "CmSubscriptionNcmpOutEvent": {
       "description": "The payload for avc subscription event outcome message.",
       "type": "object",
-      "javaType": "org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_client.SubscriptionEventOutcome",
+      "javaType": "org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_client.CmSubscriptionNcmpOutEvent",
       "additionalProperties": false,
       "properties": {
         "data": {
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventForwarder.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventForwarder.java
deleted file mode 100644
index d3bfe81..0000000
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventForwarder.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2023 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=========================================================
- */
-
-package org.onap.cps.ncmp.api.impl.events.avcsubscription;
-
-import com.hazelcast.map.IMap;
-import io.cloudevents.CloudEvent;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.onap.cps.ncmp.api.impl.config.embeddedcache.ForwardedSubscriptionEventCacheConfig;
-import org.onap.cps.ncmp.api.impl.events.EventsPublisher;
-import org.onap.cps.ncmp.api.impl.subscriptions.SubscriptionPersistence;
-import org.onap.cps.ncmp.api.impl.subscriptions.SubscriptionStatus;
-import org.onap.cps.ncmp.api.impl.utils.DmiServiceNameOrganizer;
-import org.onap.cps.ncmp.api.impl.utils.SubscriptionEventCloudMapper;
-import org.onap.cps.ncmp.api.impl.yangmodels.YangModelCmHandle;
-import org.onap.cps.ncmp.api.impl.yangmodels.YangModelSubscriptionEvent;
-import org.onap.cps.ncmp.api.inventory.InventoryPersistence;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.client_to_ncmp.SubscriptionEvent;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.Data;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionEventResponse;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_dmi.CmHandle;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-
-@Component
-@Slf4j
-@RequiredArgsConstructor
-public class SubscriptionEventForwarder {
-
-    private final InventoryPersistence inventoryPersistence;
-    private final EventsPublisher<CloudEvent> eventsPublisher;
-    private final IMap<String, Set<String>> forwardedSubscriptionEventCache;
-    private final SubscriptionEventResponseOutcome subscriptionEventResponseOutcome;
-    private final SubscriptionEventMapper subscriptionEventMapper;
-    private final SubscriptionEventCloudMapper subscriptionEventCloudMapper;
-    private final ClientSubscriptionEventMapper clientSubscriptionEventMapper;
-    private final SubscriptionPersistence subscriptionPersistence;
-    private final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
-    @Value("${app.ncmp.avc.subscription-forward-topic-prefix}")
-    private String dmiAvcSubscriptionTopicPrefix;
-
-    @Value("${ncmp.timers.subscription-forwarding.dmi-response-timeout-ms:30000}")
-    private int dmiResponseTimeoutInMs;
-
-    /**
-     * Forward subscription event.
-     *
-     * @param subscriptionEvent the event to be forwarded
-     */
-    public void forwardCreateSubscriptionEvent(final SubscriptionEvent subscriptionEvent, final String eventType) {
-        final List<String> cmHandleTargets = subscriptionEvent.getData().getPredicates().getTargets();
-        if (cmHandleTargets == null || cmHandleTargets.isEmpty()
-                || cmHandleTargets.stream().anyMatch(id -> (id).contains("*"))) {
-            throw new UnsupportedOperationException(
-                    "CMHandle targets are required. \"Wildcard\" operations are not yet supported");
-        }
-        final Collection<YangModelCmHandle> yangModelCmHandles =
-                inventoryPersistence.getYangModelCmHandles(cmHandleTargets);
-        final Map<String, Map<String, Map<String, String>>> dmiPropertiesPerCmHandleIdPerServiceName
-                = DmiServiceNameOrganizer.getDmiPropertiesPerCmHandleIdPerServiceName(yangModelCmHandles);
-        findDmisAndRespond(subscriptionEvent, eventType, cmHandleTargets, dmiPropertiesPerCmHandleIdPerServiceName);
-    }
-
-    private void findDmisAndRespond(final SubscriptionEvent subscriptionEvent, final String eventType,
-                                    final List<String> cmHandleTargetsAsStrings,
-                           final Map<String, Map<String, Map<String, String>>>
-                                            dmiPropertiesPerCmHandleIdPerServiceName) {
-        final SubscriptionEventResponse emptySubscriptionEventResponse =
-                new SubscriptionEventResponse().withData(new Data());
-        emptySubscriptionEventResponse.getData().setSubscriptionName(
-                subscriptionEvent.getData().getSubscription().getName());
-        emptySubscriptionEventResponse.getData().setClientId(
-                subscriptionEvent.getData().getSubscription().getClientID());
-        final List<String> cmHandlesThatExistsInDb = dmiPropertiesPerCmHandleIdPerServiceName.entrySet().stream()
-                .map(Map.Entry::getValue).map(Map::keySet).flatMap(Set::stream).collect(Collectors.toList());
-
-        final List<String> targetCmHandlesDoesNotExistInDb = new ArrayList<>(cmHandleTargetsAsStrings);
-        targetCmHandlesDoesNotExistInDb.removeAll(cmHandlesThatExistsInDb);
-
-        final Set<String> dmisToRespond = new HashSet<>(dmiPropertiesPerCmHandleIdPerServiceName.keySet());
-
-        if (dmisToRespond.isEmpty() || !targetCmHandlesDoesNotExistInDb.isEmpty()) {
-            updatesCmHandlesToRejectedAndPersistSubscriptionEvent(subscriptionEvent, targetCmHandlesDoesNotExistInDb);
-        }
-        if (dmisToRespond.isEmpty()) {
-            subscriptionEventResponseOutcome.sendResponse(emptySubscriptionEventResponse,
-                    "subscriptionCreatedStatus");
-        } else {
-            startResponseTimeout(emptySubscriptionEventResponse, dmisToRespond);
-            final org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_dmi.SubscriptionEvent ncmpSubscriptionEvent =
-                    clientSubscriptionEventMapper.toNcmpSubscriptionEvent(subscriptionEvent);
-            forwardEventToDmis(dmiPropertiesPerCmHandleIdPerServiceName, ncmpSubscriptionEvent, eventType);
-        }
-    }
-
-    private void startResponseTimeout(final SubscriptionEventResponse emptySubscriptionEventResponse,
-                                      final Set<String> dmisToRespond) {
-        final String subscriptionClientId = emptySubscriptionEventResponse.getData().getClientId();
-        final String subscriptionName = emptySubscriptionEventResponse.getData().getSubscriptionName();
-        final String subscriptionEventId = subscriptionClientId + subscriptionName;
-
-        forwardedSubscriptionEventCache.put(subscriptionEventId, dmisToRespond,
-                ForwardedSubscriptionEventCacheConfig.SUBSCRIPTION_FORWARD_STARTED_TTL_SECS, TimeUnit.SECONDS);
-        final ResponseTimeoutTask responseTimeoutTask =
-            new ResponseTimeoutTask(forwardedSubscriptionEventCache, subscriptionEventResponseOutcome,
-                    emptySubscriptionEventResponse);
-
-        executorService.schedule(responseTimeoutTask, dmiResponseTimeoutInMs, TimeUnit.MILLISECONDS);
-    }
-
-    private void forwardEventToDmis(final Map<String, Map<String, Map<String, String>>> dmiNameCmHandleMap,
-                                    final org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_dmi.SubscriptionEvent
-                                            ncmpSubscriptionEvent, final String eventType) {
-        dmiNameCmHandleMap.forEach((dmiName, cmHandlePropertiesMap) -> {
-            final List<CmHandle> cmHandleTargets = cmHandlePropertiesMap.entrySet().stream().map(
-                    cmHandleAndProperties -> {
-                        final CmHandle cmHandle = new CmHandle();
-                        cmHandle.setId(cmHandleAndProperties.getKey());
-                        cmHandle.setAdditionalProperties(cmHandleAndProperties.getValue());
-                        return cmHandle;
-                    }).collect(Collectors.toList());
-
-            ncmpSubscriptionEvent.getData().getPredicates().setTargets(cmHandleTargets);
-            final String eventKey = createEventKey(ncmpSubscriptionEvent, dmiName);
-            final String dmiAvcSubscriptionTopic = dmiAvcSubscriptionTopicPrefix + dmiName;
-
-            final CloudEvent ncmpSubscriptionCloudEvent =
-                    subscriptionEventCloudMapper.toCloudEvent(ncmpSubscriptionEvent, eventKey, eventType);
-            eventsPublisher.publishCloudEvent(dmiAvcSubscriptionTopic, eventKey, ncmpSubscriptionCloudEvent);
-        });
-    }
-
-    private String createEventKey(
-            final org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_dmi.SubscriptionEvent subscriptionEvent,
-            final String dmiName) {
-        return subscriptionEvent.getData().getSubscription().getClientID()
-            + "-"
-            + subscriptionEvent.getData().getSubscription().getName()
-            + "-"
-            + dmiName;
-    }
-
-    private void updatesCmHandlesToRejectedAndPersistSubscriptionEvent(
-            final SubscriptionEvent subscriptionEvent,
-            final List<String> targetCmHandlesDoesNotExistInDb) {
-        final YangModelSubscriptionEvent yangModelSubscriptionEvent =
-                subscriptionEventMapper.toYangModelSubscriptionEvent(subscriptionEvent);
-        yangModelSubscriptionEvent.getPredicates()
-                .setTargetCmHandles(findRejectedCmHandles(targetCmHandlesDoesNotExistInDb,
-                        yangModelSubscriptionEvent));
-        subscriptionPersistence.saveSubscriptionEvent(yangModelSubscriptionEvent);
-    }
-
-    private static List<YangModelSubscriptionEvent.TargetCmHandle> findRejectedCmHandles(
-            final List<String> targetCmHandlesDoesNotExistInDb,
-            final YangModelSubscriptionEvent yangModelSubscriptionEvent) {
-        return yangModelSubscriptionEvent.getPredicates().getTargetCmHandles().stream()
-                    .filter(targetCmHandle -> targetCmHandlesDoesNotExistInDb.contains(targetCmHandle.getCmHandleId()))
-                    .map(target -> new YangModelSubscriptionEvent.TargetCmHandle(target.getCmHandleId(),
-                                    SubscriptionStatus.REJECTED, "Targets not found"))
-                .collect(Collectors.toList());
-    }
-}
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseConsumer.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventConsumer.java
similarity index 74%
rename from cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseConsumer.java
rename to cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventConsumer.java
index b1c0a32..3a7e0c6 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseConsumer.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventConsumer.java
@@ -18,7 +18,7 @@
  *  ============LICENSE_END=========================================================
  */
 
-package org.onap.cps.ncmp.api.impl.events.avcsubscription;
+package org.onap.cps.ncmp.api.impl.events.cmsubscription;
 
 import com.hazelcast.map.IMap;
 import io.cloudevents.CloudEvent;
@@ -35,7 +35,7 @@
 import org.onap.cps.ncmp.api.impl.utils.DataNodeHelper;
 import org.onap.cps.ncmp.api.impl.utils.SubscriptionEventResponseCloudMapper;
 import org.onap.cps.ncmp.api.impl.yangmodels.YangModelSubscriptionEvent;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionEventResponse;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent;
 import org.onap.cps.spi.model.DataNode;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.kafka.annotation.KafkaListener;
@@ -44,12 +44,13 @@
 @Component
 @Slf4j
 @RequiredArgsConstructor
-public class SubscriptionEventResponseConsumer {
+public class CmSubscriptionDmiOutEventConsumer {
 
     private final IMap<String, Set<String>> forwardedSubscriptionEventCache;
     private final SubscriptionPersistence subscriptionPersistence;
-    private final SubscriptionEventResponseMapper subscriptionEventResponseMapper;
-    private final SubscriptionEventResponseOutcome subscriptionEventResponseOutcome;
+    private final CmSubscriptionDmiOutEventToYangModelSubscriptionEventMapper
+            cmSubscriptionDmiOutEventToYangModelSubscriptionEventMapper;
+    private final CmSubscriptionNcmpOutEventPublisher cmSubscriptionNcmpOutEventPublisher;
     private final SubscriptionEventResponseCloudMapper subscriptionEventResponseCloudMapper;
 
     @Value("${notification.enabled:true}")
@@ -61,35 +62,35 @@
     /**
      * Consume subscription response event.
      *
-     * @param subscriptionEventResponseConsumerRecord the event to be consumed
+     * @param cmSubscriptionDmiOutConsumerRecord the event to be consumed
      */
     @KafkaListener(topics = "${app.ncmp.avc.subscription-response-topic}",
             containerFactory = "cloudEventConcurrentKafkaListenerContainerFactory")
     public void consumeSubscriptionEventResponse(
-            final ConsumerRecord<String, CloudEvent> subscriptionEventResponseConsumerRecord) {
-        final CloudEvent cloudEvent = subscriptionEventResponseConsumerRecord.value();
-        final String eventType = subscriptionEventResponseConsumerRecord.value().getType();
-        final SubscriptionEventResponse subscriptionEventResponse =
-                subscriptionEventResponseCloudMapper.toSubscriptionEventResponse(cloudEvent);
-        final String clientId = subscriptionEventResponse.getData().getClientId();
+            final ConsumerRecord<String, CloudEvent> cmSubscriptionDmiOutConsumerRecord) {
+        final CloudEvent cloudEvent = cmSubscriptionDmiOutConsumerRecord.value();
+        final String eventType = cmSubscriptionDmiOutConsumerRecord.value().getType();
+        final CmSubscriptionDmiOutEvent cmSubscriptionDmiOutEvent =
+                subscriptionEventResponseCloudMapper.toCmSubscriptionDmiOutEvent(cloudEvent);
+        final String clientId = cmSubscriptionDmiOutEvent.getData().getClientId();
         log.info("subscription event response of clientId: {} is received.", clientId);
-        final String subscriptionName = subscriptionEventResponse.getData().getSubscriptionName();
+        final String subscriptionName = cmSubscriptionDmiOutEvent.getData().getSubscriptionName();
         final String subscriptionEventId = clientId + subscriptionName;
         boolean createOutcomeResponse = false;
         if (forwardedSubscriptionEventCache.containsKey(subscriptionEventId)) {
             final Set<String> dmiNames = forwardedSubscriptionEventCache.get(subscriptionEventId);
-            dmiNames.remove(subscriptionEventResponse.getData().getDmiName());
+            dmiNames.remove(cmSubscriptionDmiOutEvent.getData().getDmiName());
             forwardedSubscriptionEventCache.put(subscriptionEventId, dmiNames,
                     ForwardedSubscriptionEventCacheConfig.SUBSCRIPTION_FORWARD_STARTED_TTL_SECS, TimeUnit.SECONDS);
             createOutcomeResponse = forwardedSubscriptionEventCache.get(subscriptionEventId).isEmpty();
         }
         if (subscriptionModelLoaderEnabled) {
-            updateSubscriptionEvent(subscriptionEventResponse);
+            updateSubscriptionEvent(cmSubscriptionDmiOutEvent);
         }
         if (createOutcomeResponse
                 && notificationFeatureEnabled
                 && hasNoPendingCmHandles(clientId, subscriptionName)) {
-            subscriptionEventResponseOutcome.sendResponse(subscriptionEventResponse, eventType);
+            cmSubscriptionNcmpOutEventPublisher.sendResponse(cmSubscriptionDmiOutEvent, eventType);
             forwardedSubscriptionEventCache.remove(subscriptionEventId);
         }
     }
@@ -108,10 +109,10 @@
         return true;
     }
 
-    private void updateSubscriptionEvent(final SubscriptionEventResponse subscriptionEventResponse) {
+    private void updateSubscriptionEvent(final CmSubscriptionDmiOutEvent cmSubscriptionDmiOutEvent) {
         final YangModelSubscriptionEvent yangModelSubscriptionEvent =
-                subscriptionEventResponseMapper
-                        .toYangModelSubscriptionEvent(subscriptionEventResponse);
+                cmSubscriptionDmiOutEventToYangModelSubscriptionEventMapper
+                        .toYangModelSubscriptionEvent(cmSubscriptionDmiOutEvent);
         subscriptionPersistence.saveSubscriptionEvent(yangModelSubscriptionEvent);
     }
 }
\ No newline at end of file
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionOutcomeMapper.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapper.java
similarity index 86%
rename from cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionOutcomeMapper.java
rename to cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapper.java
index 7803b98..99452c6 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionOutcomeMapper.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapper.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.cps.ncmp.api.impl.events.avcsubscription;
+package org.onap.cps.ncmp.api.impl.events.cmsubscription;
 
 import java.util.List;
 import java.util.Map;
@@ -26,19 +26,19 @@
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
 import org.mapstruct.Named;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionEventResponse;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionStatus;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_client.AdditionalInfo;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_client.AdditionalInfoDetail;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_client.SubscriptionEventOutcome;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.SubscriptionStatus;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_client.AdditionalInfo;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_client.AdditionalInfoDetail;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_client.CmSubscriptionNcmpOutEvent;
 import org.onap.cps.spi.exceptions.DataValidationException;
 
 @Mapper(componentModel = "spring")
-public interface SubscriptionOutcomeMapper {
+public interface CmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapper {
 
     @Mapping(source = "data.subscriptionStatus", target = "data.additionalInfo",
             qualifiedByName = "mapListOfSubscriptionStatusToAdditionalInfo")
-    SubscriptionEventOutcome toSubscriptionEventOutcome(SubscriptionEventResponse subscriptionEventResponse);
+    CmSubscriptionNcmpOutEvent toCmSubscriptionNcmpOutEvent(CmSubscriptionDmiOutEvent cmSubscriptionDmiOutEvent);
 
     /**
      * Maps list of SubscriptionStatus to an AdditionalInfo.
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseMapper.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventToYangModelSubscriptionEventMapper.java
similarity index 84%
rename from cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseMapper.java
rename to cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventToYangModelSubscriptionEventMapper.java
index dc122ee..77eebe3 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseMapper.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventToYangModelSubscriptionEventMapper.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.cps.ncmp.api.impl.events.avcsubscription;
+package org.onap.cps.ncmp.api.impl.events.cmsubscription;
 
 import java.util.List;
 import java.util.stream.Collectors;
@@ -26,18 +26,18 @@
 import org.mapstruct.Mapping;
 import org.mapstruct.Named;
 import org.onap.cps.ncmp.api.impl.yangmodels.YangModelSubscriptionEvent;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionEventResponse;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionStatus;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.SubscriptionStatus;
 
 @Mapper(componentModel = "spring")
-public interface SubscriptionEventResponseMapper {
+public interface CmSubscriptionDmiOutEventToYangModelSubscriptionEventMapper {
 
     @Mapping(source = "data.clientId", target = "clientId")
     @Mapping(source = "data.subscriptionName", target = "subscriptionName")
     @Mapping(source = "data.subscriptionStatus", target = "predicates.targetCmHandles",
             qualifiedByName = "mapSubscriptionStatusToCmHandleTargets")
     YangModelSubscriptionEvent toYangModelSubscriptionEvent(
-            SubscriptionEventResponse subscriptionEventResponse);
+            CmSubscriptionDmiOutEvent cmSubscriptionDmiOutEvent);
 
     /**
      * Maps SubscriptionStatus to list of TargetCmHandle.
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventConsumer.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventConsumer.java
similarity index 66%
rename from cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventConsumer.java
rename to cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventConsumer.java
index 8dfdc3c..c64ebac 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventConsumer.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventConsumer.java
@@ -18,7 +18,7 @@
  *  ============LICENSE_END=========================================================
  */
 
-package org.onap.cps.ncmp.api.impl.events.avcsubscription;
+package org.onap.cps.ncmp.api.impl.events.cmsubscription;
 
 import static org.onap.cps.ncmp.api.impl.operations.DatastoreType.PASSTHROUGH_OPERATIONAL;
 import static org.onap.cps.ncmp.api.impl.operations.DatastoreType.PASSTHROUGH_RUNNING;
@@ -28,9 +28,9 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.kafka.clients.consumer.ConsumerRecord;
 import org.onap.cps.ncmp.api.impl.subscriptions.SubscriptionPersistence;
-import org.onap.cps.ncmp.api.impl.utils.SubscriptionEventCloudMapper;
+import org.onap.cps.ncmp.api.impl.utils.CmSubscriptionEventCloudMapper;
 import org.onap.cps.ncmp.api.impl.yangmodels.YangModelSubscriptionEvent;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.client_to_ncmp.SubscriptionEvent;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.client_to_ncmp.CmSubscriptionNcmpInEvent;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.kafka.annotation.KafkaListener;
 import org.springframework.stereotype.Component;
@@ -39,12 +39,12 @@
 @Component
 @Slf4j
 @RequiredArgsConstructor
-public class SubscriptionEventConsumer {
+public class CmSubscriptionNcmpInEventConsumer {
 
-    private final SubscriptionEventForwarder subscriptionEventForwarder;
-    private final SubscriptionEventMapper subscriptionEventMapper;
+    private final CmSubscriptionNcmpInEventForwarder cmSubscriptionNcmpInEventForwarder;
+    private final CmSubscriptionNcmpInEventMapper cmSubscriptionNcmpInEventMapper;
     private final SubscriptionPersistence subscriptionPersistence;
-    private final SubscriptionEventCloudMapper subscriptionEventCloudMapper;
+    private final CmSubscriptionEventCloudMapper cmSubscriptionEventCloudMapper;
 
     @Value("${notification.enabled:true}")
     private boolean notificationFeatureEnabled;
@@ -62,23 +62,25 @@
     public void consumeSubscriptionEvent(final ConsumerRecord<String, CloudEvent> subscriptionEventConsumerRecord) {
         final CloudEvent cloudEvent = subscriptionEventConsumerRecord.value();
         final String eventType = subscriptionEventConsumerRecord.value().getType();
-        final SubscriptionEvent subscriptionEvent = subscriptionEventCloudMapper.toSubscriptionEvent(cloudEvent);
-        final String eventDatastore = subscriptionEvent.getData().getPredicates().getDatastore();
-        if (!eventDatastore.equals(PASSTHROUGH_RUNNING.getDatastoreName())
-                || eventDatastore.equals(PASSTHROUGH_OPERATIONAL.getDatastoreName())) {
+        final CmSubscriptionNcmpInEvent cmSubscriptionNcmpInEvent =
+                cmSubscriptionEventCloudMapper.toCmSubscriptionNcmpInEvent(cloudEvent);
+        final String eventDatastore = cmSubscriptionNcmpInEvent.getData().getPredicates().getDatastore();
+        if (!eventDatastore.equals(PASSTHROUGH_RUNNING.getDatastoreName()) || eventDatastore.equals(
+                PASSTHROUGH_OPERATIONAL.getDatastoreName())) {
             throw new UnsupportedOperationException(
                     "passthrough datastores are currently only supported for event subscriptions");
         }
-        if ("CM".equals(subscriptionEvent.getData().getDataType().getDataCategory())) {
+        if ("CM".equals(cmSubscriptionNcmpInEvent.getData().getDataType().getDataCategory())) {
             if (subscriptionModelLoaderEnabled) {
-                persistSubscriptionEvent(subscriptionEvent);
+                persistSubscriptionEvent(cmSubscriptionNcmpInEvent);
             }
             if ("subscriptionCreated".equals(cloudEvent.getType())) {
                 log.info("Subscription for ClientID {} with name {} ...",
-                        subscriptionEvent.getData().getSubscription().getClientID(),
-                        subscriptionEvent.getData().getSubscription().getName());
+                        cmSubscriptionNcmpInEvent.getData().getSubscription().getClientID(),
+                        cmSubscriptionNcmpInEvent.getData().getSubscription().getName());
                 if (notificationFeatureEnabled) {
-                    subscriptionEventForwarder.forwardCreateSubscriptionEvent(subscriptionEvent, eventType);
+                    cmSubscriptionNcmpInEventForwarder.forwardCreateSubscriptionEvent(cmSubscriptionNcmpInEvent,
+                            eventType);
                 }
             }
         } else {
@@ -86,9 +88,9 @@
         }
     }
 
-    private void persistSubscriptionEvent(final SubscriptionEvent subscriptionEvent) {
+    private void persistSubscriptionEvent(final CmSubscriptionNcmpInEvent cmSubscriptionNcmpInEvent) {
         final YangModelSubscriptionEvent yangModelSubscriptionEvent =
-            subscriptionEventMapper.toYangModelSubscriptionEvent(subscriptionEvent);
+                cmSubscriptionNcmpInEventMapper.toYangModelSubscriptionEvent(cmSubscriptionNcmpInEvent);
         subscriptionPersistence.saveSubscriptionEvent(yangModelSubscriptionEvent);
     }
 
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventForwarder.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventForwarder.java
new file mode 100644
index 0000000..4a17495
--- /dev/null
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventForwarder.java
@@ -0,0 +1,191 @@
+/*
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2023 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=========================================================
+ */
+
+package org.onap.cps.ncmp.api.impl.events.cmsubscription;
+
+import com.hazelcast.map.IMap;
+import io.cloudevents.CloudEvent;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.onap.cps.ncmp.api.impl.config.embeddedcache.ForwardedSubscriptionEventCacheConfig;
+import org.onap.cps.ncmp.api.impl.events.EventsPublisher;
+import org.onap.cps.ncmp.api.impl.subscriptions.SubscriptionPersistence;
+import org.onap.cps.ncmp.api.impl.subscriptions.SubscriptionStatus;
+import org.onap.cps.ncmp.api.impl.utils.CmSubscriptionEventCloudMapper;
+import org.onap.cps.ncmp.api.impl.utils.DmiServiceNameOrganizer;
+import org.onap.cps.ncmp.api.impl.yangmodels.YangModelCmHandle;
+import org.onap.cps.ncmp.api.impl.yangmodels.YangModelSubscriptionEvent;
+import org.onap.cps.ncmp.api.inventory.InventoryPersistence;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.client_to_ncmp.CmSubscriptionNcmpInEvent;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.Data;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_dmi.CmHandle;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_dmi.CmSubscriptionDmiInEvent;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+
+@Component
+@Slf4j
+@RequiredArgsConstructor
+public class CmSubscriptionNcmpInEventForwarder {
+
+    private final InventoryPersistence inventoryPersistence;
+    private final EventsPublisher<CloudEvent> eventsPublisher;
+    private final IMap<String, Set<String>> forwardedSubscriptionEventCache;
+    private final CmSubscriptionNcmpOutEventPublisher cmSubscriptionNcmpOutEventPublisher;
+    private final CmSubscriptionNcmpInEventMapper cmSubscriptionNcmpInEventMapper;
+    private final CmSubscriptionEventCloudMapper cmSubscriptionEventCloudMapper;
+    private final CmSubscriptionNcmpInEventToCmSubscriptionDmiInEventMapper
+            cmSubscriptionNcmpInEventToCmSubscriptionDmiInEventMapper;
+    private final SubscriptionPersistence subscriptionPersistence;
+    private final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
+    @Value("${app.ncmp.avc.subscription-forward-topic-prefix}")
+    private String dmiAvcSubscriptionTopicPrefix;
+
+    @Value("${ncmp.timers.subscription-forwarding.dmi-response-timeout-ms:30000}")
+    private int dmiResponseTimeoutInMs;
+
+    /**
+     * Forward subscription event.
+     *
+     * @param cmSubscriptionNcmpInEvent the event to be forwarded
+     */
+    public void forwardCreateSubscriptionEvent(final CmSubscriptionNcmpInEvent cmSubscriptionNcmpInEvent,
+            final String eventType) {
+        final List<String> cmHandleTargets = cmSubscriptionNcmpInEvent.getData().getPredicates().getTargets();
+        if (cmHandleTargets == null || cmHandleTargets.isEmpty() || cmHandleTargets.stream()
+                .anyMatch(id -> (id).contains("*"))) {
+            throw new UnsupportedOperationException(
+                    "CMHandle targets are required. \"Wildcard\" operations are not yet supported");
+        }
+        final Collection<YangModelCmHandle> yangModelCmHandles =
+                inventoryPersistence.getYangModelCmHandles(cmHandleTargets);
+        final Map<String, Map<String, Map<String, String>>> dmiPropertiesPerCmHandleIdPerServiceName =
+                DmiServiceNameOrganizer.getDmiPropertiesPerCmHandleIdPerServiceName(yangModelCmHandles);
+        findDmisAndRespond(cmSubscriptionNcmpInEvent, eventType, cmHandleTargets,
+                dmiPropertiesPerCmHandleIdPerServiceName);
+    }
+
+    private void findDmisAndRespond(final CmSubscriptionNcmpInEvent cmSubscriptionNcmpInEvent, final String eventType,
+            final List<String> cmHandleTargetsAsStrings,
+            final Map<String, Map<String, Map<String, String>>> dmiPropertiesPerCmHandleIdPerServiceName) {
+        final CmSubscriptionDmiOutEvent emptyCmSubscriptionDmiOutEvent =
+                new CmSubscriptionDmiOutEvent().withData(new Data());
+        emptyCmSubscriptionDmiOutEvent.getData()
+                .setSubscriptionName(cmSubscriptionNcmpInEvent.getData().getSubscription().getName());
+        emptyCmSubscriptionDmiOutEvent.getData()
+                .setClientId(cmSubscriptionNcmpInEvent.getData().getSubscription().getClientID());
+        final List<String> cmHandlesThatExistsInDb =
+                dmiPropertiesPerCmHandleIdPerServiceName.entrySet().stream().map(Map.Entry::getValue).map(Map::keySet)
+                        .flatMap(Set::stream).collect(Collectors.toList());
+
+        final List<String> targetCmHandlesDoesNotExistInDb = new ArrayList<>(cmHandleTargetsAsStrings);
+        targetCmHandlesDoesNotExistInDb.removeAll(cmHandlesThatExistsInDb);
+
+        final Set<String> dmisToRespond = new HashSet<>(dmiPropertiesPerCmHandleIdPerServiceName.keySet());
+
+        if (dmisToRespond.isEmpty() || !targetCmHandlesDoesNotExistInDb.isEmpty()) {
+            updatesCmHandlesToRejectedAndPersistSubscriptionEvent(cmSubscriptionNcmpInEvent,
+                    targetCmHandlesDoesNotExistInDb);
+        }
+        if (dmisToRespond.isEmpty()) {
+            cmSubscriptionNcmpOutEventPublisher.sendResponse(emptyCmSubscriptionDmiOutEvent,
+                    "subscriptionCreatedStatus");
+        } else {
+            startResponseTimeout(emptyCmSubscriptionDmiOutEvent, dmisToRespond);
+            final CmSubscriptionDmiInEvent cmSubscriptionDmiInEvent =
+                    cmSubscriptionNcmpInEventToCmSubscriptionDmiInEventMapper.toCmSubscriptionDmiInEvent(
+                            cmSubscriptionNcmpInEvent);
+            forwardEventToDmis(dmiPropertiesPerCmHandleIdPerServiceName, cmSubscriptionDmiInEvent, eventType);
+        }
+    }
+
+    private void startResponseTimeout(final CmSubscriptionDmiOutEvent emptyCmSubscriptionDmiOutEvent,
+                                      final Set<String> dmisToRespond) {
+        final String subscriptionClientId = emptyCmSubscriptionDmiOutEvent.getData().getClientId();
+        final String subscriptionName = emptyCmSubscriptionDmiOutEvent.getData().getSubscriptionName();
+        final String subscriptionEventId = subscriptionClientId + subscriptionName;
+
+        forwardedSubscriptionEventCache.put(subscriptionEventId, dmisToRespond,
+                ForwardedSubscriptionEventCacheConfig.SUBSCRIPTION_FORWARD_STARTED_TTL_SECS, TimeUnit.SECONDS);
+        final ResponseTimeoutTask responseTimeoutTask =
+            new ResponseTimeoutTask(forwardedSubscriptionEventCache, cmSubscriptionNcmpOutEventPublisher,
+                    emptyCmSubscriptionDmiOutEvent);
+
+        executorService.schedule(responseTimeoutTask, dmiResponseTimeoutInMs, TimeUnit.MILLISECONDS);
+    }
+
+    private void forwardEventToDmis(final Map<String, Map<String, Map<String, String>>> dmiNameCmHandleMap,
+            final CmSubscriptionDmiInEvent cmSubscriptionDmiInEvent, final String eventType) {
+        dmiNameCmHandleMap.forEach((dmiName, cmHandlePropertiesMap) -> {
+            final List<CmHandle> cmHandleTargets = cmHandlePropertiesMap.entrySet().stream().map(
+                    cmHandleAndProperties -> {
+                        final CmHandle cmHandle = new CmHandle();
+                        cmHandle.setId(cmHandleAndProperties.getKey());
+                        cmHandle.setAdditionalProperties(cmHandleAndProperties.getValue());
+                        return cmHandle;
+                    }).collect(Collectors.toList());
+
+            cmSubscriptionDmiInEvent.getData().getPredicates().setTargets(cmHandleTargets);
+            final String eventKey = createEventKey(cmSubscriptionDmiInEvent, dmiName);
+            final String dmiAvcSubscriptionTopic = dmiAvcSubscriptionTopicPrefix + dmiName;
+
+            final CloudEvent cmSubscriptionDmiInCloudEvent =
+                    cmSubscriptionEventCloudMapper.toCloudEvent(cmSubscriptionDmiInEvent, eventKey, eventType);
+            eventsPublisher.publishCloudEvent(dmiAvcSubscriptionTopic, eventKey, cmSubscriptionDmiInCloudEvent);
+        });
+    }
+
+    private String createEventKey(final CmSubscriptionDmiInEvent cmSubscriptionDmiInEvent, final String dmiName) {
+        return cmSubscriptionDmiInEvent.getData().getSubscription().getClientID() + "-"
+                       + cmSubscriptionDmiInEvent.getData().getSubscription().getName() + "-" + dmiName;
+    }
+
+    private void updatesCmHandlesToRejectedAndPersistSubscriptionEvent(
+            final CmSubscriptionNcmpInEvent cmSubscriptionNcmpInEvent,
+            final List<String> targetCmHandlesDoesNotExistInDb) {
+        final YangModelSubscriptionEvent yangModelSubscriptionEvent =
+                cmSubscriptionNcmpInEventMapper.toYangModelSubscriptionEvent(cmSubscriptionNcmpInEvent);
+        yangModelSubscriptionEvent.getPredicates()
+                .setTargetCmHandles(findRejectedCmHandles(targetCmHandlesDoesNotExistInDb, yangModelSubscriptionEvent));
+        subscriptionPersistence.saveSubscriptionEvent(yangModelSubscriptionEvent);
+    }
+
+    private static List<YangModelSubscriptionEvent.TargetCmHandle> findRejectedCmHandles(
+            final List<String> targetCmHandlesDoesNotExistInDb,
+            final YangModelSubscriptionEvent yangModelSubscriptionEvent) {
+        return yangModelSubscriptionEvent.getPredicates().getTargetCmHandles().stream()
+                    .filter(targetCmHandle -> targetCmHandlesDoesNotExistInDb.contains(targetCmHandle.getCmHandleId()))
+                    .map(target -> new YangModelSubscriptionEvent.TargetCmHandle(target.getCmHandleId(),
+                                    SubscriptionStatus.REJECTED, "Targets not found"))
+                .collect(Collectors.toList());
+    }
+}
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventMapper.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventMapper.java
similarity index 85%
rename from cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventMapper.java
rename to cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventMapper.java
index 35d94cc..ab93f13 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventMapper.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventMapper.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.cps.ncmp.api.impl.events.avcsubscription;
+package org.onap.cps.ncmp.api.impl.events.cmsubscription;
 
 import java.util.List;
 import java.util.stream.Collectors;
@@ -26,17 +26,17 @@
 import org.mapstruct.Mapping;
 import org.mapstruct.Named;
 import org.onap.cps.ncmp.api.impl.yangmodels.YangModelSubscriptionEvent;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.client_to_ncmp.SubscriptionEvent;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.client_to_ncmp.CmSubscriptionNcmpInEvent;
 
 @Mapper(componentModel = "spring")
-public interface SubscriptionEventMapper {
+public interface CmSubscriptionNcmpInEventMapper {
 
     @Mapping(source = "data.subscription.clientID", target = "clientId")
     @Mapping(source = "data.subscription.name", target = "subscriptionName")
     @Mapping(source = "data.predicates.targets", target = "predicates.targetCmHandles",
             qualifiedByName = "mapTargetsToCmHandleTargets")
     @Mapping(source = "data.predicates.datastore", target = "predicates.datastore")
-    YangModelSubscriptionEvent toYangModelSubscriptionEvent(SubscriptionEvent subscriptionEvent);
+    YangModelSubscriptionEvent toYangModelSubscriptionEvent(CmSubscriptionNcmpInEvent cmSubscriptionNcmpInEvent);
 
     /**
      * Maps list of Targets to list of TargetCmHandle.
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/ClientSubscriptionEventMapper.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventToCmSubscriptionDmiInEventMapper.java
similarity index 70%
rename from cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/ClientSubscriptionEventMapper.java
rename to cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventToCmSubscriptionDmiInEventMapper.java
index 59b1d09..f1c1664 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/ClientSubscriptionEventMapper.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventToCmSubscriptionDmiInEventMapper.java
@@ -18,17 +18,18 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.cps.ncmp.api.impl.events.avcsubscription;
+package org.onap.cps.ncmp.api.impl.events.cmsubscription;
 
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.client_to_ncmp.SubscriptionEvent;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.client_to_ncmp.CmSubscriptionNcmpInEvent;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_dmi.CmSubscriptionDmiInEvent;
 
 @Mapper(componentModel = "spring")
-public interface ClientSubscriptionEventMapper {
+public interface CmSubscriptionNcmpInEventToCmSubscriptionDmiInEventMapper {
 
     @Mapping(target = "data.predicates.targets", ignore = true)
-    org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_dmi.SubscriptionEvent toNcmpSubscriptionEvent(
-            SubscriptionEvent subscriptionEvent);
+    CmSubscriptionDmiInEvent toCmSubscriptionDmiInEvent(
+            CmSubscriptionNcmpInEvent cmSubscriptionNcmpInEvent);
 
 }
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseOutcome.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpOutEventPublisher.java
similarity index 65%
rename from cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseOutcome.java
rename to cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpOutEventPublisher.java
index 822ca55..38cc724 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseOutcome.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpOutEventPublisher.java
@@ -18,7 +18,7 @@
  *  ============LICENSE_END=========================================================
  */
 
-package org.onap.cps.ncmp.api.impl.events.avcsubscription;
+package org.onap.cps.ncmp.api.impl.events.cmsubscription;
 
 import io.cloudevents.CloudEvent;
 import java.util.List;
@@ -32,21 +32,22 @@
 import org.onap.cps.ncmp.api.impl.subscriptions.SubscriptionStatus;
 import org.onap.cps.ncmp.api.impl.utils.DataNodeHelper;
 import org.onap.cps.ncmp.api.impl.utils.SubscriptionOutcomeCloudMapper;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionEventResponse;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_client.SubscriptionEventOutcome;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_client.CmSubscriptionNcmpOutEvent;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 @Component
 @Slf4j
 @RequiredArgsConstructor
-public class SubscriptionEventResponseOutcome {
+public class CmSubscriptionNcmpOutEventPublisher {
 
     private final SubscriptionPersistence subscriptionPersistence;
 
     private final EventsPublisher<CloudEvent> outcomeEventsPublisher;
 
-    private final SubscriptionOutcomeMapper subscriptionOutcomeMapper;
+    private final CmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapper
+            cmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapper;
 
     private final SubscriptionOutcomeCloudMapper subscriptionOutcomeCloudMapper;
 
@@ -56,43 +57,43 @@
     /**
      * This is for construction of outcome message to be published for client apps.
      *
-     * @param subscriptionEventResponse event produced by Dmi Plugin
+     * @param cmSubscriptionDmiOutEvent event produced by Dmi Plugin
      */
-    public void sendResponse(final SubscriptionEventResponse subscriptionEventResponse, final String eventKey) {
-        final SubscriptionEventOutcome subscriptionEventOutcome =
-                formSubscriptionOutcomeMessage(subscriptionEventResponse);
-        final String subscriptionClientId = subscriptionEventResponse.getData().getClientId();
-        final String subscriptionName = subscriptionEventResponse.getData().getSubscriptionName();
+    public void sendResponse(final CmSubscriptionDmiOutEvent cmSubscriptionDmiOutEvent, final String eventKey) {
+        final CmSubscriptionNcmpOutEvent cmSubscriptionNcmpOutEvent =
+                formCmSubscriptionNcmpOutEvent(cmSubscriptionDmiOutEvent);
+        final String subscriptionClientId = cmSubscriptionDmiOutEvent.getData().getClientId();
+        final String subscriptionName = cmSubscriptionDmiOutEvent.getData().getSubscriptionName();
         final String subscriptionEventId = subscriptionClientId + subscriptionName;
         final CloudEvent subscriptionOutcomeCloudEvent =
-                subscriptionOutcomeCloudMapper.toCloudEvent(subscriptionEventOutcome,
+                subscriptionOutcomeCloudMapper.toCloudEvent(cmSubscriptionNcmpOutEvent,
                 subscriptionEventId, eventKey);
         outcomeEventsPublisher.publishCloudEvent(subscriptionOutcomeEventTopic,
                 subscriptionEventId, subscriptionOutcomeCloudEvent);
     }
 
-    private SubscriptionEventOutcome formSubscriptionOutcomeMessage(
-            final SubscriptionEventResponse subscriptionEventResponse) {
+    private CmSubscriptionNcmpOutEvent formCmSubscriptionNcmpOutEvent(
+            final CmSubscriptionDmiOutEvent cmSubscriptionDmiOutEvent) {
         final Map<String, Map<String, String>> cmHandleIdToStatusAndDetailsAsMap =
                 DataNodeHelper.cmHandleIdToStatusAndDetailsAsMapFromDataNode(
-                subscriptionPersistence.getCmHandlesForSubscriptionEvent(
-                        subscriptionEventResponse.getData().getClientId(),
-                        subscriptionEventResponse.getData().getSubscriptionName()));
-        final List<org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionStatus>
-                subscriptionStatusList = mapCmHandleIdStatusDetailsMapToSubscriptionStatusList(
-                        cmHandleIdToStatusAndDetailsAsMap);
-        subscriptionEventResponse.getData().setSubscriptionStatus(subscriptionStatusList);
-        return fromSubscriptionEventResponse(subscriptionEventResponse,
+                        subscriptionPersistence.getCmHandlesForSubscriptionEvent(
+                                cmSubscriptionDmiOutEvent.getData().getClientId(),
+                                cmSubscriptionDmiOutEvent.getData().getSubscriptionName()));
+        final List<org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.SubscriptionStatus>
+                subscriptionStatusList =
+                mapCmHandleIdStatusDetailsMapToSubscriptionStatusList(cmHandleIdToStatusAndDetailsAsMap);
+        cmSubscriptionDmiOutEvent.getData().setSubscriptionStatus(subscriptionStatusList);
+        return fromDmiOutEvent(cmSubscriptionDmiOutEvent,
                 decideOnNcmpEventResponseCodeForSubscription(cmHandleIdToStatusAndDetailsAsMap));
     }
 
-    private static List<org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionStatus>
+    private static List<org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.SubscriptionStatus>
         mapCmHandleIdStatusDetailsMapToSubscriptionStatusList(
             final Map<String, Map<String, String>> cmHandleIdToStatusAndDetailsAsMap) {
         return cmHandleIdToStatusAndDetailsAsMap.entrySet()
                 .stream().map(entryset -> {
-                    final org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionStatus
-                            subscriptionStatus = new org.onap.cps.ncmp.events.avcsubscription1_0_0
+                    final org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.SubscriptionStatus
+                            subscriptionStatus = new org.onap.cps.ncmp.events.cmsubscription1_0_0
                             .dmi_to_ncmp.SubscriptionStatus();
                     final String cmHandleId = entryset.getKey();
                     final Map<String, String> statusAndDetailsMap = entryset.getValue();
@@ -100,7 +101,7 @@
                     final String details = statusAndDetailsMap.get("details");
                     subscriptionStatus.setId(cmHandleId);
                     subscriptionStatus.setStatus(
-                            org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp
+                            org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp
                                     .SubscriptionStatus.Status.fromValue(status));
                     subscriptionStatus.setDetails(details);
                     return subscriptionStatus;
@@ -137,15 +138,16 @@
                 .allMatch(entryset -> entryset.containsValue(subscriptionStatus.toString()));
     }
 
-    private SubscriptionEventOutcome fromSubscriptionEventResponse(
-            final SubscriptionEventResponse subscriptionEventResponse,
+    private CmSubscriptionNcmpOutEvent fromDmiOutEvent(
+            final CmSubscriptionDmiOutEvent cmSubscriptionDmiOutEvent,
             final NcmpEventResponseCode ncmpEventResponseCode) {
 
-        final SubscriptionEventOutcome subscriptionEventOutcome =
-                subscriptionOutcomeMapper.toSubscriptionEventOutcome(subscriptionEventResponse);
-        subscriptionEventOutcome.getData().setStatusCode(Integer.parseInt(ncmpEventResponseCode.getStatusCode()));
-        subscriptionEventOutcome.getData().setStatusMessage(ncmpEventResponseCode.getStatusMessage());
+        final CmSubscriptionNcmpOutEvent cmSubscriptionNcmpOutEvent =
+                cmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapper.toCmSubscriptionNcmpOutEvent(
+                        cmSubscriptionDmiOutEvent);
+        cmSubscriptionNcmpOutEvent.getData().setStatusCode(Integer.parseInt(ncmpEventResponseCode.getStatusCode()));
+        cmSubscriptionNcmpOutEvent.getData().setStatusMessage(ncmpEventResponseCode.getStatusMessage());
 
-        return subscriptionEventOutcome;
+        return cmSubscriptionNcmpOutEvent;
     }
 }
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/ResponseTimeoutTask.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/ResponseTimeoutTask.java
similarity index 73%
rename from cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/ResponseTimeoutTask.java
rename to cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/ResponseTimeoutTask.java
index e3f5297..7f8cbf6 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avcsubscription/ResponseTimeoutTask.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/cmsubscription/ResponseTimeoutTask.java
@@ -18,21 +18,21 @@
  *  ============LICENSE_END=========================================================
  */
 
-package org.onap.cps.ncmp.api.impl.events.avcsubscription;
+package org.onap.cps.ncmp.api.impl.events.cmsubscription;
 
 import com.hazelcast.map.IMap;
 import java.util.Set;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionEventResponse;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent;
 
 @Slf4j
 @RequiredArgsConstructor
 public class ResponseTimeoutTask implements Runnable {
 
     private final IMap<String, Set<String>> forwardedSubscriptionEventCache;
-    private final SubscriptionEventResponseOutcome subscriptionEventResponseOutcome;
-    private final SubscriptionEventResponse subscriptionEventResponse;
+    private final CmSubscriptionNcmpOutEventPublisher cmSubscriptionNcmpOutEventPublisher;
+    private final CmSubscriptionDmiOutEvent cmSubscriptionDmiOutEvent;
 
     @Override
     public void run() {
@@ -40,11 +40,11 @@
     }
 
     private void generateTimeoutResponse() {
-        final String subscriptionClientId = subscriptionEventResponse.getData().getClientId();
-        final String subscriptionName = subscriptionEventResponse.getData().getSubscriptionName();
+        final String subscriptionClientId = cmSubscriptionDmiOutEvent.getData().getClientId();
+        final String subscriptionName = cmSubscriptionDmiOutEvent.getData().getSubscriptionName();
         final String subscriptionEventId = subscriptionClientId + subscriptionName;
         if (forwardedSubscriptionEventCache.containsKey(subscriptionEventId)) {
-            subscriptionEventResponseOutcome.sendResponse(subscriptionEventResponse,
+            cmSubscriptionNcmpOutEventPublisher.sendResponse(cmSubscriptionDmiOutEvent,
                     "subscriptionCreatedStatus");
             forwardedSubscriptionEventCache.remove(subscriptionEventId);
         }
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/CmSubscriptionEventCloudMapper.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/CmSubscriptionEventCloudMapper.java
new file mode 100644
index 0000000..5bc38e1
--- /dev/null
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/CmSubscriptionEventCloudMapper.java
@@ -0,0 +1,86 @@
+/*
+ *  ============LICENSE_START=======================================================
+ *  Copyright (C) 2023 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=========================================================
+ */
+
+package org.onap.cps.ncmp.api.impl.utils;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.cloudevents.CloudEvent;
+import io.cloudevents.core.CloudEventUtils;
+import io.cloudevents.core.builder.CloudEventBuilder;
+import io.cloudevents.core.data.PojoCloudEventData;
+import io.cloudevents.jackson.PojoCloudEventDataMapper;
+import java.net.URI;
+import java.util.UUID;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.client_to_ncmp.CmSubscriptionNcmpInEvent;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_dmi.CmSubscriptionDmiInEvent;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+@RequiredArgsConstructor
+public class CmSubscriptionEventCloudMapper {
+
+    private final ObjectMapper objectMapper;
+
+    private static String randomId = UUID.randomUUID().toString();
+
+    /**
+     * Maps CloudEvent object to CmSubscriptionNcmpInEvent.
+     *
+     * @param cloudEvent object.
+     * @return CmSubscriptionNcmpInEvent deserialized.
+     */
+    public CmSubscriptionNcmpInEvent toCmSubscriptionNcmpInEvent(final CloudEvent cloudEvent) {
+        final PojoCloudEventData<CmSubscriptionNcmpInEvent> deserializedCloudEvent = CloudEventUtils
+                .mapData(cloudEvent, PojoCloudEventDataMapper.from(objectMapper, CmSubscriptionNcmpInEvent.class));
+        if (deserializedCloudEvent == null) {
+            log.debug("No data found in the consumed event");
+            return null;
+        } else {
+            final CmSubscriptionNcmpInEvent cmSubscriptionNcmpInEvent = deserializedCloudEvent.getValue();
+            log.debug("Consuming event {}", cmSubscriptionNcmpInEvent);
+            return cmSubscriptionNcmpInEvent;
+        }
+    }
+
+    /**
+     * Maps CmSubscriptionDmiInEvent to a CloudEvent.
+     *
+     * @param cmSubscriptionDmiInEvent object.
+     * @param eventKey as String.
+     * @return CloudEvent built.
+     */
+    public CloudEvent toCloudEvent(final CmSubscriptionDmiInEvent cmSubscriptionDmiInEvent, final String eventKey,
+            final String eventType) {
+        try {
+            return CloudEventBuilder.v1().withId(randomId)
+                    .withSource(URI.create(cmSubscriptionDmiInEvent.getData().getSubscription().getClientID()))
+                    .withType(eventType).withExtension("correlationid", eventKey)
+                    .withDataSchema(URI.create("urn:cps:" + CmSubscriptionDmiInEvent.class.getName() + ":1.0.0"))
+                    .withData(objectMapper.writeValueAsBytes(cmSubscriptionDmiInEvent)).build();
+        } catch (final JsonProcessingException jsonProcessingException) {
+            log.error("The Cloud Event could not be constructed", jsonProcessingException);
+        }
+        return null;
+    }
+}
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/SubscriptionEventCloudMapper.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/SubscriptionEventCloudMapper.java
deleted file mode 100644
index 1561edc..0000000
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/SubscriptionEventCloudMapper.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- *  ============LICENSE_START=======================================================
- *  Copyright (C) 2023 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=========================================================
- */
-
-package org.onap.cps.ncmp.api.impl.utils;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import io.cloudevents.CloudEvent;
-import io.cloudevents.core.CloudEventUtils;
-import io.cloudevents.core.builder.CloudEventBuilder;
-import io.cloudevents.core.data.PojoCloudEventData;
-import io.cloudevents.jackson.PojoCloudEventDataMapper;
-import java.net.URI;
-import java.util.UUID;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.client_to_ncmp.SubscriptionEvent;
-import org.springframework.stereotype.Component;
-
-@Slf4j
-@Component
-@RequiredArgsConstructor
-public class SubscriptionEventCloudMapper {
-
-    private final ObjectMapper objectMapper;
-
-    private static String randomId = UUID.randomUUID().toString();
-
-    /**
-     * Maps CloudEvent object to SubscriptionEvent.
-     *
-     * @param cloudEvent object.
-     * @return SubscriptionEvent deserialized.
-     */
-    public SubscriptionEvent toSubscriptionEvent(final CloudEvent cloudEvent) {
-        final PojoCloudEventData<SubscriptionEvent> deserializedCloudEvent = CloudEventUtils
-                .mapData(cloudEvent, PojoCloudEventDataMapper.from(objectMapper, SubscriptionEvent.class));
-        if (deserializedCloudEvent == null) {
-            log.debug("No data found in the consumed event");
-            return null;
-        } else {
-            final SubscriptionEvent subscriptionEvent = deserializedCloudEvent.getValue();
-            log.debug("Consuming event {}", subscriptionEvent);
-            return subscriptionEvent;
-        }
-    }
-
-    /**
-     * Maps SubscriptionEvent to a CloudEvent.
-     *
-     * @param ncmpSubscriptionEvent object.
-     * @param eventKey as String.
-     * @return CloudEvent built.
-     */
-    public CloudEvent toCloudEvent(
-            final org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_dmi.SubscriptionEvent ncmpSubscriptionEvent,
-            final String eventKey, final String eventType) {
-        try {
-            return CloudEventBuilder.v1()
-                    .withId(randomId)
-                    .withSource(URI.create(ncmpSubscriptionEvent.getData().getSubscription().getClientID()))
-                    .withType(eventType)
-                    .withExtension("correlationid", eventKey)
-                    .withDataSchema(URI.create("urn:cps:"
-                            + org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_dmi
-                                    .SubscriptionEvent.class.getName() + ":1.0.0"))
-                    .withData(objectMapper.writeValueAsBytes(ncmpSubscriptionEvent)).build();
-        } catch (final JsonProcessingException jsonProcessingException) {
-            log.error("The Cloud Event could not be constructed", jsonProcessingException);
-        }
-        return null;
-    }
-}
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/SubscriptionEventResponseCloudMapper.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/SubscriptionEventResponseCloudMapper.java
index e00bb16..0721d1d 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/SubscriptionEventResponseCloudMapper.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/SubscriptionEventResponseCloudMapper.java
@@ -27,7 +27,7 @@
 import io.cloudevents.jackson.PojoCloudEventDataMapper;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionEventResponse;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent;
 import org.springframework.stereotype.Component;
 
 @Slf4j
@@ -38,21 +38,21 @@
     private final ObjectMapper objectMapper;
 
     /**
-     * Maps CloudEvent object to SubscriptionEventResponse.
+     * Maps CloudEvent object to CmSubscriptionDmiOutEvent.
      *
      * @param cloudEvent object
-     * @return SubscriptionEventResponse deserialized
+     * @return CmSubscriptionDmiOutEvent deserialized
      */
-    public SubscriptionEventResponse toSubscriptionEventResponse(final CloudEvent cloudEvent) {
-        final PojoCloudEventData<SubscriptionEventResponse> deserializedCloudEvent = CloudEventUtils
-                .mapData(cloudEvent, PojoCloudEventDataMapper.from(objectMapper, SubscriptionEventResponse.class));
+    public CmSubscriptionDmiOutEvent toCmSubscriptionDmiOutEvent(final CloudEvent cloudEvent) {
+        final PojoCloudEventData<CmSubscriptionDmiOutEvent> deserializedCloudEvent = CloudEventUtils
+                .mapData(cloudEvent, PojoCloudEventDataMapper.from(objectMapper, CmSubscriptionDmiOutEvent.class));
         if (deserializedCloudEvent == null) {
             log.debug("No data found in the consumed subscription response event");
             return null;
         } else {
-            final SubscriptionEventResponse subscriptionEventResponse = deserializedCloudEvent.getValue();
-            log.debug("Consuming subscription response event {}", subscriptionEventResponse);
-            return subscriptionEventResponse;
+            final CmSubscriptionDmiOutEvent cmSubscriptionDmiOutEvent = deserializedCloudEvent.getValue();
+            log.debug("Consuming subscription response event {}", cmSubscriptionDmiOutEvent);
+            return cmSubscriptionDmiOutEvent;
         }
     }
 }
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/SubscriptionOutcomeCloudMapper.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/SubscriptionOutcomeCloudMapper.java
index 9ea4487..af629a6 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/SubscriptionOutcomeCloudMapper.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/SubscriptionOutcomeCloudMapper.java
@@ -28,7 +28,7 @@
 import java.util.UUID;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_client.SubscriptionEventOutcome;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_client.CmSubscriptionNcmpOutEvent;
 import org.springframework.stereotype.Component;
 
 @Slf4j
@@ -41,12 +41,12 @@
     private static String randomId = UUID.randomUUID().toString();
 
     /**
-     * Maps SubscriptionEventOutcome to a CloudEvent.
+     * Maps CmSubscriptionNcmpOutEvent to a CloudEvent.
      *
-     * @param subscriptionEventOutcome object
+     * @param cmSubscriptionNcmpOutEvent object
      * @return CloudEvent
      */
-    public CloudEvent toCloudEvent(final SubscriptionEventOutcome subscriptionEventOutcome,
+    public CloudEvent toCloudEvent(final CmSubscriptionNcmpOutEvent cmSubscriptionNcmpOutEvent,
                                           final String eventKey, final String eventType) {
         try {
             return CloudEventBuilder.v1()
@@ -54,8 +54,8 @@
                     .withSource(URI.create("NCMP"))
                     .withType(eventType)
                     .withExtension("correlationid", eventKey)
-                    .withDataSchema(URI.create("urn:cps:" + SubscriptionEventOutcome.class.getName() + ":1.0.0"))
-                    .withData(objectMapper.writeValueAsBytes(subscriptionEventOutcome)).build();
+                    .withDataSchema(URI.create("urn:cps:" + CmSubscriptionNcmpOutEvent.class.getName() + ":1.0.0"))
+                    .withData(objectMapper.writeValueAsBytes(cmSubscriptionNcmpOutEvent)).build();
         } catch (final JsonProcessingException jsonProcessingException) {
             log.error("The Cloud Event could not be constructed", jsonProcessingException);
         }
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/ClientSubscriptionEventMapperSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/ClientCmSubscriptionNcmpInEventMapperSpec.groovy
similarity index 79%
rename from cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/ClientSubscriptionEventMapperSpec.groovy
rename to cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/ClientCmSubscriptionNcmpInEventMapperSpec.groovy
index b3d81e3..b08b51b 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/ClientSubscriptionEventMapperSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/ClientCmSubscriptionNcmpInEventMapperSpec.groovy
@@ -18,11 +18,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.cps.ncmp.api.impl.events.avcsubscription
+package org.onap.cps.ncmp.api.impl.events.cmsubscription
 
 import com.fasterxml.jackson.databind.ObjectMapper
 import org.mapstruct.factory.Mappers
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.client_to_ncmp.SubscriptionEvent;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.client_to_ncmp.CmSubscriptionNcmpInEvent
 import org.onap.cps.ncmp.utils.TestUtils
 import org.onap.cps.utils.JsonObjectMapper
 import org.springframework.beans.factory.annotation.Autowired
@@ -30,19 +30,19 @@
 import spock.lang.Specification
 
 @SpringBootTest(classes = [JsonObjectMapper, ObjectMapper])
-class ClientSubscriptionEventMapperSpec extends Specification {
+class ClientCmSubscriptionNcmpInEventMapperSpec extends Specification {
 
-    ClientSubscriptionEventMapper objectUnderTest = Mappers.getMapper(ClientSubscriptionEventMapper)
+    CmSubscriptionNcmpInEventToCmSubscriptionDmiInEventMapper objectUnderTest = Mappers.getMapper(CmSubscriptionNcmpInEventToCmSubscriptionDmiInEventMapper)
 
     @Autowired
     JsonObjectMapper jsonObjectMapper
 
     def 'Map clients subscription event to ncmps subscription event'() {
         given: 'a Subscription Event'
-            def jsonData = TestUtils.getResourceFileContent('avcSubscriptionCreationEvent.json')
-            def testEventToMap = jsonObjectMapper.convertJsonString(jsonData, SubscriptionEvent.class)
+            def jsonData = TestUtils.getResourceFileContent('cmSubscriptionNcmpInEvent.json')
+            def testEventToMap = jsonObjectMapper.convertJsonString(jsonData, CmSubscriptionNcmpInEvent.class)
         when: 'the client event is mapped to a ncmp subscription event'
-            def result = objectUnderTest.toNcmpSubscriptionEvent(testEventToMap)
+            def result = objectUnderTest.toCmSubscriptionDmiInEvent(testEventToMap)
         then: 'the resulting ncmp subscription event contains the correct clientId'
             assert result.getData().getSubscription().getClientID() == "SCO-9989752"
         and: 'subscription name'
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseConsumerSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventConsumerSpec.groovy
similarity index 93%
rename from cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseConsumerSpec.groovy
rename to cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventConsumerSpec.groovy
index 3e6d7a8..29defbe 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseConsumerSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventConsumerSpec.groovy
@@ -18,7 +18,7 @@
  *  ============LICENSE_END=========================================================
  */
 
-package org.onap.cps.ncmp.api.impl.events.avcsubscription
+package org.onap.cps.ncmp.api.impl.events.cmsubscription
 
 import com.fasterxml.jackson.databind.ObjectMapper
 import com.hazelcast.map.IMap
@@ -28,7 +28,7 @@
 import org.onap.cps.ncmp.api.impl.subscriptions.SubscriptionPersistenceImpl
 import org.onap.cps.ncmp.api.impl.utils.SubscriptionEventResponseCloudMapper
 import org.onap.cps.ncmp.api.kafka.MessagingBaseSpec
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionEventResponse
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent
 import org.onap.cps.ncmp.utils.TestUtils
 import org.onap.cps.spi.model.DataNodeBuilder
 import org.onap.cps.utils.JsonObjectMapper
@@ -36,7 +36,7 @@
 import org.springframework.boot.test.context.SpringBootTest
 
 @SpringBootTest(classes = [ObjectMapper, JsonObjectMapper])
-class SubscriptionEventResponseConsumerSpec extends MessagingBaseSpec {
+class CmSubscriptionDmiOutEventConsumerSpec extends MessagingBaseSpec {
 
     @Autowired
     JsonObjectMapper jsonObjectMapper
@@ -46,11 +46,11 @@
 
     IMap<String, Set<String>> mockForwardedSubscriptionEventCache = Mock(IMap<String, Set<String>>)
     def mockSubscriptionPersistence = Mock(SubscriptionPersistenceImpl)
-    def mockSubscriptionEventResponseMapper  = Mock(SubscriptionEventResponseMapper)
-    def mockSubscriptionEventResponseOutcome = Mock(SubscriptionEventResponseOutcome)
+    def mockSubscriptionEventResponseMapper  = Mock(CmSubscriptionDmiOutEventToYangModelSubscriptionEventMapper)
+    def mockSubscriptionEventResponseOutcome = Mock(CmSubscriptionNcmpOutEventPublisher)
     def mockSubscriptionEventResponseCloudMapper = new SubscriptionEventResponseCloudMapper(new ObjectMapper())
 
-    def objectUnderTest = new SubscriptionEventResponseConsumer(mockForwardedSubscriptionEventCache,
+    def objectUnderTest = new CmSubscriptionDmiOutEventConsumer(mockForwardedSubscriptionEventCache,
         mockSubscriptionPersistence, mockSubscriptionEventResponseMapper, mockSubscriptionEventResponseOutcome, mockSubscriptionEventResponseCloudMapper)
 
     def 'Consume Subscription Event Response where all DMIs have responded'() {
@@ -117,8 +117,8 @@
     }
 
     def getSubscriptionResponseEvent() {
-        def subscriptionResponseJsonData = TestUtils.getResourceFileContent('avcSubscriptionEventResponse.json')
-        return jsonObjectMapper.convertJsonString(subscriptionResponseJsonData, SubscriptionEventResponse.class)
+        def subscriptionResponseJsonData = TestUtils.getResourceFileContent('cmSubscriptionDmiOutEvent.json')
+        return jsonObjectMapper.convertJsonString(subscriptionResponseJsonData, CmSubscriptionDmiOutEvent.class)
     }
 
     def getCloudEventHavingSubscriptionResponseEvent() {
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionOutcomeMapperSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapperSpec.groovy
similarity index 78%
rename from cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionOutcomeMapperSpec.groovy
rename to cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapperSpec.groovy
index ea1b9e7..df5167d 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionOutcomeMapperSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapperSpec.groovy
@@ -18,12 +18,12 @@
  *  ============LICENSE_END=========================================================
  */
 
-package org.onap.cps.ncmp.api.impl.events.avcsubscription
+package org.onap.cps.ncmp.api.impl.events.cmsubscription
 
 import com.fasterxml.jackson.databind.ObjectMapper
 import org.mapstruct.factory.Mappers
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionEventResponse
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionStatus
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.SubscriptionStatus
 import org.onap.cps.ncmp.utils.TestUtils
 import org.onap.cps.spi.exceptions.DataValidationException
 import org.onap.cps.utils.JsonObjectMapper
@@ -33,19 +33,19 @@
 
 
 @SpringBootTest(classes = [JsonObjectMapper, ObjectMapper])
-class SubscriptionOutcomeMapperSpec extends Specification {
+class CmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapperSpec extends Specification {
 
-    SubscriptionOutcomeMapper objectUnderTest = Mappers.getMapper(SubscriptionOutcomeMapper)
+    CmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapper objectUnderTest = Mappers.getMapper(CmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapper)
 
     @Autowired
     JsonObjectMapper jsonObjectMapper
 
     def 'Map subscription event response to subscription event outcome'() {
         given: 'a Subscription Response Event'
-            def subscriptionResponseJsonData = TestUtils.getResourceFileContent('avcSubscriptionEventResponse.json')
-            def subscriptionResponseEvent = jsonObjectMapper.convertJsonString(subscriptionResponseJsonData, SubscriptionEventResponse.class)
+            def subscriptionResponseJsonData = TestUtils.getResourceFileContent('cmSubscriptionDmiOutEvent.json')
+            def subscriptionResponseEvent = jsonObjectMapper.convertJsonString(subscriptionResponseJsonData, CmSubscriptionDmiOutEvent.class)
         when: 'the subscription response event is mapped to a subscription event outcome'
-            def result = objectUnderTest.toSubscriptionEventOutcome(subscriptionResponseEvent)
+            def result = objectUnderTest.toCmSubscriptionNcmpOutEvent(subscriptionResponseEvent)
         then: 'the resulting subscription event outcome contains expected pending targets per details grouping'
             def pendingCmHandleTargetsPerDetails = result.getData().getAdditionalInfo().getPending()
             assert pendingCmHandleTargetsPerDetails.get(0).getDetails() == 'No reply from DMI yet'
@@ -60,12 +60,12 @@
 
     def 'Map subscription event response with null of subscription status list to subscription event outcome causes an exception'() {
         given: 'a Subscription Response Event'
-            def subscriptionResponseJsonData = TestUtils.getResourceFileContent('avcSubscriptionEventResponse.json')
-            def subscriptionResponseEvent = jsonObjectMapper.convertJsonString(subscriptionResponseJsonData, SubscriptionEventResponse.class)
+            def subscriptionResponseJsonData = TestUtils.getResourceFileContent('cmSubscriptionDmiOutEvent.json')
+            def subscriptionResponseEvent = jsonObjectMapper.convertJsonString(subscriptionResponseJsonData, CmSubscriptionDmiOutEvent.class)
         and: 'set subscription status list to null'
             subscriptionResponseEvent.getData().setSubscriptionStatus(subscriptionStatusList)
         when: 'the subscription response event is mapped to a subscription event outcome'
-            objectUnderTest.toSubscriptionEventOutcome(subscriptionResponseEvent)
+            objectUnderTest.toCmSubscriptionNcmpOutEvent(subscriptionResponseEvent)
         then: 'a DataValidationException is thrown with an expected exception details'
             def exception = thrown(DataValidationException)
             exception.details == 'SubscriptionStatus list cannot be null or empty'
@@ -77,10 +77,10 @@
 
     def 'Map subscription event response with subscription status list to subscription event outcome without any exception'() {
         given: 'a Subscription Response Event'
-            def subscriptionResponseJsonData = TestUtils.getResourceFileContent('avcSubscriptionEventResponse.json')
-            def subscriptionResponseEvent = jsonObjectMapper.convertJsonString(subscriptionResponseJsonData, SubscriptionEventResponse.class)
+            def subscriptionResponseJsonData = TestUtils.getResourceFileContent('cmSubscriptionDmiOutEvent.json')
+            def subscriptionResponseEvent = jsonObjectMapper.convertJsonString(subscriptionResponseJsonData, CmSubscriptionDmiOutEvent.class)
         when: 'the subscription response event is mapped to a subscription event outcome'
-            objectUnderTest.toSubscriptionEventOutcome(subscriptionResponseEvent)
+            objectUnderTest.toCmSubscriptionNcmpOutEvent(subscriptionResponseEvent)
         then: 'no exception thrown'
             noExceptionThrown()
     }
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseMapperSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventToYangModelSubscriptionEventMapperSpec.groovy
similarity index 82%
rename from cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseMapperSpec.groovy
rename to cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventToYangModelSubscriptionEventMapperSpec.groovy
index d07d9bb..036bedb 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseMapperSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionDmiOutEventToYangModelSubscriptionEventMapperSpec.groovy
@@ -18,12 +18,12 @@
  *  ============LICENSE_END=========================================================
  */
 
-package org.onap.cps.ncmp.api.impl.events.avcsubscription
+package org.onap.cps.ncmp.api.impl.events.cmsubscription
 
 import com.fasterxml.jackson.databind.ObjectMapper
 import org.mapstruct.factory.Mappers
 import org.onap.cps.ncmp.api.impl.subscriptions.SubscriptionStatus
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionEventResponse;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent
 import org.onap.cps.ncmp.utils.TestUtils
 import org.onap.cps.utils.JsonObjectMapper
 import org.springframework.beans.factory.annotation.Autowired
@@ -32,17 +32,17 @@
 
 
 @SpringBootTest(classes = [JsonObjectMapper, ObjectMapper])
-class SubscriptionEventResponseMapperSpec extends Specification {
+class CmSubscriptionDmiOutEventToYangModelSubscriptionEventMapperSpec extends Specification {
 
-    SubscriptionEventResponseMapper objectUnderTest = Mappers.getMapper(SubscriptionEventResponseMapper)
+    CmSubscriptionDmiOutEventToYangModelSubscriptionEventMapper objectUnderTest = Mappers.getMapper(CmSubscriptionDmiOutEventToYangModelSubscriptionEventMapper)
 
     @Autowired
     JsonObjectMapper jsonObjectMapper
 
     def 'Map subscription response event to yang model subscription event'() {
         given: 'a Subscription Response Event'
-            def jsonData = TestUtils.getResourceFileContent('avcSubscriptionEventResponse.json')
-            def testEventToMap = jsonObjectMapper.convertJsonString(jsonData, SubscriptionEventResponse.class)
+            def jsonData = TestUtils.getResourceFileContent('cmSubscriptionDmiOutEvent.json')
+            def testEventToMap = jsonObjectMapper.convertJsonString(jsonData, CmSubscriptionDmiOutEvent.class)
         when: 'the event is mapped to a yang model subscription'
             def result = objectUnderTest.toYangModelSubscriptionEvent(testEventToMap)
         then: 'the resulting yang model subscription event contains the correct clientId'
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventConsumerSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventConsumerSpec.groovy
similarity index 79%
rename from cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventConsumerSpec.groovy
rename to cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventConsumerSpec.groovy
index 430d122..24e829e 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventConsumerSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventConsumerSpec.groovy
@@ -18,30 +18,30 @@
  *  ============LICENSE_END=========================================================
  */
 
-package org.onap.cps.ncmp.api.impl.events.avcsubscription
+package org.onap.cps.ncmp.api.impl.events.cmsubscription
 
 import com.fasterxml.jackson.databind.ObjectMapper
 import io.cloudevents.CloudEvent
 import io.cloudevents.core.builder.CloudEventBuilder
 import org.apache.kafka.clients.consumer.ConsumerRecord
 import org.onap.cps.ncmp.api.impl.subscriptions.SubscriptionPersistence
-import org.onap.cps.ncmp.api.impl.utils.SubscriptionEventCloudMapper
+import org.onap.cps.ncmp.api.impl.utils.CmSubscriptionEventCloudMapper
 import org.onap.cps.ncmp.api.impl.yangmodels.YangModelSubscriptionEvent
 import org.onap.cps.ncmp.api.kafka.MessagingBaseSpec
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.client_to_ncmp.SubscriptionEvent;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.client_to_ncmp.CmSubscriptionNcmpInEvent
 import org.onap.cps.ncmp.utils.TestUtils
 import org.onap.cps.utils.JsonObjectMapper
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.boot.test.context.SpringBootTest
 
 @SpringBootTest(classes = [ObjectMapper, JsonObjectMapper])
-class SubscriptionEventConsumerSpec extends MessagingBaseSpec {
+class CmSubscriptionNcmpInEventConsumerSpec extends MessagingBaseSpec {
 
-    def mockSubscriptionEventForwarder = Mock(SubscriptionEventForwarder)
-    def mockSubscriptionEventMapper = Mock(SubscriptionEventMapper)
+    def mockCmSubscriptionNcmpInEventForwarder = Mock(CmSubscriptionNcmpInEventForwarder)
+    def mockCmSubscriptionNcmpInEventMapper = Mock(CmSubscriptionNcmpInEventMapper)
     def mockSubscriptionPersistence = Mock(SubscriptionPersistence)
-    def subscriptionEventCloudMapper = new SubscriptionEventCloudMapper(new ObjectMapper())
-    def objectUnderTest = new SubscriptionEventConsumer(mockSubscriptionEventForwarder, mockSubscriptionEventMapper, mockSubscriptionPersistence, subscriptionEventCloudMapper)
+    def cmSubscriptionEventCloudMapper = new CmSubscriptionEventCloudMapper(new ObjectMapper())
+    def objectUnderTest = new CmSubscriptionNcmpInEventConsumer(mockCmSubscriptionNcmpInEventForwarder, mockCmSubscriptionNcmpInEventMapper, mockSubscriptionPersistence, cmSubscriptionEventCloudMapper)
 
     def yangModelSubscriptionEvent = new YangModelSubscriptionEvent()
 
@@ -54,8 +54,8 @@
 
     def 'Consume, persist and forward valid CM create message'() {
         given: 'an event with data category CM'
-            def jsonData = TestUtils.getResourceFileContent('avcSubscriptionCreationEvent.json')
-            def testEventSent = jsonObjectMapper.convertJsonString(jsonData, SubscriptionEvent.class)
+            def jsonData = TestUtils.getResourceFileContent('cmSubscriptionNcmpInEvent.json')
+            def testEventSent = jsonObjectMapper.convertJsonString(jsonData, CmSubscriptionNcmpInEvent.class)
             testEventSent.getData().getDataType().setDataCategory(dataCategory)
             def testCloudEventSent = CloudEventBuilder.v1()
                 .withData(objectMapper.writeValueAsBytes(testEventSent))
@@ -71,11 +71,11 @@
         when: 'the valid event is consumed'
             objectUnderTest.consumeSubscriptionEvent(consumerRecord)
         then: 'the event is mapped to a yangModelSubscription'
-            numberOfTimesToPersist * mockSubscriptionEventMapper.toYangModelSubscriptionEvent(testEventSent) >> yangModelSubscriptionEvent
+            numberOfTimesToPersist * mockCmSubscriptionNcmpInEventMapper.toYangModelSubscriptionEvent(testEventSent) >> yangModelSubscriptionEvent
         and: 'the event is persisted'
             numberOfTimesToPersist * mockSubscriptionPersistence.saveSubscriptionEvent(yangModelSubscriptionEvent)
         and: 'the event is forwarded'
-            numberOfTimesToForward * mockSubscriptionEventForwarder.forwardCreateSubscriptionEvent(testEventSent, 'subscriptionCreated')
+            numberOfTimesToForward * mockCmSubscriptionNcmpInEventForwarder.forwardCreateSubscriptionEvent(testEventSent, 'subscriptionCreated')
         where: 'given values are used'
             scenario                                            |  dataCategory  |   dataType                  |  isNotificationEnabled     |   isModelLoaderEnabled      ||     numberOfTimesToForward        ||      numberOfTimesToPersist
             'Both model loader and notification are enabled'    |       'CM'     |   'subscriptionCreated'     |     true                   |        true                 ||         1                         ||             1
@@ -88,8 +88,8 @@
 
     def 'Consume event with wrong datastore causes an exception'() {
         given: 'an event'
-            def jsonData = TestUtils.getResourceFileContent('avcSubscriptionCreationEvent.json')
-            def testEventSent = jsonObjectMapper.convertJsonString(jsonData, SubscriptionEvent.class)
+            def jsonData = TestUtils.getResourceFileContent('cmSubscriptionNcmpInEvent.json')
+            def testEventSent = jsonObjectMapper.convertJsonString(jsonData, CmSubscriptionNcmpInEvent.class)
         and: 'datastore is set to a passthrough-running datastore'
             testEventSent.getData().getPredicates().setDatastore('operational')
             def testCloudEventSent = CloudEventBuilder.v1()
@@ -98,7 +98,7 @@
                 .withType('some-event-type')
                 .withSource(URI.create('some-resource'))
                 .withExtension('correlationid', 'test-cmhandle1').build()
-            def consumerRecord = new ConsumerRecord<String, SubscriptionEvent>('topic-name', 0, 0, 'event-key', testCloudEventSent)
+            def consumerRecord = new ConsumerRecord<String, CmSubscriptionNcmpInEvent>('topic-name', 0, 0, 'event-key', testCloudEventSent)
         when: 'the valid event is consumed'
             objectUnderTest.consumeSubscriptionEvent(consumerRecord)
         then: 'an operation not supported exception is thrown'
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventForwarderSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventForwarderSpec.groovy
similarity index 81%
rename from cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventForwarderSpec.groovy
rename to cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventForwarderSpec.groovy
index dd93bf6..29cf8be 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventForwarderSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventForwarderSpec.groovy
@@ -18,7 +18,7 @@
  *  ============LICENSE_END=========================================================
  */
 
-package org.onap.cps.ncmp.api.impl.events.avcsubscription
+package org.onap.cps.ncmp.api.impl.events.cmsubscription
 
 import com.fasterxml.jackson.databind.ObjectMapper
 import com.hazelcast.map.IMap
@@ -30,15 +30,16 @@
 import org.onap.cps.ncmp.api.impl.events.EventsPublisher
 import org.onap.cps.ncmp.api.impl.subscriptions.SubscriptionPersistence
 import org.onap.cps.ncmp.api.impl.subscriptions.SubscriptionStatus
-import org.onap.cps.ncmp.api.impl.utils.SubscriptionEventCloudMapper
+import org.onap.cps.ncmp.api.impl.utils.CmSubscriptionEventCloudMapper
 import org.onap.cps.ncmp.api.impl.yangmodels.YangModelCmHandle
 import org.onap.cps.ncmp.api.impl.yangmodels.YangModelSubscriptionEvent.TargetCmHandle
 import org.onap.cps.ncmp.api.inventory.InventoryPersistence
 import org.onap.cps.ncmp.api.kafka.MessagingBaseSpec
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.client_to_ncmp.SubscriptionEvent
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.Data
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionEventResponse
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_dmi.CmHandle;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.client_to_ncmp.CmSubscriptionNcmpInEvent
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.Data
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_dmi.CmHandle
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_dmi.CmSubscriptionDmiInEvent;
 import org.onap.cps.ncmp.utils.TestUtils
 import org.onap.cps.utils.JsonObjectMapper
 import org.spockframework.spring.SpringBean
@@ -47,11 +48,11 @@
 import spock.util.concurrent.BlockingVariable
 import java.util.concurrent.TimeUnit
 
-@SpringBootTest(classes = [ObjectMapper, JsonObjectMapper, SubscriptionEventForwarder])
-class SubscriptionEventForwarderSpec extends MessagingBaseSpec {
+@SpringBootTest(classes = [ObjectMapper, JsonObjectMapper, CmSubscriptionNcmpInEventForwarder])
+class CmSubscriptionNcmpInEventForwarderSpec extends MessagingBaseSpec {
 
     @Autowired
-    SubscriptionEventForwarder objectUnderTest
+    CmSubscriptionNcmpInEventForwarder objectUnderTest
 
     @SpringBean
     InventoryPersistence mockInventoryPersistence = Mock(InventoryPersistence)
@@ -60,15 +61,15 @@
     @SpringBean
     IMap<String, Set<String>> mockForwardedSubscriptionEventCache = Mock(IMap<String, Set<String>>)
     @SpringBean
-    SubscriptionEventCloudMapper subscriptionEventCloudMapper = new SubscriptionEventCloudMapper(new ObjectMapper())
+    CmSubscriptionEventCloudMapper subscriptionEventCloudMapper = new CmSubscriptionEventCloudMapper(new ObjectMapper())
     @SpringBean
-    SubscriptionEventResponseOutcome mockSubscriptionEventResponseOutcome = Mock(SubscriptionEventResponseOutcome)
+    CmSubscriptionNcmpOutEventPublisher mockCmSubscriptionNcmpOutEventPublisher = Mock(CmSubscriptionNcmpOutEventPublisher)
     @SpringBean
     SubscriptionPersistence mockSubscriptionPersistence = Mock(SubscriptionPersistence)
     @SpringBean
-    SubscriptionEventMapper subscriptionEventMapper = Mappers.getMapper(SubscriptionEventMapper)
+    CmSubscriptionNcmpInEventMapper cmSubscriptionNcmpInEventMapper = Mappers.getMapper(CmSubscriptionNcmpInEventMapper)
     @SpringBean
-    ClientSubscriptionEventMapper clientSubscriptionEventMapper = Mappers.getMapper(ClientSubscriptionEventMapper)
+    CmSubscriptionNcmpInEventToCmSubscriptionDmiInEventMapper cmSubscriptionNcmpInEventToCmSubscriptionDmiInEventMapper = Mappers.getMapper(CmSubscriptionNcmpInEventToCmSubscriptionDmiInEventMapper)
     @Autowired
     JsonObjectMapper jsonObjectMapper
     @Autowired
@@ -76,8 +77,8 @@
 
     def 'Forward valid CM create subscription and simulate timeout'() {
         given: 'an event'
-            def jsonData = TestUtils.getResourceFileContent('avcSubscriptionCreationEvent.json')
-            def testEventSent = jsonObjectMapper.convertJsonString(jsonData, SubscriptionEvent.class)
+            def jsonData = TestUtils.getResourceFileContent('cmSubscriptionNcmpInEvent.json')
+            def testEventSent = jsonObjectMapper.convertJsonString(jsonData, CmSubscriptionNcmpInEvent.class)
         and: 'the InventoryPersistence returns private properties for the supplied CM Handles'
             1 * mockInventoryPersistence.getYangModelCmHandles(["CMHandle1", "CMHandle2", "CMHandle3"]) >> [
                 createYangModelCmHandleWithDmiProperty(1, 1,"shape","circle"),
@@ -104,15 +105,15 @@
             )
         and: 'a separate thread has been created where the map is polled'
             1 * mockForwardedSubscriptionEventCache.containsKey("SCO-9989752cm-subscription-001") >> true
-            1 * mockSubscriptionEventResponseOutcome.sendResponse(*_)
+            1 * mockCmSubscriptionNcmpOutEventPublisher.sendResponse(*_)
         and: 'the subscription id is removed from the event cache map returning the asynchronous blocking variable'
             1 * mockForwardedSubscriptionEventCache.remove("SCO-9989752cm-subscription-001") >> {block.set(_)}
     }
 
     def 'Forward CM create subscription where target CM Handles are #scenario'() {
         given: 'an event'
-            def jsonData = TestUtils.getResourceFileContent('avcSubscriptionCreationEvent.json')
-            def testEventSent = jsonObjectMapper.convertJsonString(jsonData, SubscriptionEvent.class)
+            def jsonData = TestUtils.getResourceFileContent('cmSubscriptionNcmpInEvent.json')
+            def testEventSent = jsonObjectMapper.convertJsonString(jsonData, CmSubscriptionNcmpInEvent.class)
         and: 'the target CMHandles are set to #scenario'
             testEventSent.getData().getPredicates().setTargets(invalidTargets)
         when: 'the event is forwarded'
@@ -128,10 +129,10 @@
 
     def 'Forward valid CM create subscription where targets are not associated to any existing CMHandles'() {
         given: 'an event'
-            def jsonData = TestUtils.getResourceFileContent('avcSubscriptionCreationEvent.json')
-            def testEventSent = jsonObjectMapper.convertJsonString(jsonData, SubscriptionEvent.class)
+            def jsonData = TestUtils.getResourceFileContent('cmSubscriptionNcmpInEvent.json')
+            def testEventSent = jsonObjectMapper.convertJsonString(jsonData, CmSubscriptionNcmpInEvent.class)
         and: 'a subscription event response'
-            def emptySubscriptionEventResponse = new SubscriptionEventResponse().withData(new Data());
+            def emptySubscriptionEventResponse = new CmSubscriptionDmiOutEvent().withData(new Data());
             emptySubscriptionEventResponse.getData().setSubscriptionName('cm-subscription-001');
             emptySubscriptionEventResponse.getData().setClientId('SCO-9989752');
         and: 'the cm handles will be rejected'
@@ -139,7 +140,7 @@
                                      new TargetCmHandle('CMHandle2',SubscriptionStatus.REJECTED, 'Cm handle does not exist'),
                                      new TargetCmHandle('CMHandle3',SubscriptionStatus.REJECTED, 'Cm handle does not exist')]
         and: 'a yang model subscription event will be saved into the db with rejected cm handles'
-            def yangModelSubscriptionEvent = subscriptionEventMapper.toYangModelSubscriptionEvent(testEventSent)
+            def yangModelSubscriptionEvent = cmSubscriptionNcmpInEventMapper.toYangModelSubscriptionEvent(testEventSent)
             yangModelSubscriptionEvent.getPredicates().setTargetCmHandles(rejectedCmHandles)
         and: 'the InventoryPersistence returns no private properties for the supplied CM Handles'
             1 * mockInventoryPersistence.getYangModelCmHandles(["CMHandle1", "CMHandle2", "CMHandle3"]) >> []
@@ -175,7 +176,7 @@
         and: 'the persistence service save target cm handles of the yang model subscription event as rejected '
             1 * mockSubscriptionPersistence.saveSubscriptionEvent(yangModelSubscriptionEvent)
         and: 'subscription outcome has been sent'
-            1 * mockSubscriptionEventResponseOutcome.sendResponse(emptySubscriptionEventResponse, 'subscriptionCreatedStatus')
+            1 * mockCmSubscriptionNcmpOutEventPublisher.sendResponse(emptySubscriptionEventResponse, 'subscriptionCreatedStatus')
     }
 
     static def createYangModelCmHandleWithDmiProperty(id, dmiId,propertyName, propertyValue) {
@@ -190,9 +191,9 @@
     }
 
     def toSubscriptionEvent(cloudEvent) {
-        final PojoCloudEventData<org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_dmi.SubscriptionEvent> deserializedCloudEvent = CloudEventUtils
+        final PojoCloudEventData<CmSubscriptionDmiInEvent> deserializedCloudEvent = CloudEventUtils
             .mapData(cloudEvent, PojoCloudEventDataMapper.from(objectMapper,
-                org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_dmi.SubscriptionEvent.class));
+                CmSubscriptionDmiInEvent.class));
         if (deserializedCloudEvent == null) {
             return null;
         } else {
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventMapperSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventMapperSpec.groovy
similarity index 84%
rename from cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventMapperSpec.groovy
rename to cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventMapperSpec.groovy
index a2a80e8..3d034fc 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventMapperSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpInEventMapperSpec.groovy
@@ -18,13 +18,12 @@
  *  ============LICENSE_END=========================================================
  */
 
-package org.onap.cps.ncmp.api.impl.events.avcsubscription
+package org.onap.cps.ncmp.api.impl.events.cmsubscription
 
 import com.fasterxml.jackson.databind.ObjectMapper
 import org.mapstruct.factory.Mappers
-import org.onap.cps.ncmp.api.impl.events.avcsubscription.SubscriptionEventMapper
 import org.onap.cps.ncmp.api.impl.subscriptions.SubscriptionStatus
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.client_to_ncmp.SubscriptionEvent
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.client_to_ncmp.CmSubscriptionNcmpInEvent
 import org.onap.cps.ncmp.utils.TestUtils
 import org.onap.cps.utils.JsonObjectMapper
 import org.springframework.beans.factory.annotation.Autowired
@@ -33,17 +32,17 @@
 
 
 @SpringBootTest(classes = [JsonObjectMapper, ObjectMapper])
-class SubscriptionEventMapperSpec extends Specification {
+class CmSubscriptionNcmpInEventMapperSpec extends Specification {
 
-    SubscriptionEventMapper objectUnderTest = Mappers.getMapper(SubscriptionEventMapper)
+    CmSubscriptionNcmpInEventMapper objectUnderTest = Mappers.getMapper(CmSubscriptionNcmpInEventMapper)
 
     @Autowired
     JsonObjectMapper jsonObjectMapper
 
     def 'Map subscription event to yang model subscription event where #scenario'() {
         given: 'a Subscription Event'
-            def jsonData = TestUtils.getResourceFileContent('avcSubscriptionCreationEvent.json')
-            def testEventToMap = jsonObjectMapper.convertJsonString(jsonData, SubscriptionEvent.class)
+            def jsonData = TestUtils.getResourceFileContent('cmSubscriptionNcmpInEvent.json')
+            def testEventToMap = jsonObjectMapper.convertJsonString(jsonData, CmSubscriptionNcmpInEvent.class)
         when: 'the event is mapped to a yang model subscription'
             def result = objectUnderTest.toYangModelSubscriptionEvent(testEventToMap)
         then: 'the resulting yang model subscription event contains the correct clientId'
@@ -62,7 +61,7 @@
 
     def 'Map empty subscription event to yang model subscription event'() {
         given: 'a new Subscription Event with no data'
-            def testEventToMap = new SubscriptionEvent()
+            def testEventToMap = new CmSubscriptionNcmpInEvent()
         when: 'the event is mapped to a yang model subscription'
             def result = objectUnderTest.toYangModelSubscriptionEvent(testEventToMap)
         then: 'the resulting yang model subscription event contains null clientId'
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseOutcomeSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpOutEventPublisherSpec.groovy
similarity index 82%
rename from cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseOutcomeSpec.groovy
rename to cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpOutEventPublisherSpec.groovy
index a6c8712..07e2e3f 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/avcsubscription/SubscriptionEventResponseOutcomeSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/events/cmsubscription/CmSubscriptionNcmpOutEventPublisherSpec.groovy
@@ -18,7 +18,7 @@
  *  ============LICENSE_END=========================================================
  */
 
-package org.onap.cps.ncmp.api.impl.events.avcsubscription
+package org.onap.cps.ncmp.api.impl.events.cmsubscription
 
 import com.fasterxml.jackson.databind.ObjectMapper
 import io.cloudevents.CloudEvent
@@ -29,26 +29,26 @@
 import org.onap.cps.ncmp.api.impl.subscriptions.SubscriptionPersistence
 import org.onap.cps.ncmp.api.impl.utils.DataNodeBaseSpec
 import org.onap.cps.ncmp.api.impl.utils.SubscriptionOutcomeCloudMapper
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionEventResponse
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_client.SubscriptionEventOutcome;
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_client.CmSubscriptionNcmpOutEvent
 import org.onap.cps.ncmp.utils.TestUtils
 import org.onap.cps.utils.JsonObjectMapper
 import org.spockframework.spring.SpringBean
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.boot.test.context.SpringBootTest
 
-@SpringBootTest(classes = [ObjectMapper, JsonObjectMapper, SubscriptionOutcomeMapper, SubscriptionEventResponseOutcome])
-class SubscriptionEventResponseOutcomeSpec extends DataNodeBaseSpec {
+@SpringBootTest(classes = [ObjectMapper, JsonObjectMapper, CmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapper, CmSubscriptionNcmpOutEventPublisher])
+class CmSubscriptionNcmpOutEventPublisherSpec extends DataNodeBaseSpec {
 
     @Autowired
-    SubscriptionEventResponseOutcome objectUnderTest
+    CmSubscriptionNcmpOutEventPublisher objectUnderTest
 
     @SpringBean
     SubscriptionPersistence mockSubscriptionPersistence = Mock(SubscriptionPersistence)
     @SpringBean
-    EventsPublisher<CloudEvent> mockSubscriptionEventOutcomePublisher = Mock(EventsPublisher<CloudEvent>)
+    EventsPublisher<CloudEvent> mockCmSubscriptionNcmpOutEventPublisher = Mock(EventsPublisher<CloudEvent>)
     @SpringBean
-    SubscriptionOutcomeMapper subscriptionOutcomeMapper = Mappers.getMapper(SubscriptionOutcomeMapper)
+    CmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapper cmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapper = Mappers.getMapper(CmSubscriptionDmiOutEventToCmSubscriptionNcmpOutEventMapper)
     @SpringBean
     SubscriptionOutcomeCloudMapper subscriptionOutcomeCloudMapper = new SubscriptionOutcomeCloudMapper(new ObjectMapper())
 
@@ -60,11 +60,11 @@
 
     def 'Send response to the client apps successfully'() {
         given: 'a subscription response event'
-            def subscriptionResponseJsonData = TestUtils.getResourceFileContent('avcSubscriptionEventResponse.json')
-            def subscriptionResponseEvent = jsonObjectMapper.convertJsonString(subscriptionResponseJsonData, SubscriptionEventResponse.class)
+            def subscriptionResponseJsonData = TestUtils.getResourceFileContent('cmSubscriptionDmiOutEvent.json')
+            def subscriptionResponseEvent = jsonObjectMapper.convertJsonString(subscriptionResponseJsonData, CmSubscriptionDmiOutEvent.class)
         and: 'a subscription outcome event'
-            def subscriptionOutcomeJsonData = TestUtils.getResourceFileContent('avcSubscriptionOutcomeEvent2.json')
-            def subscriptionOutcomeEvent = jsonObjectMapper.convertJsonString(subscriptionOutcomeJsonData, SubscriptionEventOutcome.class)
+            def subscriptionOutcomeJsonData = TestUtils.getResourceFileContent('cmSubscriptionNcmpOutEvent2.json')
+            def subscriptionOutcomeEvent = jsonObjectMapper.convertJsonString(subscriptionOutcomeJsonData, CmSubscriptionNcmpOutEvent.class)
         and: 'a random id for the cloud event'
             SubscriptionOutcomeCloudMapper.randomId = 'some-id'
         and: 'a cloud event containing the outcome event'
@@ -72,7 +72,7 @@
                 .withData(objectMapper.writeValueAsBytes(subscriptionOutcomeEvent))
                 .withId('some-id')
                 .withType('subscriptionCreatedStatus')
-                .withDataSchema(URI.create('urn:cps:' + 'org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_client.SubscriptionEventOutcome' + ':1.0.0'))
+                .withDataSchema(URI.create('urn:cps:' + 'org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_client.CmSubscriptionNcmpOutEvent' + ':1.0.0'))
                 .withExtension("correlationid", 'SCO-9989752cm-subscription-001')
                 .withSource(URI.create('NCMP')).build()
         and: 'the persistence service return a data node that includes pending cm handles that makes it partial success'
@@ -80,21 +80,21 @@
         when: 'the response is being sent'
             objectUnderTest.sendResponse(subscriptionResponseEvent, 'subscriptionCreatedStatus')
         then: 'the publisher publish the cloud event with itself and expected parameters'
-            1 * mockSubscriptionEventOutcomePublisher.publishCloudEvent('subscription-response', 'SCO-9989752cm-subscription-001', testCloudEventSent)
+            1 * mockCmSubscriptionNcmpOutEventPublisher.publishCloudEvent('subscription-response', 'SCO-9989752cm-subscription-001', testCloudEventSent)
     }
 
     def 'Create subscription outcome message as expected'() {
         given: 'a subscription response event'
-            def subscriptionResponseJsonData = TestUtils.getResourceFileContent('avcSubscriptionEventResponse.json')
-            def subscriptionResponseEvent = jsonObjectMapper.convertJsonString(subscriptionResponseJsonData, SubscriptionEventResponse.class)
+            def subscriptionResponseJsonData = TestUtils.getResourceFileContent('cmSubscriptionDmiOutEvent.json')
+            def subscriptionResponseEvent = jsonObjectMapper.convertJsonString(subscriptionResponseJsonData, CmSubscriptionDmiOutEvent.class)
         and: 'a subscription outcome event'
-            def subscriptionOutcomeJsonData = TestUtils.getResourceFileContent('avcSubscriptionOutcomeEvent.json')
-            def subscriptionOutcomeEvent = jsonObjectMapper.convertJsonString(subscriptionOutcomeJsonData, SubscriptionEventOutcome.class)
+            def subscriptionOutcomeJsonData = TestUtils.getResourceFileContent('cmSubscriptionNcmpOutEvent.json')
+            def subscriptionOutcomeEvent = jsonObjectMapper.convertJsonString(subscriptionOutcomeJsonData, CmSubscriptionNcmpOutEvent.class)
         and: 'a status code and status message a per #scenarios'
             subscriptionOutcomeEvent.getData().setStatusCode(statusCode)
             subscriptionOutcomeEvent.getData().setStatusMessage(statusMessage)
         when: 'a subscription event outcome message is being formed'
-            def result = objectUnderTest.fromSubscriptionEventResponse(subscriptionResponseEvent, ncmpEventResponseCode)
+            def result = objectUnderTest.fromDmiOutEvent(subscriptionResponseEvent, ncmpEventResponseCode)
         then: 'the result will be equal to event outcome'
             result == subscriptionOutcomeEvent
         where: 'the following values are used'
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/utils/SubscriptionEventCloudMapperSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/utils/CmSubscriptionEventCloudMapperSpec.groovy
similarity index 81%
rename from cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/utils/SubscriptionEventCloudMapperSpec.groovy
rename to cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/utils/CmSubscriptionEventCloudMapperSpec.groovy
index ae61749..4f5d3b1 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/utils/SubscriptionEventCloudMapperSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/utils/CmSubscriptionEventCloudMapperSpec.groovy
@@ -23,7 +23,8 @@
 import com.fasterxml.jackson.core.JsonProcessingException
 import com.fasterxml.jackson.databind.ObjectMapper
 import io.cloudevents.core.builder.CloudEventBuilder
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.client_to_ncmp.SubscriptionEvent
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.client_to_ncmp.CmSubscriptionNcmpInEvent
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_dmi.CmSubscriptionDmiInEvent
 import org.onap.cps.ncmp.utils.TestUtils
 import org.onap.cps.utils.JsonObjectMapper
 import org.springframework.beans.factory.annotation.Autowired
@@ -31,7 +32,7 @@
 import spock.lang.Specification
 
 @SpringBootTest(classes = [ObjectMapper, JsonObjectMapper])
-class SubscriptionEventCloudMapperSpec extends Specification {
+class CmSubscriptionEventCloudMapperSpec extends Specification {
 
     @Autowired
     JsonObjectMapper jsonObjectMapper
@@ -41,12 +42,12 @@
 
     def spyObjectMapper = Spy(ObjectMapper)
 
-    def objectUnderTest = new SubscriptionEventCloudMapper(spyObjectMapper)
+    def objectUnderTest = new CmSubscriptionEventCloudMapper(spyObjectMapper)
 
     def 'Map the data of the cloud event to subscription event'() {
         given: 'a cloud event having a subscription event in the data part'
-            def jsonData = TestUtils.getResourceFileContent('avcSubscriptionCreationEvent.json')
-            def testEventData = jsonObjectMapper.convertJsonString(jsonData, SubscriptionEvent.class)
+            def jsonData = TestUtils.getResourceFileContent('cmSubscriptionNcmpInEvent.json')
+            def testEventData = jsonObjectMapper.convertJsonString(jsonData, CmSubscriptionNcmpInEvent.class)
             def testCloudEvent = CloudEventBuilder.v1()
                 .withData(objectMapper.writeValueAsBytes(testEventData))
                 .withId('some-event-id')
@@ -54,7 +55,7 @@
                 .withSource(URI.create('some-resource'))
                 .withExtension('correlationid', 'test-cmhandle1').build()
         when: 'the cloud event map to subscription event'
-            def resultSubscriptionEvent = objectUnderTest.toSubscriptionEvent(testCloudEvent)
+            def resultSubscriptionEvent = objectUnderTest.toCmSubscriptionNcmpInEvent(testCloudEvent)
         then: 'the subscription event resulted having expected values'
             resultSubscriptionEvent.getData() == testEventData.getData()
     }
@@ -68,16 +69,16 @@
                 .withSource(URI.create('some-resource'))
                 .withExtension('correlationid', 'test-cmhandle1').build()
         when: 'the cloud event map to subscription event'
-            def resultSubscriptionEvent = objectUnderTest.toSubscriptionEvent(testCloudEvent)
+            def resultSubscriptionEvent = objectUnderTest.toCmSubscriptionNcmpInEvent(testCloudEvent)
         then: 'the subscription event resulted having a null value'
             resultSubscriptionEvent == null
     }
 
     def 'Map the subscription event to data of the cloud event'() {
         given: 'a subscription event'
-            def jsonData = TestUtils.getResourceFileContent('avcSubscriptionCreationEventNcmpVersion.json')
+            def jsonData = TestUtils.getResourceFileContent('cmSubscriptionDmiInEvent.json')
             def testEventData = jsonObjectMapper.convertJsonString(jsonData,
-                                org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_dmi.SubscriptionEvent.class)
+                CmSubscriptionDmiInEvent.class)
             def testCloudEvent = CloudEventBuilder.v1()
                 .withData(objectMapper.writeValueAsBytes(testEventData))
                 .withId('some-id')
@@ -85,14 +86,14 @@
                 .withSource(URI.create('SCO-9989752'))
                 .withExtension('correlationid', 'test-cmhandle1').build()
         when: 'the subscription event map to data of cloud event'
-            SubscriptionEventCloudMapper.randomId = 'some-id'
+            CmSubscriptionEventCloudMapper.randomId = 'some-id'
             def resultCloudEvent = objectUnderTest.toCloudEvent(testEventData, 'some-event-key', 'subscriptionCreated')
         then: 'the subscription event resulted having expected values'
             resultCloudEvent.getData() == testCloudEvent.getData()
             resultCloudEvent.getId() == testCloudEvent.getId()
             resultCloudEvent.getType() == testCloudEvent.getType()
             resultCloudEvent.getSource() == URI.create('SCO-9989752')
-            resultCloudEvent.getDataSchema() == URI.create('urn:cps:org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_dmi.SubscriptionEvent:1.0.0')
+            resultCloudEvent.getDataSchema() == URI.create('urn:cps:org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_dmi.CmSubscriptionDmiInEvent:1.0.0')
     }
 
     def 'Map the subscription event to cloud event with JSON processing exception'() {
@@ -100,9 +101,9 @@
             def jsonProcessingException = new JsonProcessingException('The Cloud Event could not be constructed')
             spyObjectMapper.writeValueAsBytes(_) >> { throw jsonProcessingException }
         and: 'a subscription event of ncmp version'
-            def jsonData = TestUtils.getResourceFileContent('avcSubscriptionCreationEventNcmpVersion.json')
+            def jsonData = TestUtils.getResourceFileContent('cmSubscriptionDmiInEvent.json')
             def testEventData = jsonObjectMapper.convertJsonString(jsonData,
-                org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_dmi.SubscriptionEvent.class)
+                CmSubscriptionDmiInEvent.class)
         when: 'the subscription event map to cloud event'
             def expectedResult = objectUnderTest.toCloudEvent(testEventData, 'some-key', 'some-event-type')
         then: 'no exception is thrown since it has been handled already'
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/utils/SubscriptionEventResponseCloudMapperSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/utils/SubscriptionEventResponseCloudMapperSpec.groovy
index 9dcd0a6..89b13e2 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/utils/SubscriptionEventResponseCloudMapperSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/utils/SubscriptionEventResponseCloudMapperSpec.groovy
@@ -22,7 +22,7 @@
 
 import com.fasterxml.jackson.databind.ObjectMapper
 import io.cloudevents.core.builder.CloudEventBuilder
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.dmi_to_ncmp.SubscriptionEventResponse
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent
 import org.onap.cps.ncmp.utils.TestUtils
 import org.onap.cps.utils.JsonObjectMapper
 import org.springframework.beans.factory.annotation.Autowired
@@ -44,8 +44,8 @@
 
     def 'Map the cloud event to subscription event response'() {
         given: 'a cloud event having a subscription event response in the data part'
-            def jsonData = TestUtils.getResourceFileContent('avcSubscriptionEventResponse.json')
-            def testEventData = jsonObjectMapper.convertJsonString(jsonData, SubscriptionEventResponse.class)
+            def jsonData = TestUtils.getResourceFileContent('cmSubscriptionDmiOutEvent.json')
+            def testEventData = jsonObjectMapper.convertJsonString(jsonData, CmSubscriptionDmiOutEvent.class)
             def testCloudEvent = CloudEventBuilder.v1()
                 .withData(objectMapper.writeValueAsBytes(testEventData))
                 .withId('some-event-id')
@@ -53,7 +53,7 @@
                 .withSource(URI.create('some-resource'))
                 .withExtension('correlationid', 'test-cmhandle1').build()
         when: 'the cloud event map to subscription event response'
-            def resultSubscriptionEvent = objectUnderTest.toSubscriptionEventResponse(testCloudEvent)
+            def resultSubscriptionEvent = objectUnderTest.toCmSubscriptionDmiOutEvent(testCloudEvent)
         then: 'the subscription event resulted having expected values'
             resultSubscriptionEvent.getData() == testEventData.getData()
     }
@@ -67,7 +67,7 @@
                 .withSource(URI.create('some-resource'))
                 .withExtension('correlationid', 'test-cmhandle1').build()
         when: 'the cloud event map to subscription event response'
-            def resultSubscriptionEvent = objectUnderTest.toSubscriptionEventResponse(testCloudEvent)
+            def resultSubscriptionEvent = objectUnderTest.toCmSubscriptionDmiOutEvent(testCloudEvent)
         then: 'the subscription event response resulted having a null value'
             resultSubscriptionEvent == null
     }
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/utils/SubscriptionOutcomeCloudMapperSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/utils/SubscriptionOutcomeCloudMapperSpec.groovy
index ac055b5..d5670eb 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/utils/SubscriptionOutcomeCloudMapperSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/utils/SubscriptionOutcomeCloudMapperSpec.groovy
@@ -23,7 +23,7 @@
 import com.fasterxml.jackson.core.JsonProcessingException
 import com.fasterxml.jackson.databind.ObjectMapper
 import io.cloudevents.core.builder.CloudEventBuilder
-import org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_client.SubscriptionEventOutcome
+import org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_client.CmSubscriptionNcmpOutEvent
 import org.onap.cps.ncmp.utils.TestUtils
 import org.onap.cps.utils.JsonObjectMapper
 import org.springframework.beans.factory.annotation.Autowired
@@ -45,8 +45,8 @@
 
     def 'Map the subscription outcome to cloud event'() {
         given: 'a subscription event'
-            def jsonData = TestUtils.getResourceFileContent('avcSubscriptionOutcomeEvent.json')
-            def testEventData = jsonObjectMapper.convertJsonString(jsonData, SubscriptionEventOutcome.class)
+            def jsonData = TestUtils.getResourceFileContent('cmSubscriptionNcmpOutEvent.json')
+            def testEventData = jsonObjectMapper.convertJsonString(jsonData, CmSubscriptionNcmpOutEvent.class)
             def testCloudEvent = CloudEventBuilder.v1()
                 .withData(objectMapper.writeValueAsBytes(testEventData))
                 .withId('some-id')
@@ -61,7 +61,7 @@
             resultCloudEvent.getId() == testCloudEvent.getId()
             resultCloudEvent.getType() == testCloudEvent.getType()
             resultCloudEvent.getSource() == testCloudEvent.getSource()
-            resultCloudEvent.getDataSchema() == URI.create('urn:cps:org.onap.cps.ncmp.events.avcsubscription1_0_0.ncmp_to_client.SubscriptionEventOutcome:1.0.0')
+            resultCloudEvent.getDataSchema() == URI.create('urn:cps:org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_client.CmSubscriptionNcmpOutEvent:1.0.0')
     }
 
     def 'Map the subscription outcome to cloud event with JSON processing exception'() {
@@ -69,8 +69,8 @@
             def jsonProcessingException = new JsonProcessingException('The Cloud Event could not be constructed')
             spyObjectMapper.writeValueAsBytes(_) >> { throw jsonProcessingException }
         and: 'a cloud event having a subscription outcome in the data part'
-            def jsonData = TestUtils.getResourceFileContent('avcSubscriptionOutcomeEvent.json')
-            def testEventData = jsonObjectMapper.convertJsonString(jsonData, SubscriptionEventOutcome.class)
+            def jsonData = TestUtils.getResourceFileContent('cmSubscriptionNcmpOutEvent.json')
+            def testEventData = jsonObjectMapper.convertJsonString(jsonData, CmSubscriptionNcmpOutEvent.class)
         when: 'the subscription outcome map to cloud event'
             def expectedResult = objectUnderTest.toCloudEvent(testEventData, 'some-key', 'some-event-type')
         then: 'no exception is thrown since it has been handled already'
diff --git a/cps-ncmp-service/src/test/resources/avcSubscriptionCreationEventNcmpVersion.json b/cps-ncmp-service/src/test/resources/cmSubscriptionDmiInEvent.json
similarity index 100%
rename from cps-ncmp-service/src/test/resources/avcSubscriptionCreationEventNcmpVersion.json
rename to cps-ncmp-service/src/test/resources/cmSubscriptionDmiInEvent.json
diff --git a/cps-ncmp-service/src/test/resources/avcSubscriptionEventResponse.json b/cps-ncmp-service/src/test/resources/cmSubscriptionDmiOutEvent.json
similarity index 100%
rename from cps-ncmp-service/src/test/resources/avcSubscriptionEventResponse.json
rename to cps-ncmp-service/src/test/resources/cmSubscriptionDmiOutEvent.json
diff --git a/cps-ncmp-service/src/test/resources/avcSubscriptionCreationEvent.json b/cps-ncmp-service/src/test/resources/cmSubscriptionNcmpInEvent.json
similarity index 100%
rename from cps-ncmp-service/src/test/resources/avcSubscriptionCreationEvent.json
rename to cps-ncmp-service/src/test/resources/cmSubscriptionNcmpInEvent.json
diff --git a/cps-ncmp-service/src/test/resources/avcSubscriptionOutcomeEvent.json b/cps-ncmp-service/src/test/resources/cmSubscriptionNcmpOutEvent.json
similarity index 100%
rename from cps-ncmp-service/src/test/resources/avcSubscriptionOutcomeEvent.json
rename to cps-ncmp-service/src/test/resources/cmSubscriptionNcmpOutEvent.json
diff --git a/cps-ncmp-service/src/test/resources/avcSubscriptionOutcomeEvent2.json b/cps-ncmp-service/src/test/resources/cmSubscriptionNcmpOutEvent2.json
similarity index 100%
rename from cps-ncmp-service/src/test/resources/avcSubscriptionOutcomeEvent2.json
rename to cps-ncmp-service/src/test/resources/cmSubscriptionNcmpOutEvent2.json