Update TAPI YANG model version to v2.1.1

Change-Id: Ie4d6a10800c34cc63c797f6649ba52da81902fd7
diff --git a/models/tapi/src/main/yang/tapi-virtual-network@2018-12-10.yang b/models/tapi/src/main/yang/tapi-virtual-network@2018-12-10.yang
new file mode 100755
index 0000000..e6ed244
--- /dev/null
+++ b/models/tapi/src/main/yang/tapi-virtual-network@2018-12-10.yang
@@ -0,0 +1,274 @@
+module tapi-virtual-network {

+    namespace "urn:onf:otcc:yang:tapi-virtual-network";

+    prefix tapi-virtual-network;

+    import tapi-topology {

+        prefix tapi-topology;

+    }

+    import 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

+                 <mailto:karthik.sethuraman@necam.com>";

+    description "

+        This module contains TAPI Virtual Network Model definitions.

+        Source: TapiVirtualNetwork.uml

+        - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK.

+        - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]

+          <https://github.com/OpenNetworkingFoundation/EagleUmlYang>

+          and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]

+          <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines>

+        - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.

+          As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.

+        - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.

+          The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>.

+          YANG models included in this release may not be backward compatible with previous TAPI releases.

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

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

+    revision 2018-12-10 {

+        description "ONF Transport API version 2.1.1.

+                   Changes included in this TAPI release (v2.1.1) are listed in

+                   <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.1.md>";

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

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

+    }

+    revision 2018-10-16 {

+        description "ONF Transport API version 2.1.0.

+                   Changes included in this TAPI release (v2.1.0) are listed in

+                   <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>";

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

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

+    }

+    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.

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

+        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/v2.0.2/UML>";

+    }

+    revision 2018-02-16 {

+        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.

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

+        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/v2.0.1/UML>";

+    }

+    revision 2018-01-02 {

+        description "ONF Transport API version 2.0.0

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

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

+        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/v2.0.0/UML>";

+    }

+    augment "/tapi-common:context" {

+        container virtual-network-context {

+            uses virtual-network-context;

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

+        }

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

+    }

+

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

+     * definitions of refrences

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

+     grouping virtual-nw-service-ref {

+         leaf virtual-nw-service-uuid {

+             type leafref {

+                 path '/tapi-common:context/tapi-virtual-network:virtual-network-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";

+         }

+         container sink-service-end-point {

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

+             config false;

+             description "none";

+         }

+         list diversity-exclusion {

+             uses virtual-nw-service-ref;

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

+             config false;

+             description "none";

+         }

+         container requested-capacity {

+             uses tapi-common:capacity;

+             description "none";

+         }

+         leaf service-level {

+             type string;

+             description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";

+         }

+         leaf-list service-layer {

+             type tapi-common:layer-protocol-name;

+             description "none";

+         }

+         list cost-characteristic {

+             key 'cost-name';

+             uses tapi-topology:cost-characteristic;

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

+         }

+         list latency-characteristic {

+             key 'traffic-property-name';

+             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.";

+         }

+         uses tapi-common:local-class;

+         description "none";

+     }

+     grouping virtual-network-service {

+         container topology {

+             uses tapi-topology:topology-ref;

+             config false;

+             description "none";

+         }

+         list end-point {

+             key 'local-id';

+             min-elements 2;

+             uses virtual-network-service-end-point;

+             description "none";

+         }

+         list vnw-constraint {

+             key 'local-id';

+             min-elements 1;

+             uses virtual-network-constraint;

+             description "none";

+         }

+         leaf schedule {

+             type string;

+             description "none";

+         }

+         container state {

+             uses tapi-common:admin-state-pac;

+             description "none";

+         }

+         leaf-list layer-protocol-name {

+             type tapi-common:layer-protocol-name;

+             min-elements 1;

+             description "none";

+         }

+         uses tapi-common:service-spec;

+         description "The ForwardingConstruct (FC) object class models enabled potential for forwarding between two or more LTPs and like the LTP supports any transport protocol including all circuit and packet forms.

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

+     }

+     grouping virtual-network-service-end-point {

+         container service-interface-point {

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

+             config false;

+             description "none";

+         }

+         leaf role {

+             type tapi-common:port-role;

+             config false;

+             description "Each EP of the FC has a role (e.g., working, protection, protected, symmetric, hub, spoke, leaf, root)  in the context of the FC with respect to the FC function. ";

+         }

+         leaf direction {

+             type tapi-common:port-direction;

+             config false;

+             description "The orientation of defined flow at the EndPoint.";

+         }

+         leaf service-layer {

+             type tapi-common:layer-protocol-name;

+             config false;

+             description "none";

+         }

+         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. 

+             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 ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";

+     }

+     grouping virtual-network-context {

+         list virtual-nw-service {

+             key 'uuid';

+             uses virtual-network-service;

+             description "none";

+         }

+         description "none";

+     }

+

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

+     * package interfaces

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

+     rpc create-virtual-network-service {

+         description "none";

+         input {

+             list sep {

+                 key 'local-id';

+                 min-elements 2;

+                 uses virtual-network-service-end-point;

+                 description "none";

+             }

+             container vnw-constraint {

+                 uses virtual-network-constraint;

+                 description "none";

+             }

+             leaf conn-schedule {

+                 type string;

+                 description "none";

+             }

+         }

+         output {

+             container service {

+                 uses virtual-network-service;

+                 description "none";

+             }

+         }

+     }

+     rpc delete-virtual-network-service {

+         description "none";

+         input {

+             leaf service-id-or-name {

+                 type string;

+                 description "none";

+             }

+         }

+         output {

+             container service {

+                 uses virtual-network-service;

+                 description "none";

+             }

+         }

+     }

+     rpc get-virtual-network-service-details {

+         description "none";

+         input {

+             leaf service-id-or-name {

+                 type string;

+                 description "none";

+             }

+         }

+         output {

+             container service {

+                 uses virtual-network-service;

+                 description "none";

+             }

+         }

+     }

+     rpc get-virtual-network-service-list {

+         description "none";

+         output {

+             list service {

+                 key 'uuid';

+                 uses virtual-network-service;

+                 description "none";

+             }

+         }

+     }

+}