TAPI 2.0.2 release candidate

- based on https://github.com/OpenNetworkingFoundation/TAPI/pull/306

Change-Id: Ib668ff5dfdac78d06557c4d932f1fe614cdde344
diff --git a/models/tapi/src/main/yang/tapi-common@2018-03-07.yang b/models/tapi/src/main/yang/tapi-common@2018-03-07.yang
index 05c668b..f0a6f36 100644
--- a/models/tapi/src/main/yang/tapi-common@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-common@2018-03-07.yang
@@ -2,10 +2,10 @@
     namespace "urn:onf:otcc:yang:tapi-common";

     prefix tapi-common;

     organization "ONF OTCC (Open Transport Configuration & Control) Project";

-    contact "

-        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>

-        Project List: <mailto:transport-api@opennetworking.org>

-        Editor: Karthik Sethuraman

+    contact "
+        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
+        Project List: <mailto:transport-api@opennetworking.org>
+        Editor: Karthik Sethuraman
                 <mailto:karthik.sethuraman@necam.com>";

     description "

         This module contains TAPI Common Model definitions.

@@ -14,11 +14,11 @@
         License: This module is distributed under the Apache License 2.0

         ";

     revision 2018-03-07 {

-        description "ONF Transport API version 2.0.2

-        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .

-        <https://wiki.opennetworking.org/display/OIMT/IISOMI>

+        description "ONF Transport API version 2.0.2
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
+        <https://wiki.opennetworking.org/display/OIMT/IISOMI>
         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";

-        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model

+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";

     }

 

@@ -30,7 +30,9 @@
             type leafref {

                 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';

             }

+            description "none";

         }

+        description "none";

     }

 

     /***********************

@@ -276,13 +278,13 @@
                 }

                 enum POTENTIAL_AVAILABLE {

                     description "The supporting resources are present in the network but are shared with other clients; or require further configuration before they can be used; or both.

-                        o    When a potential resource is configured and allocated to a client it is moved to the “installed” state for that client.

-                        o    If the potential resource has been consumed (e.g. allocated to another client) it is moved to the “planned” state for all other clients.";

+                        o    When a potential resource is configured and allocated to a client it is moved to the installed state for that client.

+                        o    If the potential resource has been consumed (e.g. allocated to another client) it is moved to the planned state for all other clients.";

                 }

                 enum POTENTIAL_BUSY {

                     description "The supporting resources are present in the network but are shared with other clients; or require further configuration before they can be used; or both.

-                        o    When a potential resource is configured and allocated to a client it is moved to the “installed” state for that client.

-                        o    If the potential resource has been consumed (e.g. allocated to another client) it is moved to the “planned” state for all other clients.";

+                        o    When a potential resource is configured and allocated to a client it is moved to the installed state for that client.

+                        o    If the potential resource has been consumed (e.g. allocated to another client) it is moved to the planned state for all other clients.";

                 }

                 enum INSTALLED {

                     description "The resource is present in the network and is capable of providing the service expected.";

diff --git a/models/tapi/src/main/yang/tapi-connectivity@2018-03-07.yang b/models/tapi/src/main/yang/tapi-connectivity@2018-03-07.yang
index 5a03060..7c6867c 100644
--- a/models/tapi/src/main/yang/tapi-connectivity@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-connectivity@2018-03-07.yang
@@ -11,10 +11,10 @@
         prefix tapi-path-computation;

     }

     organization "ONF OTCC (Open Transport Configuration & Control) Project";

-    contact "

-        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>

-        Project List: <mailto:transport-api@opennetworking.org>

-        Editor: Karthik Sethuraman

+    contact "
+        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
+        Project List: <mailto:transport-api@opennetworking.org>
+        Editor: Karthik Sethuraman
                 <mailto:karthik.sethuraman@necam.com>";

     description "

         This module contains TAPI Connectivity Model definitions.

@@ -22,11 +22,11 @@
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.

         License: This module is distributed under the Apache License 2.0";

     revision 2018-03-07 {

-        description "ONF Transport API version 2.0.2

-        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .

-        <https://wiki.opennetworking.org/display/OIMT/IISOMI>

+        description "ONF Transport API version 2.0.2
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
+        <https://wiki.opennetworking.org/display/OIMT/IISOMI>
         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";

-        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model

+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";

     }

     augment "/tapi-common:context" {

@@ -39,23 +39,37 @@
     }

 

     /*************************

-    * definitions of refrences

+    * definitions of references

     *************************/

     grouping connectivity-service-ref {

         leaf connectivity-service-id {

             type leafref {

                 path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid';

             }

+            description "none";

         }

+        description "none";

     }

 

+    grouping connectivity-service-end-point-ref {

+    	uses connectivity-service-ref;

+    	leaf connectivity-service-end-point-id {

+	    	type leafref {

+	            path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point/tapi-connectivity:local-id';

+	        }

+	    	description "none";

+    	}

+    	description "none";

+    }

     grouping connection-end-point-ref {

         uses tapi-topology:owned-node-edge-point-ref;

         leaf connection-end-point-id {

             type leafref {

                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point/tapi-connectivity:uuid';

             }

+            description "none";

         }

+        description "none";

     }

 

     grouping connection-ref {

@@ -63,7 +77,9 @@
             type leafref {

                 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:uuid';

             }

+            description "none";

         }

+        description "none";

     }

 

     grouping switch-control-ref {

@@ -72,12 +88,25 @@
             type leafref {

                 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:switch-control/tapi-connectivity:uuid';

             }

+            description "none";

         }

+        description "none";

+    }

+    

+    grouping route-ref {

+    	uses connection-ref;

+        leaf route-id {

+            type leafref {

+                path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:route/tapi-connectivity:local-id';

+            }

+            description "none";

+        }

+        description "none";

     }

 

     /***********************

     * package object-classes

-    **********************/

+    **********************/ 

         grouping connection {

             list connection-end-point {

                 uses connection-end-point-ref;

@@ -86,13 +115,12 @@
                 min-elements 2;

                 description "none";

             }

-            leaf-list lower-connection {

-                type leafref {

-                    path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:uuid';

-                }

+            list lower-connection {

+                uses connection-ref;

+                key 'connection-id';

                 description "An Connection object supports a recursive aggregation relationship such that the internal construction of an Connection can be exposed as multiple lower level Connection objects (partitioning).

-                    Aggregation is used as for the Node/Topology  to allow changes in hierarchy.

-                    Connection aggregation reflects Node/Topology aggregation.

+                    Aggregation is used as for the Node/Topology  to allow changes in hierarchy. 

+                    Connection aggregation reflects Node/Topology aggregation. 

                     The FC represents a Cross-Connection in an NE. The Cross-Connection in an NE is not necessarily the lowest level of FC partitioning.";

             }

             list route {

@@ -128,10 +156,8 @@
                 config false;

                 description "none";

             }

-            leaf connectivity-service-end-point {

-                type leafref {

-                    path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point/tapi-connectivity:local-id';

-                }

+            container connectivity-service-end-point {

+                uses connectivity-service-end-point-ref;

                 description "none";

             }

             list parent-node-edge-point {

@@ -160,7 +186,7 @@
             uses tapi-common:resource-spec;

             uses tapi-common:operational-state-pac;

             uses tapi-common:termination-pac;

-            description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.

+            description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers. 

                 The structure of LTP supports all transport protocols including circuit and packet forms.";

         }

         grouping connectivity-constraint {

@@ -195,10 +221,8 @@
                 uses tapi-topology:latency-characteristic;

                 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";

             }

-            leaf coroute-inclusion {

-                type leafref {

-                    path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid';

-                }

+            container coroute-inclusion {

+                uses connectivity-service-ref;

                 description "none";

             }

             list diversity-exclusion {

@@ -216,10 +240,9 @@
                 uses connectivity-service-end-point;

                 description "none";

             }

-            leaf-list connection {

-                type leafref {

-                    path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:uuid';

-                }

+            list connection {

+                uses connection-ref;

+                key 'connection-id';

                 config false;

                 description "none";

             }

@@ -267,25 +290,24 @@
             uses tapi-common:local-class;

             uses tapi-common:admin-state-pac;

             description "The association of the FC to LTPs is made via EndPoints.

-                The EndPoint (EP) object class models the access to the FC function.

-                The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.

-                In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.

+                The EndPoint (EP) object class models the access to the FC function. 

+                The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.  

+                In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC. 

                 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.

-                The EP replaces the Protection Unit of a traditional protection model.

+                The EP replaces the Protection Unit of a traditional protection model. 

                 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";

         }

         grouping route {

-            leaf-list connection-end-point {

-                type leafref {

-                    path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point/tapi-connectivity:uuid';

-                }

+            list connection-end-point {

+                uses connection-end-point-ref;

+                key 'topology-id node-id owned-node-edge-point-id connection-end-point-id';

                 config false;

                 min-elements 2;

                 description "none";

             }

             uses tapi-common:local-class;

-            description "The FC Route (FcRoute) object class models the individual routes of an FC.

-                The route of an FC object is represented by a list of FCs at a lower level.

+            description "The FC Route (FcRoute) object class models the individual routes of an FC. 

+                The route of an FC object is represented by a list of FCs at a lower level. 

                 Note that depending on the service supported by an FC, an the FC can have multiple routes.";

         }

         grouping connectivity-context {

@@ -309,10 +331,9 @@
                 min-elements 1;

                 description "none";

             }

-            leaf-list selected-route {

-                type leafref {

-                    path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:route/tapi-connectivity:local-id';

-                }

+            list selected-route {

+                uses route-ref;

+                key 'connection-id route-id';

                 min-elements 1;

                 description "none";

             }

@@ -330,10 +351,10 @@
                 description "Indicates whether the switch selects from ingress to the FC or to egress of the FC, or both.";

             }

             uses tapi-common:local-class;

-            description "The class models the switched forwarding of traffic (traffic flow) between FcPorts (ConnectionEndPoints) and is present where there is protection functionality in the FC (Connection).

+            description "The class models the switched forwarding of traffic (traffic flow) between FcPorts (ConnectionEndPoints) and is present where there is protection functionality in the FC (Connection). 

                 If an FC exposes protection (having two or more FcPorts that provide alternative identical inputs/outputs), the FC will have one or more associated FcSwitch objects to represent the alternative flow choices visible at the edge of the FC.

-                The FC switch represents and defines a protection switch structure encapsulated in the FC.

-                Essentially performs one of the functions of the Protection Group in a traditional model. It associates to 2 or more FcPorts each playing the role of a Protection Unit.

+                The FC switch represents and defines a protection switch structure encapsulated in the FC. 

+                Essentially performs one of the functions of the Protection Group in a traditional model. It associates to 2 or more FcPorts each playing the role of a Protection Unit. 

                 One or more protection, i.e. standby/backup, FcPorts provide protection for one or more working (i.e. regular/main/preferred) FcPorts where either protection or working can feed one or more protected FcPort.

                 The switch may be used in revertive or non-revertive (symmetric) mode. When in revertive mode it may define a waitToRestore time.

                 It may be used in one of several modes including source switch, destination switched, source and destination switched etc (covering cases such as 1+1 and 1:1).

@@ -393,7 +414,7 @@
             }

             leaf is-frozen {

                 type boolean;

-                description "Temporarily prevents any switch action to be taken and, as such, freezes the current state.

+                description "Temporarily prevents any switch action to be taken and, as such, freezes the current state. 

                     Until the freeze is cleared, additional near-end external commands are rejected and fault condition changes and received APS messages are ignored.

                     All administrative controls of any aspect of protection are rejected.";

             }

diff --git a/models/tapi/src/main/yang/tapi-eth@2018-02-16.yang b/models/tapi/src/main/yang/tapi-eth@2018-03-07.yang
similarity index 98%
rename from models/tapi/src/main/yang/tapi-eth@2018-02-16.yang
rename to models/tapi/src/main/yang/tapi-eth@2018-03-07.yang
index db1e70e..1ce1261 100644
--- a/models/tapi/src/main/yang/tapi-eth@2018-02-16.yang
+++ b/models/tapi/src/main/yang/tapi-eth@2018-03-07.yang
@@ -21,13 +21,13 @@
         Source: TapiEth.uml

         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.

         License: This module is distributed under the Apache License 2.0";

-    revision 2018-02-16 {

-        description "ONF Transport API version 2.0.1
+    revision 2018-03-07 {

+        description "ONF Transport API version 2.0.2
         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
         <https://wiki.opennetworking.org/display/OIMT/IISOMI>
-        Changes in this revision: <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/blob/develop/change-log.md>";

+        Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";

         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
-                  <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/tree/develop/UML>";

+                  <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";

     }

     augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {

         uses eth-node-edge-point-spec;

diff --git a/models/tapi/src/main/yang/tapi-notification@2018-02-16.yang b/models/tapi/src/main/yang/tapi-notification@2018-03-07.yang
similarity index 98%
rename from models/tapi/src/main/yang/tapi-notification@2018-02-16.yang
rename to models/tapi/src/main/yang/tapi-notification@2018-03-07.yang
index ac259b7..450276f 100644
--- a/models/tapi/src/main/yang/tapi-notification@2018-02-16.yang
+++ b/models/tapi/src/main/yang/tapi-notification@2018-03-07.yang
@@ -15,13 +15,13 @@
         Source: TapiNotification.uml

         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.

         License: This module is distributed under the Apache License 2.0";

-    revision 2018-02-16 {

-        description "ONF Transport API version 2.0.1
+    revision 2018-03-07 {

+        description "ONF Transport API version 2.0.2
         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
         <https://wiki.opennetworking.org/display/OIMT/IISOMI>
-        Changes in this revision: <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/blob/develop/change-log.md>";

+        Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";

         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
-                  <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/tree/develop/UML>";

+                  <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";

     }

     augment "/tapi-common:context" {

         uses notification-context;

diff --git a/models/tapi/src/main/yang/tapi-oam@2018-02-16.yang b/models/tapi/src/main/yang/tapi-oam@2018-03-07.yang
similarity index 74%
rename from models/tapi/src/main/yang/tapi-oam@2018-02-16.yang
rename to models/tapi/src/main/yang/tapi-oam@2018-03-07.yang
index f620571..f888fa6 100644
--- a/models/tapi/src/main/yang/tapi-oam@2018-02-16.yang
+++ b/models/tapi/src/main/yang/tapi-oam@2018-03-07.yang
@@ -21,13 +21,13 @@
         Source: TapiOam.uml

         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.

         License: This module is distributed under the Apache License 2.0";

-    revision 2018-02-16 {

-        description "ONF Transport API version 2.0.1
+    revision 2018-03-07 {

+        description "ONF Transport API version 2.0.2
         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
         <https://wiki.opennetworking.org/display/OIMT/IISOMI>
-        Changes in this revision: <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/blob/develop/change-log.md>";

+        Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";

         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
-                  <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/tree/develop/UML>";

+                  <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";

     }

     augment "/tapi-common:context" {

         uses oam-context;

@@ -41,6 +41,73 @@
         uses mep-mip-list;

         description "none";

     }

+    

+    /*************************

+    * definitions of references

+    *************************/

+    grouping oam-service-ref {

+        leaf oam-service-id {

+            type leafref {

+                path '/tapi-common:context/tapi-oam:oam-service/tapi-oam:uuid';

+            }

+            description "none";

+        }

+        description "none";

+    }

+

+    grouping oam-service-end-point-ref {

+    	uses oam-service-ref;

+    	leaf oam-service-end-point-id {

+	    	type leafref {

+	            path '/tapi-common:context/tapi-oam:oam-service/tapi-oam:end-point/tapi-oam:local-id';

+	        }

+	    	description "none";

+    	}

+    	description "none";

+    }

+    grouping meg-ref {

+        leaf meg-id {

+            type leafref {

+            	path '/tapi-common:context/tapi-oam:meg/tapi-oam:uuid';

+            }

+            description "none";

+        }

+        description "none";

+    }

+

+    grouping mep-ref {

+    	uses meg-ref;

+        leaf mep-id {

+            type leafref {

+            	path '/tapi-common:context/tapi-oam:meg/tapi-oam:mep/tapi-oam:local-id';

+            }

+            description "none";

+        }

+        description "none";

+    }

+    

+    grouping mip-ref {

+    	uses meg-ref;

+        leaf mip-id {

+            type leafref {

+            	path '/tapi-common:context/tapi-oam:meg/tapi-oam:mip/tapi-oam:local-id';

+            }

+            description "none";

+        }

+        description "none";

+    }

+    

+    grouping me-ref {

+    	uses meg-ref;

+        leaf me-id {

+            type leafref {

+            	path '/tapi-common:context/tapi-oam:meg/tapi-oam:me/tapi-oam:local-id';

+            }

+            description "none";

+        }

+        description "none";

+    }

+    

     /***********************

     * package object-classes

     **********************/ 

@@ -128,25 +195,21 @@
             description "none";

         }

         grouping me {

-            leaf-list mep {

-                type leafref {

-                    path '/tapi-common:context/tapi-oam:meg/tapi-oam:mep/tapi-oam:local-id';

-                }

+            list mep {

+                uses mep-ref;

+                key 'meg-id mep-id';

                 config false;

                 max-elements 2;

                 description "none";

             }

-            leaf-list mip {

-                type leafref {

-                    path '/tapi-common:context/tapi-oam:meg/tapi-oam:mip/tapi-oam:local-id';

-                }

+            list mip {

+            	uses mip-ref;

+                key 'meg-id mip-id';

                 config false;

                 description "none";

             }

-            leaf connection-route {

-                type leafref {

-                    path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:route/tapi-connectivity:local-id';

-                }

+            container connection-route {

+            	uses tapi-connectivity:route-ref;

                 config false;

                 description "none";

             }

@@ -163,10 +226,8 @@
             description "none";

         }

         grouping oam-service {

-            leaf meg {

-                type leafref {

-                    path '/tapi-common:context/tapi-oam:meg/tapi-oam:uuid';

-                }

+            container meg {

+            	uses meg-ref;

                 config false;

                 description "none";

             }

@@ -194,16 +255,12 @@
             description "none";

         }

         grouping oam-service-end-point {

-            leaf service-interface-point {

-                type leafref {

-                    path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';

-                }

+        	container service-interface-point {

+                uses tapi-common:service-interface-point-ref;

                 description "none";

             }

-            leaf connectivity-service-end-point {

-                type leafref {

-                    path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point/tapi-connectivity:local-id';

-                }

+        	container connectivity-service-end-point {

+                uses tapi-connectivity:connectivity-service-end-point-ref;

                 description "none";

             }

             list pro-active-measurement-job {

@@ -216,10 +273,8 @@
                 uses on-demand-measurement-job;

                 description "none";

             }

-            leaf associated-mep {

-                type leafref {

-                    path '/tapi-common:context/tapi-oam:meg/tapi-oam:mep/tapi-oam:local-id';

-                }

+            container associated-mep {

+                uses mep-ref;

                 config false;

                 description "none";

             }

@@ -232,16 +287,14 @@
             description "none";

         }

         grouping mep-mip-list {

-            leaf-list mip {

-                type leafref {

-                    path '/tapi-common:context/tapi-oam:meg/tapi-oam:mip/tapi-oam:local-id';

-                }

+            list mip {

+            	uses mip-ref;

+                key 'meg-id mip-id';

                 description "none";

             }

-            leaf-list mep {

-                type leafref {

-                    path '/tapi-common:context/tapi-oam:meg/tapi-oam:mep/tapi-oam:local-id';

-                }

+            list mep {

+            	uses mep-ref;

+                key 'meg-id mep-id';

                 description "none";

             }

             description "none";

diff --git a/models/tapi/src/main/yang/tapi-odu@2018-02-16.yang b/models/tapi/src/main/yang/tapi-odu@2018-03-07.yang
similarity index 98%
rename from models/tapi/src/main/yang/tapi-odu@2018-02-16.yang
rename to models/tapi/src/main/yang/tapi-odu@2018-03-07.yang
index 9e2dd32..41c8b0d 100644
--- a/models/tapi/src/main/yang/tapi-odu@2018-02-16.yang
+++ b/models/tapi/src/main/yang/tapi-odu@2018-03-07.yang
@@ -24,13 +24,13 @@
         Source: TapiOdu.uml

         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.

         License: This module is distributed under the Apache License 2.0";

-    revision 2018-02-16 {

-        description "ONF Transport API version 2.0.1
+    revision 2018-03-07 {

+        description "ONF Transport API version 2.0.2
         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
         <https://wiki.opennetworking.org/display/OIMT/IISOMI>
-        Changes in this revision: <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/blob/develop/change-log.md>";

+        Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";

         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
-                  <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/tree/develop/UML>";

+                  <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";

     }

     augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {

         uses odu-node-edge-point-spec;

diff --git a/models/tapi/src/main/yang/tapi-otsi@2018-02-16.yang b/models/tapi/src/main/yang/tapi-otsi@2018-03-07.yang
similarity index 97%
rename from models/tapi/src/main/yang/tapi-otsi@2018-02-16.yang
rename to models/tapi/src/main/yang/tapi-otsi@2018-03-07.yang
index e8cc6ae..427639a 100644
--- a/models/tapi/src/main/yang/tapi-otsi@2018-02-16.yang
+++ b/models/tapi/src/main/yang/tapi-otsi@2018-03-07.yang
@@ -21,13 +21,13 @@
         Source: TapiOtsi.uml

         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.

         License: This module is distributed under the Apache License 2.0";

-    revision 2018-02-16 {

-        description "ONF Transport API version 2.0.1
+    revision 2018-03-07 {

+        description "ONF Transport API version 2.0.2
         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
         <https://wiki.opennetworking.org/display/OIMT/IISOMI>
-        Changes in this revision: <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/blob/develop/change-log.md>";

+        Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";

         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
-                  <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/tree/develop/UML>";

+                  <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";

     }

     augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point" {

         uses otsi-connection-end-point-spec;

diff --git a/models/tapi/src/main/yang/tapi-path-computation@2018-03-07.yang b/models/tapi/src/main/yang/tapi-path-computation@2018-03-07.yang
index fa5745b..6c91d5e 100644
--- a/models/tapi/src/main/yang/tapi-path-computation@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-path-computation@2018-03-07.yang
@@ -8,10 +8,10 @@
         prefix tapi-common;

     }

     organization "ONF OTCC (Open Transport Configuration & Control) Project";

-    contact "

-        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>

-        Project List: <mailto:transport-api@opennetworking.org>

-        Editor: Karthik Sethuraman

+    contact "
+        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
+        Project List: <mailto:transport-api@opennetworking.org>
+        Editor: Karthik Sethuraman
                 <mailto:karthik.sethuraman@necam.com>";

     description "

         This module contains TAPI Path Computation Model definitions.

@@ -19,11 +19,11 @@
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.

         License: This module is distributed under the Apache License 2.0";

     revision 2018-03-07 {

-        description "ONF Transport API version 2.0.2

-        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .

-        <https://wiki.opennetworking.org/display/OIMT/IISOMI>

+        description "ONF Transport API version 2.0.2
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
+        <https://wiki.opennetworking.org/display/OIMT/IISOMI>
         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";

-        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model

+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";

     }

     augment "/tapi-common:context" {

@@ -39,12 +39,14 @@
             type leafref {

                 path '/tapi-common:context/tapi-path-computation:path/tapi-path-computation:uuid';

             }

+            description "none";

         }

+        description "none";

     }

 

     /***********************

     * package object-classes

-    **********************/

+    **********************/ 

         grouping path {

             list link {

                 uses tapi-topology:link-ref;

@@ -62,10 +64,8 @@
             description "Path is described by an ordered list of TE Links. A TE Link is defined by a pair of Node/NodeEdgePoint IDs. A Connection is realized by concatenating link resources (associated with a Link) and the lower-level connections (cross-connections) in the different nodes";

         }

         grouping path-service-end-point {

-            leaf service-interface-point {

-                type leafref {

-                    path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';

-                }

+            container service-interface-point {

+            	uses tapi-common:service-interface-point-ref;

                 config false;

                 description "none";

             }

@@ -86,11 +86,11 @@
             }

             uses tapi-common:local-class;

             description "The association of the FC to LTPs is made via EndPoints.

-                The EndPoint (EP) object class models the access to the FC function.

-                The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.

-                In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.

+                The EndPoint (EP) object class models the access to the FC function. 

+                The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.  

+                In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC. 

                 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.

-                The EP replaces the Protection Unit of a traditional protection model.

+                The EP replaces the Protection Unit of a traditional protection model. 

                 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";

         }

         grouping path-computation-service {

@@ -195,10 +195,9 @@
                 config false;

                 description "none";

             }

-            leaf-list avoid-topology {

-                type leafref {

-                    path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';

-                }

+            list avoid-topology {

+                uses tapi-topology:topology-ref;

+                key 'topology-id';

                 config false;

                 description "none";

             }

diff --git a/models/tapi/src/main/yang/tapi-topology@2018-03-07.yang b/models/tapi/src/main/yang/tapi-topology@2018-03-07.yang
index db6cabc..ce4ae27 100644
--- a/models/tapi/src/main/yang/tapi-topology@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-topology@2018-03-07.yang
@@ -5,10 +5,10 @@
         prefix tapi-common;

     }

     organization "ONF OTCC (Open Transport Configuration & Control) Project";

-    contact "

-        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>

-        Project List: <mailto:transport-api@opennetworking.org>

-        Editor: Karthik Sethuraman

+    contact "
+        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
+        Project List: <mailto:transport-api@opennetworking.org>
+        Editor: Karthik Sethuraman
                 <mailto:karthik.sethuraman@necam.com>";

     description "

         This module contains TAPI Topology Model definitions.

@@ -16,11 +16,11 @@
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.

         License: This module is distributed under the Apache License 2.0";

     revision 2018-03-07 {

-        description "ONF Transport API version 2.0.2

-        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .

-        <https://wiki.opennetworking.org/display/OIMT/IISOMI>

+        description "ONF Transport API version 2.0.2
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
+        <https://wiki.opennetworking.org/display/OIMT/IISOMI>
         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";

-        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model

+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";

     }

     augment "/tapi-common:context" {

@@ -37,7 +37,9 @@
             type leafref {

                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';

             }

+            description "none";

         }

+        description "none";

     }

 

     grouping link-ref {

@@ -46,7 +48,9 @@
             type leafref {

                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';

             }

+            description "none";

         }

+        description "none";

     }

 

     grouping node-ref {

@@ -55,7 +59,9 @@
             type leafref {

                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';

             }

+            description "none";

         }

+        description "none";

     }

 

     grouping owned-node-edge-point-ref {

@@ -64,7 +70,9 @@
             type leafref {

                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';

             }

+            description "none";

         }

+        description "none";

     }

 

     grouping node-rule-group-ref {

@@ -73,12 +81,14 @@
             type leafref {

                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:node-rule-group/tapi-topology:uuid';

             }

+            description "none";

         }

+        description "none";

     }

 

     /***********************

     * package object-classes

-    **********************/

+    **********************/ 

         grouping link {

             list node-edge-point {

                 uses owned-node-edge-point-ref;

@@ -96,8 +106,8 @@
             leaf direction {

                 type tapi-common:forwarding-direction;

                 config false;

-                description "The directionality of the Link.

-                    Is applicable to simple Links where all LinkEnds are BIDIRECTIONAL (the Link will be BIDIRECTIONAL) or UNIDIRECTIONAL (the Link will be UNIDIRECTIONAL).

+                description "The directionality of the Link. 

+                    Is applicable to simple Links where all LinkEnds are BIDIRECTIONAL (the Link will be BIDIRECTIONAL) or UNIDIRECTIONAL (the Link will be UNIDIRECTIONAL). 

                     Is not present in more complex cases.";

             }

             container resilience-type {

@@ -122,10 +132,9 @@
                 uses node-edge-point;

                 description "none";

             }

-            leaf-list aggregated-node-edge-point {

-                type leafref {

-                    path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';

-                }

+            list aggregated-node-edge-point {

+            	uses owned-node-edge-point-ref;

+                key 'topology-id node-id owned-node-edge-point-id';

                 config false;

                 description "none";

             }

@@ -151,7 +160,7 @@
             uses transfer-cost-pac;

             uses transfer-integrity-pac;

             uses transfer-timing-pac;

-            description "The ForwardingDomain (FD) object class models the “ForwardingDomain” topological component which is used to effect forwarding of transport characteristic information and offers the potential to enable forwarding.

+            description "The ForwardingDomain (FD) object class models the ForwardingDomain topological component which is used to effect forwarding of transport characteristic information and offers the potential to enable forwarding. 

                 At the lowest level of recursion, an FD (within a network element (NE)) represents a switch matrix (i.e., a fabric). Note that an NE can encompass multiple switch matrices (FDs). ";

         }

         grouping topology {

@@ -174,7 +183,7 @@
                 description "none";

             }

             uses tapi-common:resource-spec;

-            description "The ForwardingDomain (FD) object class models the “ForwardingDomain” topological component which is used to effect forwarding of transport characteristic information and offers the potential to enable forwarding.

+            description "The ForwardingDomain (FD) object class models the ForwardingDomain topological component which is used to effect forwarding of transport characteristic information and offers the potential to enable forwarding. 

                 At the lowest level of recursion, an FD (within a network element (NE)) represents a switch matrix (i.e., a fabric). Note that an NE can encompass multiple switch matrices (FDs). ";

         }

         grouping layer-protocol-transition-pac {

@@ -183,8 +192,8 @@
                 min-elements 2;

                 description "Provides the ordered structure of layer protocol transitions encapsulated in the TopologicalEntity. The ordering relates to the LinkPort role.";

             }

-            description "Relevant for a Link that is formed by abstracting one or more LTPs (in a stack) to focus on the flow and deemphasize the protocol transformation.

-                This abstraction is relevant when considering multi-layer routing.

+            description "Relevant for a Link that is formed by abstracting one or more LTPs (in a stack) to focus on the flow and deemphasize the protocol transformation. 

+                This abstraction is relevant when considering multi-layer routing. 

                 The layer protocols of the LTP and the order of their application to the signal is still relevant and need to be accounted for. This is derived from the LTP spec details.

                 This Pac provides the relevant abstractions of the LTPs and provides the necessary association to the LTPs involved.

                 Links that included details in this Pac are often referred to as Transitional Links.";

@@ -195,10 +204,9 @@
                 config false;

                 description "none";

             }

-            leaf-list aggregated-node-edge-point {

-                type leafref {

-                    path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';

-                }

+            list aggregated-node-edge-point {

+            	uses owned-node-edge-point-ref;

+                key 'topology-id node-id owned-node-edge-point-id';

                 config false;

                 description "none";

             }

@@ -222,7 +230,7 @@
             uses tapi-common:admin-state-pac;

             uses tapi-common:termination-pac;

             uses tapi-common:capacity-pac;

-            description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.

+            description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers. 

                 The structure of LTP supports all transport protocols including circuit and packet forms.";

         }

         grouping risk-parameter-pac {

@@ -233,7 +241,7 @@
                 uses risk-characteristic;

                 description "A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration.";

             }

-            description "The risk characteristics of a TopologicalEntity come directly from the underlying physical realization.

+            description "The risk characteristics of a TopologicalEntity come directly from the underlying physical realization. 

                 The risk characteristics propagate from the physical realization to the client and from the server layer to the client layer, this propagation may be modified by protection.

                 A TopologicalEntity may suffer degradation or failure as a result of a problem in a part of the underlying realization.

                 The realization can be partitioned into segments which have some relevant common failure modes.

@@ -254,16 +262,16 @@
                 uses cost-characteristic;

                 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";

             }

-            description "The cost characteristics of a TopologicalEntity not necessarily correlated to the cost of the underlying physical realization.

+            description "The cost characteristics of a TopologicalEntity not necessarily correlated to the cost of the underlying physical realization. 

                 They may be quite specific to the individual TopologicalEntity e.g. opportunity cost. Relates to layer capacity

-                There may be many perspectives from which cost may be considered  for a particular TopologicalEntity and hence many specific costs and potentially cost algorithms.

+                There may be many perspectives from which cost may be considered  for a particular TopologicalEntity and hence many specific costs and potentially cost algorithms. 

                 Using an entity will incur a cost. ";

         }

         grouping transfer-integrity-pac {

             leaf error-characteristic {

                 type string;

                 config false;

-                description "Describes the degree to which the signal propagated can be errored.

+                description "Describes the degree to which the signal propagated can be errored. 

                     Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded.";

             }

             leaf loss-characteristic {

@@ -275,7 +283,7 @@
             leaf repeat-delivery-characteristic {

                 type string;

                 config false;

-                description "Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example).

+                description "Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example). 

                     It can also apply to TDM where several frames may be received twice due to switching in a system with a large differential propagation delay.";

             }

             leaf delivery-order-characteristic {

@@ -319,10 +327,9 @@
             description "Validation covers the various adjacenct discovery and reachability verification protocols. Also may cover Information source and degree of integrity.";

         }

         grouping network-topology-service {

-            leaf-list topology {

-                type leafref {

-                    path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';

-                }

+            list topology {

+                uses topology-ref;

+                key 'topology-id';

                 config false;

                 description "none";

             }

@@ -370,10 +377,9 @@
                 uses rule;

                 description "none";

             }

-            leaf-list node-edge-point {

-                type leafref {

-                    path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';

-                }

+            list node-edge-point {

+            	uses owned-node-edge-point-ref;

+                key 'topology-id node-id owned-node-edge-point-id';

                 min-elements 1;

                 description "none";

             }

diff --git a/models/tapi/src/main/yang/tapi-virtual-network@2018-03-07.yang b/models/tapi/src/main/yang/tapi-virtual-network@2018-03-07.yang
index 3157955..162df49 100644
--- a/models/tapi/src/main/yang/tapi-virtual-network@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-virtual-network@2018-03-07.yang
@@ -8,10 +8,10 @@
         prefix tapi-common;

     }

     organization "ONF OTCC (Open Transport Configuration & Control) Project";

-    contact "

-        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>

-        Project List: <mailto:transport-api@opennetworking.org>

-        Editor: Karthik Sethuraman

+    contact "
+        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
+        Project List: <mailto:transport-api@opennetworking.org>
+        Editor: Karthik Sethuraman
                 <mailto:karthik.sethuraman@necam.com>";

     description "

         This module contains TAPI Virtual Network Model definitions.

@@ -19,37 +19,47 @@
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.

         License: This module is distributed under the Apache License 2.0";

     revision 2018-03-07 {

-        description "ONF Transport API version 2.0.1

-        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .

-        <https://wiki.opennetworking.org/display/OIMT/IISOMI>

+        description "ONF Transport API version 2.0.2
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
+        <https://wiki.opennetworking.org/display/OIMT/IISOMI>
         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";

-        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model

+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";

     }

     augment "/tapi-common:context" {

         uses virtual-network-context;

         description "Augments the base TAPI Context with VirtualNetworkService information";

     }

+    /*************************

+     * definitions of refrences

+     *************************/

+     grouping virtual-nw-service-ref {

+         leaf virtual-nw-service-id {

+             type leafref {

+                 path '/tapi-common:context/tapi-virtual-network:virtual-nw-service/tapi-virtual-network:uuid';

+             }

+             description "none";

+         }

+         description "none";

+     }

+     

     /***********************

     * package object-classes

-    **********************/

+    **********************/ 

         grouping virtual-network-constraint {

             container src-service-end-point {

                 uses tapi-common:service-interface-point-ref;

                 config false;

                 description "none";

             }

-            leaf sink-service-end-point {

-                type leafref {

-                    path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';

-                }

+            container sink-service-end-point {

+            	uses tapi-common:service-interface-point-ref;

                 config false;

                 description "none";

             }

-            leaf-list diversity-exclusion {

-                type leafref {

-                    path '/tapi-common:context/tapi-virtual-network:virtual-nw-service/tapi-virtual-network:vnw-constraint/tapi-virtual-network:local-id';

-                }

+            list diversity-exclusion {

+                uses virtual-nw-service-ref;

+                key 'virtual-nw-service-id';

                 config false;

                 description "none";

             }

@@ -114,10 +124,8 @@
                 At the lowest level of recursion, a FC represents a cross-connection within an NE.";

         }

         grouping virtual-network-service-end-point {

-            leaf service-interface-point {

-                type leafref {

-                    path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';

-                }

+            container service-interface-point {

+            	uses tapi-common:service-interface-point-ref;

                 config false;

                 description "none";

             }