NonRT-RIC A1 Northbound API
[nonrtric.git] / sdnc-a1-controller / northbound / vnfapi / model / src / main / yang / vnfsubmodule.yang
diff --git a/sdnc-a1-controller/northbound/vnfapi/model/src/main/yang/vnfsubmodule.yang b/sdnc-a1-controller/northbound/vnfapi/model/src/main/yang/vnfsubmodule.yang
new file mode 100755 (executable)
index 0000000..7899d52
--- /dev/null
@@ -0,0 +1,357 @@
+submodule vnfsubmodule {\r
+\r
+    belongs-to VNF-API { prefix "vnfapi"; }\r
+\r
+    // Last updated on 8-17-2016\r
+    /********************************************/\r
+    /*             vnf-instance                 */\r
+    /********************************************/\r
+       grouping vnf-instance-request-information {\r
+               container vnf-instance-request-information {\r
+            leaf request-version {\r
+                type string;\r
+            }\r
+            uses vnf-instance-topology-identifier;\r
+            uses region-identifier;\r
+                       list vnf-networks {\r
+                               key network-role;\r
+                               uses vnfapi:vnf-network;\r
+                               description "List of vnf networks to override preload";\r
+                       }\r
+               }\r
+       }\r
+\r
+    grouping region-identifier {\r
+        leaf tenant {\r
+            type string;\r
+        }\r
+        leaf aic-cloud-region {\r
+            type string;\r
+            description "The AIC cloud region which maps to contrail versions";\r
+        }\r
+    }\r
+\r
+\r
+    /***********************************************************/\r
+    /*             PRELOAD DATA - vnf-instance                 */\r
+    /***********************************************************/\r
+\r
+       container preload-vnf-instances {\r
+               uses preload-vnf-instance-model-information;\r
+       }\r
+       grouping preload-vnf-instance-model-information {\r
+               list vnf-instance-preload-list {\r
+                       key "vnf-instance-name vnf-model-id";\r
+                       leaf vnf-instance-name {\r
+                               type string;\r
+                               description "vnf-instance-name, aka generic-vnf-name";\r
+                       }\r
+                       leaf vnf-model-id {\r
+                               type string;\r
+                               description "vnf-model-id, aka generic-vnf-type";\r
+                       }\r
+                       uses vnf-instance-preload-data;\r
+               }\r
+       }\r
+\r
+       grouping vnf-instance-preload-data {\r
+               container vnf-instance-preload-data {\r
+                       uses vnf-instance-topology-information;\r
+                       uses vnfapi:oper-status;\r
+               }\r
+       }\r
+\r
+       grouping vnf-instance-topology-information {\r
+               container vnf-instance-topology-information {\r
+                       uses vnf-instance-identifiers;\r
+                       uses vnfapi:service-information;\r
+                       uses vnfapi:vnf-assignments;\r
+                       uses vnfapi:vnf-parameters;\r
+               }\r
+       }\r
+\r
+    // This is used by MSO request for assign,rollback,activate,delete, etc\r
+       grouping vnf-instance-topology-identifier {\r
+               leaf vnf-instance-name {\r
+                       type string;\r
+               }\r
+               leaf vnf-model-id {\r
+                       type string;\r
+               }\r
+               leaf vnf-instance-id {\r
+                       type string;\r
+               }\r
+       }\r
+\r
+    // container used in preload identifiers\r
+    grouping vnf-instance-identifiers {\r
+        container vnf-instance-identifiers {\r
+            uses vnf-instance-topology-identifier;\r
+        }\r
+    }\r
+\r
+       /***********************************************************/\r
+    /*               SERVICE_DATA  - vnf-instance              */\r
+       /***********************************************************/\r
+       container vnf-instances {\r
+               uses vnf-instance-model-infrastructure;\r
+       }\r
+       grouping vnf-instance-model-infrastructure {\r
+               list vnf-instance-list {\r
+                       key vnf-instance-id;\r
+                       leaf vnf-instance-id {\r
+                               type string;\r
+                               mandatory true;\r
+                               description "generic-vnf-id";\r
+                       }\r
+                       uses vnf-instance-service-data;\r
+                       uses vnfapi:service-status;\r
+               }\r
+       }\r
+\r
+    grouping vnf-instance-service-data {\r
+        container vnf-instance-service-data {\r
+            uses vnf-instance-configuration-information;\r
+            uses vf-module-relationship-list;\r
+            uses vnfapi:oper-status;\r
+        }\r
+    }\r
+\r
+       grouping vnf-instance-configuration-information {\r
+               uses vnfapi:sdnc-request-header;\r
+               uses vnfapi:request-information;\r
+               uses vnfapi:service-information;\r
+               uses vnf-instance-request-information;\r
+               uses vnf-instance-topology;\r
+       }\r
+\r
+    grouping vf-module-relationship-list {\r
+        list vf-module-relationship-list {\r
+            key "vf-module-id";\r
+            leaf vf-module-id {\r
+                type string;\r
+                description "vf-module-id";\r
+            }\r
+        }\r
+    }\r
+\r
+       grouping vnf-instance-topology-response-body {\r
+               leaf svc-request-id {\r
+                       type string;\r
+               }\r
+               leaf response-code {\r
+                       type string;\r
+               }\r
+               leaf response-message {\r
+                       type string;\r
+               }\r
+               leaf ack-final-indicator {\r
+                       type string;\r
+               }\r
+       }\r
+\r
+       grouping vnf-instance-information {\r
+               container vnf-instance-information {\r
+                       leaf vnf-instance-id {\r
+                               type string;\r
+                               description "vnf-instance-id";\r
+                       }\r
+               }\r
+       }\r
+\r
+       grouping vnf-instance-topology {\r
+               leaf vnf-instance-id {\r
+                       type string;\r
+                       description "vnf-instance-id";\r
+               }\r
+               uses vnf-instance-topology-information;\r
+       }\r
+\r
+\r
+       rpc vnf-instance-topology-operation {\r
+               input {\r
+                       uses sdnc-request-header;\r
+                       uses request-information;\r
+                       uses service-information;\r
+                       uses vnf-instance-request-information;\r
+               }\r
+               output {\r
+                       uses vnf-instance-topology-response-body;\r
+                       uses vnf-instance-information;\r
+                       uses service-information;\r
+               }\r
+       }\r
+\r
+       rpc preload-vnf-instance-topology-operation {\r
+               input {\r
+                       uses sdnc-request-header;\r
+                       uses request-information;\r
+                       uses vnf-instance-topology-information;\r
+               }\r
+               output {\r
+                       uses vnf-instance-topology-response-body;\r
+               }\r
+       }\r
+\r
+    /********************************************/\r
+    /*             vf-module                    */\r
+    /********************************************/\r
+       grouping vf-module-request-information {\r
+               container vf-module-request-information {\r
+            uses vnf-instance-topology-identifier;\r
+            uses region-identifier;\r
+            uses vf-module-topology-identifier;\r
+               }\r
+       }\r
+\r
+    grouping vf-module-identifiers {\r
+        container vf-module-identifiers {\r
+            uses vf-module-topology-identifier;\r
+        }\r
+    }\r
+\r
+    grouping vf-module-topology-identifier {\r
+        leaf vf-module-id {\r
+            type string;\r
+            description "vf-module id";\r
+        }\r
+        leaf vf-module-name {\r
+            type string;\r
+            description "vf-module-name";\r
+        }\r
+        leaf vf-module-model-id {\r
+            type string;\r
+            description "vf-module-type";\r
+        }\r
+    }\r
+\r
+    /***********************************************************/\r
+    /*             PRELOAD DATA  - vfmodule                    */\r
+    /***********************************************************/\r
+       container preload-vf-modules {\r
+               uses preload-vf-module-model-information;\r
+       }\r
+\r
+       grouping preload-vf-module-model-information {\r
+               list vf-module-preload-list {\r
+                       key "vf-module-name vf-module-model-id";\r
+                       leaf vf-module-name {\r
+                               type string;\r
+                               description "vf-module-name";\r
+                       }\r
+                       leaf vf-module-model-id {\r
+                               type string;\r
+                               description "vf-module-type";\r
+                       }\r
+                       uses vf-module-preload-data;\r
+               }\r
+       }\r
+\r
+       grouping vf-module-preload-data {\r
+               container vf-module-preload-data {\r
+                       uses vf-module-topology-information;\r
+                       uses vnfapi:oper-status;\r
+               }\r
+       }\r
+\r
+       grouping vf-module-topology-information {\r
+               container vf-module-topology-information {\r
+                       uses vf-module-identifiers;\r
+                       uses vnfapi:vnf-assignments;\r
+                       uses vnfapi:vnf-parameters;\r
+               }\r
+       }\r
+\r
+\r
+    /***********************************************************/\r
+    /*               SERVICE_DATA - vfmodule                   */\r
+    /***********************************************************/\r
+       container vf-modules {\r
+               uses vf-module-model-infrastructure;\r
+       }\r
+       grouping vf-module-model-infrastructure {\r
+               list vf-module-list {\r
+                       key vf-module-id;\r
+                       leaf vf-module-id {\r
+                               type string;\r
+                               mandatory true;\r
+                               description "vf-module-id";\r
+                       }\r
+                       uses vf-module-service-data;\r
+                       uses vnfapi:service-status;\r
+               }\r
+       }\r
+\r
+   grouping vf-module-service-data {\r
+     container vf-module-service-data {\r
+       uses vf-module-configuration-information;\r
+       uses vnfapi:oper-status;\r
+     }\r
+    }\r
+\r
+       grouping vf-module-configuration-information {\r
+               uses vnfapi:sdnc-request-header;\r
+               uses vnfapi:request-information;\r
+               uses vnfapi:service-information;\r
+               uses vf-module-request-information;\r
+               uses vf-module-topology;\r
+       }\r
+\r
+       grouping vf-module-topology-response-body {\r
+               leaf svc-request-id {\r
+                       type string;\r
+               }\r
+               leaf response-code {\r
+                       type string;\r
+               }\r
+               leaf response-message {\r
+                       type string;\r
+               }\r
+               leaf ack-final-indicator {\r
+                       type string;\r
+               }\r
+       }\r
+\r
+       grouping vf-module-information {\r
+               container vf-module-information {\r
+                       leaf vf-module-id {\r
+                               type string;\r
+                               description "vf-module-id";\r
+                       }\r
+               }\r
+       }\r
+\r
+       grouping vf-module-topology {\r
+               leaf vf-module-id {\r
+                       type string;\r
+                       description "vf-module-id";\r
+               }\r
+               uses vf-module-topology-information;\r
+       }\r
+\r
+\r
+       rpc vf-module-topology-operation {\r
+               input {\r
+                       uses sdnc-request-header;\r
+                       uses request-information;\r
+                       uses service-information;\r
+                       uses vf-module-request-information;\r
+               }\r
+               output {\r
+                       uses vf-module-topology-response-body;\r
+                       uses vf-module-information;\r
+                       uses service-information;\r
+               }\r
+       }\r
+\r
+       rpc preload-vf-module-topology-operation {\r
+               input {\r
+                       uses sdnc-request-header;\r
+                       uses request-information;\r
+                       uses vf-module-topology-information;\r
+               }\r
+               output {\r
+                       uses vf-module-topology-response-body;\r
+               }\r
+       }\r
+}\r