Inital yang modules for O-RAN-SC
[scp/oam/modeling.git] / data-model / yang / working / o-ran-sc / near-rt-ric / o-ran-sc-ric-xapp-desc-v1.yang
diff --git a/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-ric-xapp-desc-v1.yang b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-ric-xapp-desc-v1.yang
new file mode 100644 (file)
index 0000000..9e53578
--- /dev/null
@@ -0,0 +1,105 @@
+module o-ran-sc-ric-xapp-desc-v1 {
+    yang-version 1.1;
+    namespace "urn:o-ran:ric:xapp-desc:1.0";
+    prefix rxad;
+
+    import o-ran-sc-root-v1 {
+        prefix root;
+    }
+    import o-ran-sc-types-v1 {
+        prefix ot;
+    }
+
+    organization
+      "O-RAN Software Community";
+    contact
+      "www.o-ran.org";
+    description
+      "This module defines a generic xApp descriptor used for 
+       xApp lifecycle management
+       
+       Copyright 2020 the O-RAN Alliance.
+       
+       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.";
+
+    revision 2020-02-25 {
+        description
+          "Dependency to a common and abstract root module added.";
+        reference
+          "O-RAN-OAM-architecture-Specification (O1)";
+    }
+    revision 2020-01-29 {
+        description
+          "initial revision";
+        reference
+          "O-RAN-OAM-Interface-Specification (O1)";
+    }
+
+    // identity
+    identity near-realtime-ran-intelligent-controller {
+        base ot:control-function-type;
+        description
+          "Defines the identitiy near-rt-ric as contoll-function type.";
+    }
+
+    // grouping
+    // LCM: Generic xApp descriptor passed to xApp Manager (or OCO) during xApp deployment/undeployment
+    grouping xapp-descriptor {
+        uses root:control-base-grp;
+        leaf release-name {
+            type string;
+            description
+              "Name of the xapp to be visible in Kubernetes";
+        }
+        leaf version {
+            type string;
+            description
+              "The exact xapp helm chart version to install";
+        }
+        leaf namespace {
+            type string;
+            description
+              "Name of the namespace to which xApp is deployed in Kubernetes";
+        }
+        leaf override-file {
+            type string;
+            description
+              "JSON string of override file for 'helm install' command";
+        }
+        description
+          "xApp descriptor";
+    }
+
+    grouping ric-specific-grp {
+        container xapps {
+            list xapp {
+                key "name";
+                uses xapp-descriptor;
+                description
+                  "xApp descriptor";
+            }
+            description
+              "List of xApps to be managed.";
+        }
+        description
+          "Groups xApps realted artifacts. ";
+    }
+
+    // Inherit from controlled-function
+    augment "/root:controlled-element/root:controlled-function" {
+        when "derived-from-or-self(./root:function-type, 'rxad:near-realtime-ran-intelligent-controller')";
+        uses ric-specific-grp;
+        description
+          "Inheritance from root object class.";
+    }
+}
\ No newline at end of file