ORAN CMNotify Karaf Feature Development

CMNotify Karaf feature development as part of SDNR
meta-feature. This feature relates to receiving
VES message for nbrListChangeNotification via
DMAAP and making updates to RuntimeDB/ConfigDB

Issue-ID: CCSDK-2130
Signed-off-by: SandeepLinux <Sandeep.Shah@ibm.com>
Change-Id: Iad5f0bfe855986a202a264b50e1a0591c7015fce
diff --git a/sdnr/northbound/CMNotify/model/pom.xml b/sdnr/northbound/CMNotify/model/pom.xml
new file mode 100644
index 0000000..dd8641c
--- /dev/null
+++ b/sdnr/northbound/CMNotify/model/pom.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ ============LICENSE_START=======================================================
+  ~ ONAP : ccsdk features
+  ~ ================================================================================
+  ~ Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+  ~ ================================================================================
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  ~ ============LICENSE_END=======================================================
+  ~
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onap.ccsdk.parent</groupId>
+        <artifactId>binding-parent</artifactId>
+        <version>1.5.2-SNAPSHOT</version>
+        <relativePath/>
+    </parent>
+
+    <groupId>org.onap.ccsdk.features.sdnr.northbound</groupId>
+    <artifactId>CMNotify-model</artifactId>
+    <version>0.7.1-SNAPSHOT</version>
+    <packaging>bundle</packaging>
+
+    <name>ccsdk-features :: sdnr-northbound :: ${project.artifactId}</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+            <artifactId>rfc6991</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <pluginManagement>
+            <plugins>
+                <plugin>
+                    <groupId>org.eclipse.m2e</groupId>
+                    <artifactId>lifecycle-mapping</artifactId>
+                    <version>1.0.0</version>
+                    <configuration>
+                        <lifecycleMappingMetadata>
+                            <pluginExecutions>
+                                <pluginExecution>
+                                    <pluginExecutionFilter>
+                                        <groupId>org.codehaus.mojo</groupId>
+                                        <artifactId>properties-maven-plugin</artifactId>
+                                        <versionRange>[1.0.0,)</versionRange>
+                                        <goals>
+                                            <goal>set-system-properties</goal>
+                                        </goals>
+                                    </pluginExecutionFilter>
+                                    <action>
+                                        <execute/>
+                                    </action>
+                                </pluginExecution>
+                            </pluginExecutions>
+                        </lifecycleMappingMetadata>
+                    </configuration>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+    </build>
+</project>
diff --git a/sdnr/northbound/CMNotify/model/src/main/yang/CM-NOTIFY-API.yang b/sdnr/northbound/CMNotify/model/src/main/yang/CM-NOTIFY-API.yang
new file mode 100644
index 0000000..834dc71
--- /dev/null
+++ b/sdnr/northbound/CMNotify/model/src/main/yang/CM-NOTIFY-API.yang
@@ -0,0 +1,123 @@
+module CM-NOTIFY-API {
+
+    namespace "org:onap:ccsdk";
+
+    prefix cm-notify-api;
+
+    revision "2020-02-24" {
+        description
+        "CM Notification API";
+    }
+
+    grouping cm-notification-response {
+      leaf response-code {
+        type string;
+      }
+      leaf response-message {
+        type string;
+      }
+      description
+        "Response payload for CM Notify RPC's";
+    }
+
+    grouping x-0005b9-lte-g {
+      leaf phy-cell-id-in-use {
+        type uint64;
+        default 0;
+      }
+      leaf pnf-name {
+        type string {
+          length "0..256";
+        }
+        description
+          "PNF name ";
+      }
+    }
+
+    grouping lte-ran-neighbor-list-in-use-lte-cell-g {
+      description
+        "Table containing the LTE EUTRA (i.e. intra-RAT) cell list.";
+      leaf plmnid {
+        type string {
+          length "0..6";
+        }
+        description
+          "PLMN ID consists of Mobile Country Code (MCC) and Mobile Network Code (MNC) {{bibref|3GPP-TS.23.003}}, {{bibref|3GPP-TS.24.008}}. Mobile Country Code consists of three digits and uniquely identifies the country of domicile of the subscriber. Mobile Network Code consists of two or three digits and identifies the Home PLMN within a country. For a 2-digit MNC the total string length of {{param}} is 5.";
+        reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.PLMNID";
+      }
+      leaf cid {
+         type string {
+           length "0..52";
+        }
+        description
+          "Cell Identity. {{bibref|3GPP-TS.36.331|Section 6.3.4}}. Combination of {{param|PLMNID}} and {{param}} constitutes the Cell Global ID (CGI).";
+        reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.CID";
+      }
+
+      leaf phy-cell-id {
+        type uint64 {
+          range "0..503";
+        }
+        description
+          "Physical cell ID, as specified in {{bibref|3GPP-TS.36.211|Section 6.11}}.";
+        reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.PhyCellID";
+      }
+      leaf pnf-name {
+        type string {
+          length "0..256";
+        }
+        description
+          "PNF name ";
+      }
+      leaf blacklisted {
+        type boolean;
+        description
+          "Indicates whether this neighbor cell is allowed for UEs as handover target or not. If {{true}}, handover is prohibited towards this cell. If {{false}}, handover is allowed toward this cell. The {{param}} parameter allows this cell to be prohibited as a handover target, while still allowing this cell to be included in the BCCH SIB4 or 5.";
+        reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.Blacklisted";
+      }
+
+      reference "BBF TR-196 2.0.3 full - FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.";
+    }
+
+
+    rpc nbrlist-change-notification {
+      description
+        "RAN Neighbor List change notification to configure RuntimeDB";
+         input {
+             leaf fap-service-number-of-entries-changed {
+               type uint64;
+               description
+                 "Number of cells for which neighbor list has changed";
+             }
+             list fap-service {
+               key "alias";
+               leaf alias {
+                 type string {
+                   length "1..64";
+                 }
+               }
+               leaf cid {
+                 type string {
+                 length "0..52";
+                 }
+               }
+               uses x-0005b9-lte-g;
+               leaf lte-cell-number-of-entries {
+                 type uint64;
+                 description
+                   "Number of cells in a neighbor list that was changed";
+               }
+               list lte-ran-neighbor-list-in-use-lte-cell-changed {
+                 key "plmnid cid";
+                 uses lte-ran-neighbor-list-in-use-lte-cell-g;
+                 description
+                   "Changed/Modified List of cells in a neighbor list for this fap service";
+             }
+           }
+        }
+
+        output {
+            uses cm-notification-response;
+        }
+    }
+}